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

StatusCodeMeaning
400invalid_requestA parameter is malformed or out of range, such as a date more than 29 days ahead. The message gives the accepted range.
401invalid_keyThe key is malformed, unknown or revoked. It is never quietly downgraded; drop it to use the keyless limits.
403rights_unavailableLive 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.
404not_foundNo such park, resort, ride, bus stop or endpoint. The message lists the valid keys.
405method_not_allowedThe API is read-only; use GET.
429rate_limitedOver the per-minute or per-day limit. Wait Retry-After seconds.
429too_many_streamsToo many streams open at once for this key or address.
500internal_errorParky could not complete the request. Retry.
503upstream_unavailableParky's data is briefly unavailable. Retry after Retry-After, about a minute.
503upstream_limitParky 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.