FAQ

Frequently Asked Questions

Geocoding, routing, address search, device tracking - and how to get started.

Getting started

What is PickPoint?
PickPoint is a geolocation platform with four REST and WebSocket APIs: Geocoding (forward, reverse, and place lookup), Routing (turn-by-turn directions and multi-stop optimization), Address Search (predictive autocomplete), and Device Tracking (real-time GPS streams). All APIs follow the OpenAPI 3.0 spec and can be tested interactively in Geo Lab.
Which API version should I use?
API v2 is recommended for all new integrations. It uses the X-API-KEY header for authentication, supports all four APIs, and is the version actively receiving new features. API v1 is legacy and maintained for backward compatibility only - new projects should not use it.
How do I get an API key?
Sign up at app.pickpoint.io — no credit card. A default API key is created immediately (2,500 requests/day on Free). Open API Key in the dashboard to copy it. Paid plans can add more keys.
How do I authenticate API requests?
Include your API key as the X-API-KEY HTTP header on every request to api.pickpoint.io. The key is case-sensitive. Do not embed keys in browser-side JavaScript - proxy requests through your own backend to keep credentials private.
Is there a forever-free plan?
Yes. Sign up without a card and get 2,500 requests/day, one tracking device, and one API key. Geocoding and search have no RPS cap; routing is 1 req/s. Paid plans start at $50/month and include a 14-day trial.
Is there a free trial?
Paid plans include a 14-day trial with full API access. Billing is handled by Stripe. If you cancel the trial before the first paid invoice, you stay on Free.
What is Geo Lab?
Geo Lab is an interactive playground inside your dashboard. Run geocoding queries, draw routes on a map, test address autocomplete, and watch live device tracks. Every response includes raw JSON and copy-ready code samples in cURL, Python, JavaScript, and Ruby.

Geocoding

What geocoding methods are available?
  • Forward geocoding - address or place name → coordinates (GET /v2/geocode/forward)
  • Reverse geocoding - coordinates → address (GET /v2/geocode/reverse)
  • Geocode lookup - place ID → full details including GeoJSON polygon (GET /v2/geocode/lookup)
All three support structured and free-text queries, multiple languages, and country/bounding-box filters. See the Geocoding reference.
Can I filter results by country or region?
Yes. Pass a comma-separated list of ISO 3166-1 alpha-2 country codes via the country parameter (e.g. country=US,CA). You can also bias results using a bounding box (bbox) or a proximity point (focus.point.lat / focus.point.lon) without hard-restricting the search area.
What data sources power the geocoding?
PickPoint combines OpenStreetMap data with commercial datasets covering postal codes, official address registers, building footprints, and Points of Interest. The index is updated continuously from live OSM changesets and vendor feeds to keep it current.
How accurate is the geocoding?
Accuracy depends on data density. In well-mapped cities across North America, Europe, and East Asia, most queries resolve to street or building level. In rural or less-mapped areas, results may resolve to city or district level. Check the type and rank.confidence fields in the response to assess precision.
Can I retrieve a GeoJSON polygon for a result?
Yes. The Geocode Lookup endpoint (GET /v2/geocode/lookup?ids=...) returns a geometry field with full GeoJSON polygon boundaries for administrative areas, parks, buildings, and other entities where polygon data is available in the source dataset.

Routing

What vehicle types and routing modes are supported?
Car, bicycle, bus, truck, taxi, motorcycle, motor scooter, pedestrian, bikeshare, and multimodal. Each profile adjusts for speed limits, road access rules, and preferred surfaces. Truck routing accounts for vehicle dimensions (height, weight, axle load) and HGV restrictions. See the routing guide.
Can I optimize multi-stop delivery routes?
Yes. POST /v2/route/optimized accepts an array of waypoints and returns the most efficient visiting order. Supported techniques include nearest-neighbor heuristics and 2-opt improvements. Time-window constraints are available for scheduling deliveries within specific arrival windows. Ideal for couriers, field service, and logistics operations.
How do I avoid tolls, ferries, or restricted zones?
Use the avoid array in the route request body: accepted values include tolls, ferries, motorways, and unpaved. For geographic exclusions, define custom polygons in the avoid_polygons field - useful for delivery restrictions, school zones, or construction areas.
Does the API return turn-by-turn instructions?
Yes. Set instructions=true to receive a step array with maneuver type, street name, distance, and duration for each turn. Instructions are available in dozens of locales via the language parameter. The response also includes a full route geometry as an encoded polyline or GeoJSON LineString.
Are traffic-adjusted ETAs available?
Live traffic data is available in supported regions on Business and Enterprise plans. When traffic data is present, the response includes a duration_in_traffic field alongside the free-flow estimate. Pass departure_time=now to activate traffic-aware routing.

Device tracking

How does Device Tracking work?
Register a device with POST /v2/devices, then connect to the WebSocket endpoint to stream GPS fixes in real time. Each device gets a unique token. Track history is stored server-side and accessible via GET /v2/devices/{id}/history. The dashboard shows a live map with all active device positions and replay controls.
What update frequency is supported?
GPS fixes can be streamed up to 50 Hz over WebSocket. Most use cases (vehicle tracking, food delivery, field service) work well at 1-5 Hz. High-frequency modes for drones, precision agriculture, or navigation apps are supported on Business and Enterprise plans.
Can I query historical track data?
Yes. GET /v2/devices/{id}/history returns a timestamped GeoJSON LineString for any time range. Retention depends on your plan: 30 days on Starter, 1 year on Business, configurable on Enterprise. Tracks can be exported as GeoJSON or CSV.
How do I integrate tracking in a mobile app?
Use the WebSocket endpoint with your device token (separate from your API key). SDK examples for iOS and Android are available in the tracking guide. For server-side fleet integrations, use the REST API to batch-ingest position updates from your own telematics system.

Billing & plans

Are there per-minute rate limits?
Only routing on Free: 1 req/s (burst 2). Geocoding and search are unthrottled within the daily cap. Paid plans are fully unthrottled within your daily quota. Fair-use policies apply only to prevent programmatic abuse.
Can I track devices on Free?
Yes — one device, no overage, ingest capped at 1 Hz. Add a fleet on Pro or Ultra.
What happens if I exceed my monthly quota?
By default, requests above your monthly limit continue at overage rates rather than being blocked. Overage pricing ranges from $0.04 to $0.25 per extra 1,000 requests depending on your plan. To cap spending, disable overage in Profile Settings - requests beyond your quota will return a 429 response until the next billing period.
Do you offer free access for non-profits or open-source projects?
Yes. We provide free or discounted access for qualifying non-profits and open-source projects. Contact us describing your project - we typically reply within one business day.
How does billing work?
Billing is processed through Stripe. Pay by card or bank transfer. Invoices are available in your dashboard. Enterprise plans support purchase orders and net-30 invoicing. Upgrades are prorated; downgrades apply at the next billing cycle.
Can I change or cancel my plan at any time?
Yes. Upgrades take effect immediately and are prorated. You cannot self-serve from a paid plan back to Free after the first paid invoice. Cancel during an unpaid trial and you stay on Free. After you have paid, cancelling turns the API off at period end instead of downgrading to Free.

Technical

Are there official SDKs or code samples?
We recommend official SDKs for JavaScript, Python, Go, Ruby, Java/Kotlin, Rust, Dart, and C++ — see the Integration guide. SDKs handle auth headers, retries, client-token refresh, tracking reconnect/resume, and batch helpers from day one. For custom stacks, HTTP endpoints are in the OpenAPI reference; live tracking wire format is in pickpoint-proto. Geo Lab includes interactive Try It panels for every endpoint.
Does the API support CORS for browser requests?
The API returns CORS headers, so browser-side requests are technically possible. However, we strongly recommend routing API calls through your own backend server to avoid embedding your API key in public JavaScript. For public-facing widgets, issue a restricted key scoped to specific endpoints.
Is there a status page?
Yes. System uptime, incident history, and response time metrics are available at API Status page. Subscribe for email or webhook notifications to receive real-time alerts when an incident is opened or resolved.
How do I contact support?
Email support@pickpoint.io or use the live chat widget on any page. Starter plans receive community-level email support. Business and Enterprise plans have priority SLA support with guaranteed first-response times.

Read the docs

OpenAPI specs, interactive examples, and integration guides.

Developer Portal