Documentation
Errors
One error envelope shared by every product on the platform.
Envelope
Failures always answer with an error object carrying a stable machine-readable code and a human-readable message. Branch on code, never on the message text.
404 Not Found
{
"error": {
"code": "not_found",
"message": "Country not found."
}
}Codes you should handle
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | Missing, unknown, disabled or revoked key. |
| 403 | product_access_denied | The key belongs to a different product. |
| 403 | subscription_inactive | No active subscription for this product. |
| 404 | not_found | No entry exists for that country or subdivision code. |
| 405 | method_not_allowed | Only GET is supported. |
| 429 | rate_limit_exceeded | Per-minute limit reached. Retry-After applies. |
| 429 | monthly_limit_exceeded | Monthly quota reached until the period resets. |
| 500 | internal_error | Unexpected failure. Safe to retry once. |
Missing data is not an error
Fields absent from the source dataset are omitted rather than returned as null placeholders. Treat absence as unknown, and a 404 as a code that does not exist in the dataset at all.