Getting Started
From sign-up to a working geocoding request in about 5 minutes.
Create your account
Start with a free account - no credit card. Your API key is created immediately with 2,500 requests/day on Free.
Create your free account →An activation email is sent immediately. Follow the link to confirm your address - check your spam folder if it doesn't arrive within a few minutes.
Get your API key
Every request is authenticated with a single HTTP header:
X-Api-Key: YOUR_KEYFind your key in the API Key section of your dashboard. You can also pass the key as a query parameter for quick testing:
?key=YOUR_KEYAdvanced plans support multiple keys - for example, separate keys for development and production, or individual keys per customer.
Make your first geocoding request
Forward geocoding converts an address or place name to coordinates. Replace YOUR_KEY with your actual key:
curl "https://api.pickpoint.io/v2/geocode/forward?q=Eiffel+Tower" \
-H "X-Api-Key: YOUR_KEY"You'll get a GeoJSON FeatureCollection response:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [2.2944813, 48.8583701]
},
"properties": {
"display_name": "Eiffel Tower, Champ de Mars, Paris, France",
"place_id": "node/5013364969",
"address": {
"name": "Eiffel Tower",
"road": "Champ de Mars",
"city": "Paris",
"country": "France",
"country_code": "fr"
}
}
}
]
}Key fields: geometry.coordinates is [longitude, latitude] (GeoJSON order), and properties.address gives structured components ready to store or display.
Try the other APIs
The same key works for all four APIs:
curl "https://api.pickpoint.io/v2/geocode/reverse?lat=48.858&lon=2.294" \
-H "X-Api-Key: YOUR_KEY"curl "https://api.pickpoint.io/v2/address/search?q=Eiff" \
-H "X-Api-Key: YOUR_KEY"curl -X POST "https://api.pickpoint.io/v2/route" \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"locations":[{"lat":48.858,"lon":2.294},{"lat":48.873,"lon":2.295}],"costing":"auto"}'Explore in Geo Lab
Geo Lab is an interactive playground inside your dashboard. Build any request visually - geocoding, routing, address search, or device tracking - and see the results plotted on a live map alongside the raw JSON and a copy-ready code snippet.
Useful for exploring parameters before writing integration code: try the routing playground ↗ to see vehicle profiles, multi-stop optimization, and time windows in action.
Integrate into your app
Pick the path that matches where your code runs. The Integration guide covers all three patterns in detail.
Server-side (recommended)
Backend jobs, microservices, and CLI tools call PickPoint directly via the official SDK — key in env, no REST wrapper needed:
import { PickPoint } from '@pickpoint/sdk';
const pp = new PickPoint({ apiKey: process.env.PICKPOINT_KEY });
const results = await pp.forward({ q: 'Eiffel Tower', limit: 1 });
console.log(results[0].lat, results[0].lon); // 48.8583701, 2.2944813Browser or mobile UI
When end users need geocoding or routing in a web or mobile app, your backend calls PickPoint — never ship the API key to clients. See Server Integration examples or the web map tutorials.
Live GPS tracking
Devices publish location directly with per-device credentials via the tracking SDK. Dashboards subscribe through your backend. See the Device Tracking guide.
How the APIs fit together
Each API is independent - you can use just geocoding, or just routing - but they're designed to compose. A typical delivery application uses all four: geocoding normalizes customer addresses when they're entered; routing builds the optimal multi-stop delivery order; address search powers the input fields in your UI; device tracking shows the courier's live position to dispatcher and customer alike.
Things consistent across every API
- One key. The same
X-Api-Keyheader authenticates all four APIs. No per-API keys, no per-feature billing tiers. - Plain JSON by default. Geocoding returns JSON with named
latandlonstring fields. Addformat=geojsonfor a GeoJSONFeatureCollection. - OpenStreetMap data. Geocoding and routing run on OSM, updated continuously. Global coverage, no licensing restrictions on storing results.
- In browser and mobile apps, route geocoding and routing through your backend — a leaked key can drain your quota within minutes. See Integration patterns.
GEO LAB
GEO LAB is an interactive playground inside your dashboard. Build any request visually, execute it, see results on a live map, and copy the generated snippet in cURL, JavaScript, Ruby, or Python. Use it to explore parameters before writing integration code.
Integration guideGeocoding guideRouting guideDevice TrackingAPI Reference ↗