Errors

Errors share one shape. The code is stable; the message is for people.

{
  "error": {
    "code": "quota_exceeded",
    "message": "…"
  }
}
StatusCodeMeaningWhat to do
400invalid_coordinateslat must be −90 to 90 and lng −180 to 180.Fix the request. Don’t retry as is.
401invalid_keyThe key is malformed, unknown, or from the other environment.Check the Authorization header and the key prefix.
401key_revokedThe key was revoked.Use another active key.
402no_api_planYour organization has no active API plan.An owner or admin chooses a plan on the Plan page.
429rate_limitedToo many requests per second for your plan, or too many bad keys from your IP.Back off and retry with jitter.
429concurrency_limitedToo many requests in flight at once.Wait for running requests to finish, then retry.
429quota_exceededThis period’s billable lookups are used up. The body includes reset_at and upgrade_url.Wait for reset_at or upgrade.
503unavailableThe service couldn’t check your plan or reach its data.Retry with exponential backoff.

A lookup that finds no parcel or falls outside covered places isn’t an error: it returns 200 with zoning.status set to no_parcel or not_covered, and doesn’t count toward your quota.