Errors
The error response
Errors keep the usual envelope, with error.code to branch on and error.message, which says what went wrong and how to fix it.
429
{ "schema_version": 1, "error": { "code": "rate_limited", "message": "Rate limit reached: 30 requests per minute for anonymous callers. Retry after 41 seconds. For 120/minute and 20,000/day, get a free key at https://parkypass.com/developers.", "docs_url": "https://parkypass.com/developers#errors" }, "docs_url": "https://parkypass.com/developers", "attribution": { "text": "Live data from parkypass.com", "url": "https://parkypass.com/", "required": true }, "generated_at": "2026-10-05T16:45:02.118Z"}Codes
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | A parameter is malformed or out of range, such as a date more than 29 days ahead. The message gives the accepted range. |
| 401 | invalid_key | The key is malformed, unknown or revoked. It is never quietly downgraded; drop it to use the keyless limits. |
| 403 | rights_unavailable | Live and provider-derived data (waits, Lightning Lane, hours, showtimes, outages, conditions, tickets, availability, events, buses, best times and reliability) is switched off on this server. Parks, resorts, rides and crowds still work. |
| 404 | not_found | No such park, resort, ride, bus stop or endpoint. The message lists the valid keys. |
| 405 | method_not_allowed | The API is read-only; use GET. |
| 429 | rate_limited | Over the per-minute or per-day limit. Wait Retry-After seconds. |
| 429 | too_many_streams | Too many streams open at once for this key or address. |
| 500 | internal_error | Parky could not complete the request. Retry. |
| 503 | upstream_unavailable | Parky's data is briefly unavailable. Retry after Retry-After, about a minute. |
| 503 | upstream_limit | Parky has reached its live-data read limit. Retry after Retry-After, a few minutes. |
Streams send the same codes in an error message, then close with 1008 or 1013.
Retrying
Retry 429 and 503 after Retry-Afterseconds, and 500 with a short backoff. Don’t retry 400, 401, 403, 404 or 405 unchanged; the message says what to change.