Developers
Errors & troubleshooting
All APIs use standard HTTP status codes and return a JSON body with a message and a reference you can quote to support.
| Code | Meaning | What to do |
|---|---|---|
400 | Bad request | A required parameter is missing or malformed. Check the parameter list for the endpoint. |
401 | Unauthorized | Missing or invalid API key. Send a valid key in the X-API-Key header. |
403 | Forbidden | The key is valid but lacks the required scope, or the request is share-alike gated (e.g. bulk data). |
404 | Not found | No resource at this path/coordinate (e.g. no tile), or the endpoint path is wrong. |
422 | Unprocessable | The request was understood but can’t be fulfilled — e.g. no route between the points. |
429 | Too many requests | Rate limit exceeded. Back off and retry after the Retry-After header. See rate limits. |
5xx | Server error | A transient problem on our side. Retry with exponential backoff; if it persists, contact support. |
Recovery patterns
- Retry
429and5xxwith exponential backoff and jitter; respectRetry-After. - Do not retry
400/401/403— fix the request or key instead. - Log the
referencefrom the error body when contacting support.