FAQ

常见问题

Geocoding、路线规划、地址搜索、设备追踪 - 以及如何快速上手。

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, then go to Subscription → API Keys in your dashboard to create a key. Each key can be scoped to specific API methods. For production use, create separate keys per service and environment, and rotate them if ever exposed in public code.
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 free trial?
Yes. Every paid plan comes with a free trial period with full API access. Billing is handled by Stripe.
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?
No. PickPoint does not throttle requests per minute on any plan. You can burst at high rates within your daily and monthly quota without artificial caps. Fair-use policies apply only to prevent programmatic abuse.
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 to your remaining billing period. Downgrades apply at the start of the next cycle. You can cancel without penalty at any time - there are no long-term lock-ins unless you choose an annual discount plan.

Technical

Are there official SDKs or code samples?
Ready-to-use code samples in cURL, Python, JavaScript, and Ruby are available for every endpoint in the 开发者文档 and in Geo Lab. The full OpenAPI 3.0 spec can be imported into Postman, Insomnia, or any OpenAPI-compatible tool to auto-generate clients in any language.
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.

阅读文档

OpenAPI 规范、交互式示例和集成指南。

Developer Portal