{"openapi":"3.1.0","info":{"title":"Parky API","version":"1.0.0","summary":"Live theme park waits, Lightning Lane, hours, crowds and ride facts.","description":"Read-only JSON for ten Disney and Universal parks. A park with no current live data returns `data_status: \"unavailable\"` rather than old numbers.\n\n**Attribution is required.** Every response has an `attribution` object. Wherever you show Parky data, display `attribution.text` with a visible link to `attribution.url`.\n\n**Keys are optional.** Anonymous callers get 30 requests/minute and 1,000/UTC day per IP. A free key (https://parkypass.com/developers) gives 120/minute and 20,000/day; partner keys 600/minute and 200,000/day. A malformed, unknown or revoked key is rejected with 401, never downgraded.\n\n**Parks** may be given as a key (`magic-kingdom`), canonical ID, name, or shorthand (`mk`, `epcot`, `hs`, `ak`, `dl`, `dca`, `usf`, `ioa`, `epic`, `ush`), case-insensitively. **Rides** take a ride ID from `/v1/parks/{park}/rides`, or a name or slug when unique.\n\n**Streaming.** Prefer the WebSocket (`x-websocket` below) or Server-Sent Events over polling `/waits`: one snapshot, then only changes. The server checks every 5 seconds and pushes a ride only when Disney or Universal changes it; posted waits typically change every few minutes.\n\n**Timestamps.** Every timestamp is UTC in ISO 8601 form with milliseconds, such as 2026-10-05T16:42:10.311Z.\n\n**Sources.** Weather comes from the National Weather Service. Crowd levels, typical waits and Parky's predictions are Parky's own models.","contact":{"name":"Parky support","url":"https://parkypass.com/support"},"termsOfService":"https://parkypass.com/terms"},"externalDocs":{"description":"Parky developer documentation","url":"https://parkypass.com/developers"},"servers":[{"url":"https://api.parkypass.com","description":"Production"}],"security":[{},{"bearerAuth":[]},{"parkyKeyHeader":[]}],"tags":[{"name":"Parks","description":"Supported parks, hours and crowd forecasts."},{"name":"Live","description":"Live waits, Lightning Lane and streams."},{"name":"Rides","description":"Ride facts, best times and reliability."},{"name":"Resorts","description":"Resorts, ticket prices, park reservations, hotels and Walt Disney World buses."},{"name":"Meta","description":"Index and this document."}],"paths":{"/v1":{"get":{"operationId":"getIndex","tags":["Meta"],"summary":"API index","security":[{}],"description":"Links to documentation, this OpenAPI document, the stream URL, every endpoint with a one-line description, limits and the attribution rule. Needs no key and is not rate limited.","responses":{"200":{"description":"Index.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Index"}}}}}}},"/v1/openapi.json":{"get":{"operationId":"getOpenApi","tags":["Meta"],"summary":"This OpenAPI document","security":[{}],"description":"The OpenAPI 3.1 description of the Parky API. Not rate limited.","responses":{"200":{"description":"OpenAPI document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/parks":{"get":{"operationId":"listParks","summary":"List supported parks","description":"Every supported park with its key, canonical ID, destination, IANA time zone and Parky page.","tags":["Parks"],"parameters":[],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParksResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/waits":{"get":{"operationId":"getParkWaits","summary":"Live waits for a park","description":"Rides, walk-through attractions and shows with their posted standby wait, status, Single Rider wait and Lightning Lane return window, from one shared snapshot refreshed at most every 15 seconds. Queued rides (`type: \"ride\"`) are always listed, with status `unavailable` and null waits when no live value is reported. Walk-through attractions (`experience`), shows (`show`) and character meets (`meet`) are listed only while reported. When the park has no current live data, `data_status` is `unavailable`. Posted waits typically change every few minutes; to follow changes, use the stream instead of polling. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Live"],"parameters":[{"$ref":"#/components/parameters/park"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=15`.","schema":{"type":"string","example":"public, max-age=15"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkWaitsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/waits/stream":{"get":{"operationId":"streamParkWaits","summary":"Stream live waits (Server-Sent Events)","description":"A `text/event-stream` of the same messages as the WebSocket for one park: `snapshot` first, then `changes` and `park` events as they happen (the server checks every 5 seconds and pushes a ride only when Disney or Universal changes it; posted waits typically change every few minutes), and a `: ping` comment line every 25 seconds. Each event is a single `data:` line holding one JSON message; there are no `event:` names, so `EventSource.onmessage` receives everything. Browsers may authenticate with `?key=`. Counts once against the per-minute limit when it connects. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Live"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/key"}],"responses":{"200":{"description":"Event stream. Each `data:` line is a StreamMessage.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/event-stream":{"schema":{"type":"string","description":"SSE frames; see StreamMessage.","example":"retry: 5000\n\ndata: {\"type\":\"subscribed\",\"parks\":[\"magic-kingdom\"],...}\n\ndata: {\"type\":\"snapshot\",\"park\":\"magic-kingdom\",...}\n\n: ping\n\n"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/rides":{"get":{"operationId":"listParkRides","summary":"Rides with facts","description":"Attractions at a park with land, type, Lightning Lane availability and facts such as height requirement, duration, top speed and drop. Facts vary by ride; absent facts are omitted.","tags":["Rides"],"parameters":[{"$ref":"#/components/parameters/park"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideListResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/rides/{ride}":{"get":{"operationId":"getParkRide","summary":"One ride within a park","description":"Like `/v1/rides/{ride}`, but `{ride}` may also be the ride's name or parkypass.com slug within this park (for example `space-mountain`).","tags":["Rides"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/ride"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=15`.","schema":{"type":"string","example":"public, max-age=15"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/hours":{"get":{"operationId":"getParkHours","summary":"Operating hours","description":"Operating hours and guest-facing schedule windows (Early Entry, Extended Hours, special events) for up to 60 park-local days. Hours may change. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Parks"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/date60"},{"$ref":"#/components/parameters/days60"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoursResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/crowds":{"get":{"operationId":"getParkCrowds","summary":"Crowd forecast","description":"Parky's 1-10 crowd forecast with a low-high range and drivers for up to 30 park-local days, plus the model's measured accuracy (`accuracy`). Today's level follows observed waits once the park has an hour of them.","tags":["Parks"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/date"},{"$ref":"#/components/parameters/days"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrowdResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/lightning-lane":{"get":{"operationId":"getParkLightningLane","summary":"Lightning Lane prices and return times","description":"Lightning Lane Multi Pass and Premier Pass prices (Disney parks) or Universal Express Pass prices (Universal parks) for a date, and for today each ride's current return window and Single Pass price, soonest first. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Live"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/date"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=15`.","schema":{"type":"string","example":"public, max-age=15"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LightningLaneResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/reliability":{"get":{"operationId":"getParkReliability","summary":"Ride reliability","description":"Each ride's uptime, outages per day, and average and longest outage over the last 30 days (since 2026-09-28 until 30 days have passed), least reliable first, computed only from Disney's and Universal's own status feeds inside the park's operating hours. Refreshed every 5 minutes. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Rides"],"parameters":[{"$ref":"#/components/parameters/park"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReliabilityResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/rides/{ride}":{"get":{"operationId":"getRide","summary":"One ride","description":"A ride's facts, its live wait (`live`) and 30-day reliability summary (`reliability`). `live` and `reliability` are omitted when the server has provider-derived data disabled.","tags":["Rides"],"parameters":[{"$ref":"#/components/parameters/ride"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=15`.","schema":{"type":"string","example":"public, max-age=15"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/rides/{ride}/best-times":{"get":{"operationId":"getRideBestTimes","summary":"Best times to ride","description":"Parky's hourly predicted waits (with bounds) for a park-local date up to 30 days ahead, the typical wait by hour for that weekday, Disney's own hourly forecast when Disney publishes one (`disney_forecast`, usually today only), and a summary with the best one or two windows and the worst window. Later dates fall back to typical waits (`summary.basis`). Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Rides"],"parameters":[{"$ref":"#/components/parameters/ride"},{"$ref":"#/components/parameters/date"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BestTimesResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/rides/{ride}/outages":{"get":{"operationId":"getRideOutages","summary":"A ride's outage log","description":"Each outage of one ride with start and end times over the last 1 to 30 park-local days, newest first, from Disney's and Universal's own live feeds. An outage runs from the first Down, Brief Delay or Weather Delay report until the ride reports anything else; `ongoing` is true while it is still down. Coverage starts 2026-09-28. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Rides"],"parameters":[{"$ref":"#/components/parameters/ride"},{"$ref":"#/components/parameters/outage_days"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=60`.","schema":{"type":"string","example":"public, max-age=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideOutagesResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/outages/today":{"get":{"operationId":"getParkOutagesToday","summary":"Today's outages at a park","description":"Every ride outage at the park today (park-local), newest first, including rides down right now (`down_now`) and outages still open from yesterday. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Live"],"parameters":[{"$ref":"#/components/parameters/park"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=60`.","schema":{"type":"string","example":"public, max-age=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkOutagesResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/showtimes":{"get":{"operationId":"getParkShowtimes","summary":"Showtimes","description":"Show, parade, fireworks and character-meet times for a park-local date within the next 7 days (usually published for today only), earliest first. Each entry has a `type` (show, meet, experience, ride). Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Parks"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/date7"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowtimesResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/conditions":{"get":{"operationId":"getParkConditions","summary":"Weather and ride conditions now","description":"The National Weather Service's latest observation (last 3 hours) and active alerts for the park, Parky's lightning risk, and how many queued rides are operating, down, closed or unavailable right now. Current conditions only; no history. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Live"],"parameters":[{"$ref":"#/components/parameters/park"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=60`.","schema":{"type":"string","example":"public, max-age=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/parks/{park}/crowds/actuals":{"get":{"operationId":"getParkCrowdActuals","summary":"Observed crowd index","description":"The observed crowd index for the last 1 to 60 park-local days (1.0 = the park's typical day), from midday posted waits, plus the forecast model's measured accuracy.","tags":["Parks"],"parameters":[{"$ref":"#/components/parameters/park"},{"$ref":"#/components/parameters/actual_days"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrowdActualsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts":{"get":{"operationId":"listResorts","summary":"List supported resorts","description":"Every supported resort with its key, aliases, time zone and parks.","tags":["Resorts"],"parameters":[],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResortsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}":{"get":{"operationId":"getResort","summary":"One resort","description":"One resort with its parks. `{resort}` accepts a key, ID, name or shorthand (wdw, dlr, uor, ush).","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResortResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}/tickets":{"get":{"operationId":"getResortTickets","summary":"Ticket prices","description":"Every ticket Disney or Universal priced for a start date within the next year (base, park hopper, multi-day, special events), as their own stores showed Parky on its last check, plus per-park products for that date (one-day tickets by park, Universal Express). Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"},{"$ref":"#/components/parameters/ticket_date"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}/park-availability":{"get":{"operationId":"getResortParkAvailability","summary":"Park reservation availability","description":"Park reservation and blockout availability per park and segment (ticket or pass type, such as `broad` tickets or an annual pass tier) for up to 31 days, from Disney's and Universal's own calendars. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"},{"$ref":"#/components/parameters/availability_date"},{"$ref":"#/components/parameters/availability_days"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkAvailabilityResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}/hotel-availability":{"get":{"operationId":"getResortHotelAvailability","summary":"Hotel availability","description":"Per night: how many of the resort's hotels are sold out and the median rate; per hotel and night: availability, the lowest rate for two adults and rooms left at it, as Disney or Universal showed Parky on its last daily check. Up to 14 nights within the next 120 days. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"},{"$ref":"#/components/parameters/hotel_date"},{"$ref":"#/components/parameters/hotel_nights"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HotelAvailabilityResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}/events":{"get":{"operationId":"getResortEventNights","summary":"Ticketed event nights","description":"Separately ticketed event nights (Mickey's Not-So-Scary Halloween Party, Disney Jollywood Nights, Halloween Horror Nights and more) between `from` and `to` (at most 60 days), with on-sale or sold-out status, the lowest adult price seen, and when Parky first saw each night sell out, from Disney's and Universal's own stores. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"},{"$ref":"#/components/parameters/events_from"},{"$ref":"#/components/parameters/events_to"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=300`.","schema":{"type":"string","example":"public, max-age=300"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventNightsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}/buses/stops":{"get":{"operationId":"listBusStops","summary":"Walt Disney World bus stops","description":"Every Walt Disney World bus stop Disney is currently predicting departures for, with the places it serves. Other resorts return 404. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=60`.","schema":{"type":"string","example":"public, max-age=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusStopsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}},"/v1/resorts/{resort}/buses":{"get":{"operationId":"getBusDepartures","summary":"Next Walt Disney World buses","description":"The next predicted departure to each destination from a Walt Disney World bus stop, from Disney's own bus tracking, refreshed about every minute. `stop` takes a stop ID or a name such as `art of animation`. Returns 403 rights_unavailable when the server has provider-derived data disabled.","tags":["Resorts"],"parameters":[{"$ref":"#/components/parameters/resort"},{"$ref":"#/components/parameters/stop"}],"responses":{"200":{"description":"Success.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Cache-Control":{"description":"Cache policy: `public, max-age=30`.","schema":{"type":"string","example":"public, max-age=30"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusArrivalsResponse"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"503":{"$ref":"#/components/responses/Error503"}}}}},"x-websocket":{"url":"wss://api.parkypass.com/v1/stream","description":"Live waits pushed as JSON text messages. Authenticate with the same key as REST (Authorization: Bearer on the upgrade request, or ?key= for browsers; free-tier keys in browser code are public, which is fine). On connect the server sends `ready`. Send `{\"type\":\"subscribe\",\"parks\":[\"magic-kingdom\",\"epcot\"]}` (keys, IDs, names or shorthands; at most 10; \"*\" for every park) and receive `subscribed`, then one `snapshot` per park, then `changes` (only rides whose status, wait, Single Rider or Lightning Lane changed, plus `removed` IDs of shows or experiences the feed stopped reporting) and `park` (park opened or closed). The server checks every 5 seconds and pushes a ride only when Disney or Universal changes it; posted waits typically change every few minutes. Park messages (`snapshot`, `changes`, `park`) carry `park_key` and an `attribution.url` for that park's page; connection messages (`ready`, `subscribed`, `unsubscribed`, `ping`, `pong`, `error`) carry the same attribution object pointing at https://parkypass.com/, so take the per-park link from snapshot or changes. Unsubscribe with `{\"type\":\"unsubscribe\",\"parks\":[...]}`. The server sends `{\"type\":\"ping\"}` every 25 seconds and answers `{\"type\":\"ping\"}` with `pong`. Sockets with no subscriptions close after 2 minutes (code 1000, reason \"idle\"); a client more than ~1 MB behind is dropped. Concurrent streams: 2 per anonymous IP, 10 per free key, 100 per partner key. Each connection counts once against the per-minute request limit. Rejections arrive as an `error` message followed by close code 1008 (invalid_key, rights_unavailable) or 1013 (rate_limited, too_many_streams, upstream_unavailable).","clientMessages":[{"$ref":"#/components/schemas/StreamSubscribe"}],"serverMessages":{"$ref":"#/components/schemas/StreamMessage"},"closeCodes":{"1000":"idle or normal close","1001":"server restarting","1008":"invalid_key or rights_unavailable","1011":"internal error","1013":"rate_limited, too_many_streams or upstream_unavailable; retry later"}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"pk_live_ followed by 32 letters and digits","description":"Optional developer key: `Authorization: Bearer pk_live_...`. Get one at https://parkypass.com/developers."},"parkyKeyHeader":{"type":"apiKey","in":"header","name":"X-Parky-Key","description":"Optional developer key in a header, for clients that cannot set Authorization."},"parkyKeyQuery":{"type":"apiKey","in":"query","name":"key","description":"Streams only (EventSource and browser WebSockets cannot set headers)."}},"parameters":{"park":{"name":"park","in":"path","required":true,"description":"Park key (magic-kingdom), canonical park ID, park name, or shorthand such as mk, dca or ioa. Case-insensitive. See GET /v1/parks.","schema":{"type":"string","examples":["magic-kingdom","epcot","dca"]},"example":"magic-kingdom"},"ride":{"name":"ride","in":"path","required":true,"description":"Ride ID from GET /v1/parks/{park}/rides (for example magic-kingdom_seven-dwarfs-mine-train). A ride name or slug also works when it is unique.","schema":{"type":"string"},"example":"magic-kingdom_seven-dwarfs-mine-train"},"date":{"name":"date","in":"query","required":false,"description":"First park-local date, YYYY-MM-DD, from today through 29 days ahead. Defaults to today in the park's time zone.","schema":{"type":"string","format":"date"},"example":"2026-10-12"},"days":{"name":"days","in":"query","required":false,"description":"Number of consecutive days, 1 to 30. Defaults to 1.","schema":{"type":"integer","minimum":1,"maximum":30,"default":1},"example":7},"date60":{"name":"date","in":"query","required":false,"description":"First park-local date, YYYY-MM-DD, from today through 59 days ahead. Defaults to today.","schema":{"type":"string","format":"date"},"example":"2026-10-12"},"days60":{"name":"days","in":"query","required":false,"description":"Number of consecutive days, 1 to 60. Defaults to 1.","schema":{"type":"integer","minimum":1,"maximum":60,"default":1},"example":14},"date7":{"name":"date","in":"query","required":false,"description":"Park-local date, YYYY-MM-DD, from today through 6 days ahead. Defaults to today.","schema":{"type":"string","format":"date"},"example":"2026-10-05"},"outage_days":{"name":"days","in":"query","required":false,"description":"Park-local days back including today, 1 to 30. Defaults to 7.","schema":{"type":"integer","minimum":1,"maximum":30,"default":7},"example":7},"actual_days":{"name":"days","in":"query","required":false,"description":"Park-local days back including today, 1 to 60. Defaults to 14.","schema":{"type":"integer","minimum":1,"maximum":60,"default":14},"example":14},"resort":{"name":"resort","in":"path","required":true,"description":"Resort key (walt-disney-world, disneyland-resort, universal-orlando, universal-studios-hollywood), canonical ID, name, or shorthand (wdw, dlr, uor, ush). Case-insensitive. See GET /v1/resorts.","schema":{"type":"string","examples":["walt-disney-world","wdw","uor"]},"example":"walt-disney-world"},"ticket_date":{"name":"date","in":"query","required":false,"description":"Ticket start date in the resort's time zone, YYYY-MM-DD, from today through 365 days ahead. Defaults to today.","schema":{"type":"string","format":"date"},"example":"2026-10-11"},"availability_date":{"name":"date","in":"query","required":false,"description":"First date, YYYY-MM-DD, from today through 399 days ahead. Defaults to today.","schema":{"type":"string","format":"date"},"example":"2026-10-06"},"availability_days":{"name":"days","in":"query","required":false,"description":"Number of consecutive days, 1 to 31. Defaults to 7.","schema":{"type":"integer","minimum":1,"maximum":31,"default":7},"example":7},"hotel_date":{"name":"date","in":"query","required":false,"description":"First night, YYYY-MM-DD, from today through 119 days ahead. Defaults to tonight.","schema":{"type":"string","format":"date"},"example":"2026-10-06"},"hotel_nights":{"name":"days","in":"query","required":false,"description":"Number of nights, 1 to 14. Defaults to 7.","schema":{"type":"integer","minimum":1,"maximum":14,"default":7},"example":3},"events_from":{"name":"from","in":"query","required":false,"description":"First night, YYYY-MM-DD, from today through 365 days ahead. Defaults to today.","schema":{"type":"string","format":"date"},"example":"2026-10-05"},"events_to":{"name":"to","in":"query","required":false,"description":"Last night, YYYY-MM-DD; at most 59 days after from. Defaults to 29 days after from.","schema":{"type":"string","format":"date"},"example":"2026-10-31"},"stop":{"name":"stop","in":"query","required":true,"description":"Bus stop ID or name (a resort name works), from /v1/resorts/walt-disney-world/buses/stops.","schema":{"type":"string"},"example":"art of animation"},"key":{"name":"key","in":"query","required":false,"description":"Developer key for clients that cannot send headers (streams only).","schema":{"type":"string","pattern":"^pk_live_[A-Za-z0-9]{32}$"}}},"headers":{"X-RateLimit-Limit":{"description":"Requests allowed in the current window (per minute, or per UTC day once that is the tighter bound).","schema":{"type":"integer","example":30}},"X-RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer","example":27}},"X-RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer","example":41}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","example":41}}},"responses":{"Error400":{"description":"Invalid input, such as a malformed date or out-of-range days. The message says the accepted range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"schema_version":1,"error":{"code":"invalid_request","message":"Choose a date within the next 30 park-local days: between 2026-10-05 and 2026-11-03 (Magic Kingdom Park local time, America/New_York).","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"}}}},"Error401":{"description":"Malformed, unknown or revoked key. Drop the key to use anonymous limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"schema_version":1,"error":{"code":"invalid_key","message":"That Parky API key is unknown or revoked. Get a free key at https://parkypass.com/developers, or drop the Authorization and X-Parky-Key headers to use the anonymous allowance (30/minute, 1,000/day).","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"}}}},"Error403":{"description":"Provider-derived data (waits, Lightning Lane, hours, best times, reliability) is disabled on this server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"schema_version":1,"error":{"code":"rights_unavailable","message":"Live waits, Lightning Lane, hours, best times and reliability are not enabled on this server. Ride facts, parks and crowd forecasts remain available.","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"}}}},"Error404":{"description":"Unknown park or ride. The message lists valid park keys or how to find ride IDs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"schema_version":1,"error":{"code":"not_found","message":"Parky does not support the park \"cedar-point\". Use one of these park keys: magic-kingdom, epcot, hollywood-studios, animal-kingdom, disneyland-park, disney-california-adventure, universal-studios-florida, islands-of-adventure, epic-universe, universal-studios-hollywood.","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"}}}},"Error429":{"description":"Rate limit or stream limit reached.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"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"}}}},"Error503":{"description":"Parky's upstream data is unavailable or its read budget is spent. Retry after Retry-After.","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"schema_version":1,"error":{"code":"upstream_unavailable","message":"Parky data is temporarily unavailable. Retry in about a minute.","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"}}}}},"schemas":{"Attribution":{"type":"object","required":["text","url","required"],"description":"Required credit. Wherever Parky data is shown, display `text` with a visible link to `url`; the link must stay visible.","properties":{"text":{"type":"string","const":"Live data from parkypass.com","description":"Text to display."},"url":{"type":"string","format":"uri","description":"The matching parkypass.com page to link.","example":"https://parkypass.com/parks/magic-kingdom"},"required":{"type":"boolean","const":true,"description":"Always true: attribution is a condition of use."}},"example":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true}},"Error":{"type":"object","required":["schema_version","error","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1},"error":{"type":"object","required":["code","message","docs_url"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_key","rights_unavailable","not_found","method_not_allowed","rate_limited","too_many_streams","upstream_limit","upstream_unavailable","internal_error"],"description":"Stable machine-readable code."},"message":{"type":"string","description":"What went wrong and how to fix it."},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers#errors"}}},"docs_url":{"type":"string","format":"uri"},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the error was produced.","example":"2026-10-05T16:45:02.118Z"}}},"Park":{"type":"object","required":["id","key","name","destination","time_zone","url"],"properties":{"id":{"type":"string","description":"Canonical park ID."},"key":{"type":"string","description":"Short park key used in URLs."},"name":{"type":"string"},"destination":{"type":"object","required":["id","name"],"properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]}}},"resort_key":{"type":["string","null"],"description":"Key for /v1/resorts/{resort}."},"time_zone":{"type":"string","description":"IANA time zone for park-local dates and hours."},"url":{"type":"string","format":"uri"}},"example":{"id":"disney-walt-disney-world-resort-magic-kingdom-park","key":"magic-kingdom","name":"Magic Kingdom Park","destination":{"id":"disney-walt-disney-world-resort","name":"Walt Disney World Resort"},"resort_key":"walt-disney-world","time_zone":"America/New_York","url":"https://parkypass.com/parks/magic-kingdom"}},"LightningLane":{"type":["object","null"],"required":["type","state","return_start","return_end","price"],"description":"The ride's current Lightning Lane return window. Multi Pass is preferred when a ride has both.","properties":{"type":{"type":"string","enum":["multi_pass","single_pass"]},"state":{"type":["string","null"],"description":"AVAILABLE, or FINISHED when sold out for the day.","examples":["AVAILABLE","FINISHED"]},"return_start":{"type":["string","null"],"format":"date-time","description":"Next return window start (when AVAILABLE).","example":"2026-10-05T18:15:00.000Z"},"return_end":{"type":["string","null"],"format":"date-time","description":"Next return window end.","example":"2026-10-05T19:15:00.000Z"},"price":{"type":["object","null"],"properties":{"amount":{"type":"number","example":14},"currency":{"type":["string","null"],"example":"USD"}},"description":"Single Pass price when shown."}},"example":{"type":"multi_pass","state":"AVAILABLE","return_start":"2026-10-05T18:15:00.000Z","return_end":"2026-10-05T19:15:00.000Z","price":null}},"LiveRide":{"type":"object","description":"Queued rides (`type: \"ride\"`) are always listed, with status `unavailable` and null waits when no live value is reported. Walk-through attractions (`experience`), shows (`show`) and character meets (`meet`) are listed only while reported.","required":["ride_id","name","type","status","is_open","wait_minutes","single_rider_available","single_rider_wait_minutes","lightning_lane","changed_at"],"properties":{"ride_id":{"type":"string","description":"Parky ride ID; use it with /v1/rides/{ride}."},"name":{"type":"string"},"type":{"type":"string","enum":["ride","experience","show","meet"],"description":"`ride`: a queued ride, always listed. `experience`: a walk-through or open attraction (Swiss Family Treehouse, Walt Disney World Railroad). `show`: a show the feed posts a wait for (Mickey's PhilharMagic). `meet`: a character meet (Meet Mickey at Town Square Theater); filter these out to show rides and shows only."},"status":{"type":"string","enum":["OPERATING","DOWN","CLOSED","REFURBISHMENT","UNKNOWN","unavailable"],"description":"Operator status; `unavailable` means no live value is reported for this ride."},"is_open":{"type":["boolean","null"],"description":"True when the ride and park are open; null when unavailable."},"wait_minutes":{"type":["integer","null"],"description":"Posted standby wait; null when closed or unavailable (never 0 for unknown)."},"single_rider_available":{"type":["boolean","null"]},"single_rider_wait_minutes":{"type":["integer","null"]},"lightning_lane":{"$ref":"#/components/schemas/LightningLane"},"changed_at":{"type":["string","null"],"format":"date-time","description":"When this ride's value last changed. Not a freshness time: data is current whenever data_status is live.","example":"2026-10-05T16:42:10.311Z"}},"example":{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","name":"Seven Dwarfs Mine Train","type":"ride","status":"OPERATING","is_open":true,"wait_minutes":55,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":{"type":"multi_pass","state":"AVAILABLE","return_start":"2026-10-05T18:15:00.000Z","return_end":"2026-10-05T19:15:00.000Z","price":null},"changed_at":"2026-10-05T16:42:10.311Z"}},"ParkWaits":{"type":"object","required":["park_id","park_key","park_name","time_zone","data_status","feed","park_open","checked_at","data_age_seconds","rides"],"properties":{"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"data_status":{"type":"string","enum":["live","unavailable"],"description":"`live` when the park has current live data."},"feed":{"type":["string","null"],"enum":["disney_direct","universal_direct",null],"description":"The park's own live feed while it is healthy."},"park_open":{"type":["boolean","null"]},"checked_at":{"type":["string","null"],"format":"date-time","description":"When Parky last read the feed snapshot.","example":"2026-10-05T16:44:58.000Z"},"data_age_seconds":{"type":["integer","null"],"example":4},"rides":{"type":"array","items":{"$ref":"#/components/schemas/LiveRide"}}}},"Index":{"type":"object","required":["schema_version","name","docs","openapi_url","stream_url","endpoints","attribution_rule","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"name":{"type":"string"},"description":{"type":"string"},"docs":{"type":"object","properties":{"html":{"type":"string","format":"uri"},"markdown":{"type":"string","format":"uri"}}},"openapi_url":{"type":"string","format":"uri"},"stream_url":{"type":"string","format":"uri"},"sse_url_template":{"type":"string"},"authentication":{"type":"string"},"rate_limits":{"type":"object"},"attribution_rule":{"type":"string"},"park_parameter":{"type":"string"},"endpoints":{"type":"array","items":{"type":"object","required":["path","description"],"properties":{"path":{"type":"string"},"description":{"type":"string"}}}},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"name":"Parky API","docs":{"html":"https://parkypass.com/developers","markdown":"https://parkypass.com/developers.md"},"openapi_url":"https://api.parkypass.com/v1/openapi.json","stream_url":"wss://api.parkypass.com/v1/stream","attribution_rule":"Show the attribution text with a visible link to attribution.url wherever you display Parky data.","endpoints":[{"path":"GET /v1/parks","description":"Supported parks with keys, time zones and Parky URLs."}],"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ParksResponse":{"type":"object","required":["schema_version","parks","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"parks":{"type":"array","items":{"$ref":"#/components/schemas/Park"}},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"parks":[{"id":"disney-walt-disney-world-resort-magic-kingdom-park","key":"magic-kingdom","name":"Magic Kingdom Park","destination":{"id":"disney-walt-disney-world-resort","name":"Walt Disney World Resort"},"resort_key":"walt-disney-world","time_zone":"America/New_York","url":"https://parkypass.com/parks/magic-kingdom"}],"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ParkWaitsResponse":{"allOf":[{"$ref":"#/components/schemas/ParkWaits"},{"type":"object","required":["schema_version","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}}],"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","time_zone":"America/New_York","data_status":"live","feed":"disney_direct","park_open":true,"checked_at":"2026-10-05T16:44:58.000Z","data_age_seconds":4,"rides":[{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","name":"Seven Dwarfs Mine Train","type":"ride","status":"OPERATING","is_open":true,"wait_minutes":55,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":{"type":"multi_pass","state":"AVAILABLE","return_start":"2026-10-05T18:15:00.000Z","return_end":"2026-10-05T19:15:00.000Z","price":null},"changed_at":"2026-10-05T16:42:10.311Z"},{"ride_id":"magic-kingdom_space-mountain","name":"Space Mountain","type":"ride","status":"DOWN","is_open":false,"wait_minutes":null,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":{"type":"multi_pass","state":"FINISHED","return_start":null,"return_end":null,"price":null},"changed_at":"2026-10-05T16:42:10.311Z"},{"ride_id":"magic-kingdom_swiss-family-treehouse","name":"Swiss Family Treehouse","type":"experience","status":"OPERATING","is_open":true,"wait_minutes":5,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":null,"changed_at":"2026-10-05T13:02:44.120Z"},{"ride_id":"magic-kingdom_mickeys-philharmagic","name":"Mickey's PhilharMagic","type":"show","status":"OPERATING","is_open":true,"wait_minutes":15,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":null,"changed_at":"2026-10-05T16:05:12.904Z"}],"note":"Posted waits and operating status can change; confirm critical decisions with the park operator.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"RideFacts":{"type":"object","required":["ride_id","name","park_id","park_key","park_name","facts","url"],"properties":{"ride_id":{"type":"string"},"name":{"type":"string"},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"land":{"type":["string","null"],"description":"The ride's land, from the park's own catalog (Disney parks)."},"ride_type":{"type":["string","null"],"description":"Curated type such as `launched roller coaster`, else the catalog type (attraction, show)."},"is_attraction":{"type":["boolean","null"]},"has_lightning_lane":{"type":["boolean","null"]},"height_requirement_inches":{"type":["number","null"]},"duration_seconds":{"type":["number","null"]},"location":{"type":["object","null"],"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}}},"facts":{"type":"object","additionalProperties":true,"description":"Reviewed facts when present: height_inches, duration_seconds, duration_minutes, top_speed_mph, drop_feet, opened_year, single_rider, rider_swap, transfer_required, wheelchair_access, kid_intensity, kid_scare_factors, locker_policy, facts_source_url, facts_reviewed_at."},"url":{"type":"string","format":"uri","description":"The ride's parkypass.com page."},"updated_at":{"type":["string","null"],"format":"date-time","description":"Last catalog update.","example":"2026-10-04T18:17:13.907Z"}},"example":{"ride_id":"islands-of-adventure_jurassic-world-velocicoaster","name":"Jurassic World VelociCoaster","park_id":"universal-orlando-resort-islands-of-adventure","park_key":"islands-of-adventure","park_name":"Universal Islands of Adventure","land":null,"ride_type":"launched roller coaster","is_attraction":true,"has_lightning_lane":true,"height_requirement_inches":51,"duration_seconds":120,"location":{"latitude":28.471429,"longitude":-81.472284},"facts":{"height_inches":51,"top_speed_mph":70,"drop_feet":140,"duration_seconds":120,"opened_year":2021,"single_rider":true,"rider_swap":true},"url":"https://parkypass.com/parks/islands-of-adventure/jurassic-world-velocicoaster","updated_at":"2026-10-04T18:17:13.907Z"}},"RideListResponse":{"type":"object","required":["schema_version","park_id","park_key","rides","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"rides":{"type":"array","items":{"$ref":"#/components/schemas/RideFacts"}},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"universal-orlando-resort-islands-of-adventure","park_key":"islands-of-adventure","park_name":"Universal Islands of Adventure","rides":[{"ride_id":"islands-of-adventure_jurassic-world-velocicoaster","name":"Jurassic World VelociCoaster","park_id":"universal-orlando-resort-islands-of-adventure","park_key":"islands-of-adventure","park_name":"Universal Islands of Adventure","land":null,"ride_type":"launched roller coaster","is_attraction":true,"has_lightning_lane":true,"height_requirement_inches":51,"duration_seconds":120,"location":{"latitude":28.471429,"longitude":-81.472284},"facts":{"height_inches":51,"top_speed_mph":70,"drop_feet":140,"duration_seconds":120,"opened_year":2021,"single_rider":true,"rider_swap":true},"url":"https://parkypass.com/parks/islands-of-adventure/jurassic-world-velocicoaster","updated_at":"2026-10-04T18:17:13.907Z"}],"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ReliabilityRide":{"type":"object","required":["ride_id","name","uptime_pct","outages","outages_per_day","days_observed"],"properties":{"ride_id":{"type":"string"},"name":{"type":"string"},"uptime_pct":{"type":["number","null"],"description":"Percent of open-park minutes the ride was not down."},"outages":{"type":["integer","null"]},"outages_per_day":{"type":["number","null"]},"average_outage_minutes":{"type":["number","null"]},"longest_outage_minutes":{"type":["number","null"]},"days_observed":{"type":["integer","null"]},"down_minutes":{"type":["number","null"]},"operating_minutes":{"type":["number","null"]}},"example":{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","name":"Seven Dwarfs Mine Train","uptime_pct":89.02,"outages":46,"outages_per_day":1.48,"average_outage_minutes":32.8,"longest_outage_minutes":225,"days_observed":31,"down_minutes":1510,"operating_minutes":12247}},"RideResponse":{"allOf":[{"$ref":"#/components/schemas/RideFacts"},{"type":"object","required":["schema_version","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"live":{"type":"object","description":"Omitted when provider-derived data is disabled.","properties":{"data_status":{"type":"string","enum":["live","unavailable"]},"feed":{"type":["string","null"]},"park_open":{"type":["boolean","null"]},"checked_at":{"type":["string","null"],"format":"date-time"},"wait":{"oneOf":[{"$ref":"#/components/schemas/LiveRide"},{"type":"null"}],"description":"Null for rides without a posted queue."}}},"reliability":{"oneOf":[{"$ref":"#/components/schemas/ReliabilityRide"},{"type":"null"}],"description":"30-day summary; omitted when provider-derived data is disabled."},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}}],"example":{"schema_version":1,"ride_id":"islands-of-adventure_jurassic-world-velocicoaster","name":"Jurassic World VelociCoaster","park_id":"universal-orlando-resort-islands-of-adventure","park_key":"islands-of-adventure","park_name":"Universal Islands of Adventure","land":null,"ride_type":"launched roller coaster","is_attraction":true,"has_lightning_lane":true,"height_requirement_inches":51,"duration_seconds":120,"location":{"latitude":28.471429,"longitude":-81.472284},"facts":{"height_inches":51,"top_speed_mph":70,"drop_feet":140,"duration_seconds":120,"opened_year":2021,"single_rider":true,"rider_swap":true},"url":"https://parkypass.com/parks/islands-of-adventure/jurassic-world-velocicoaster","updated_at":"2026-10-04T18:17:13.907Z","live":{"data_status":"live","feed":"universal_direct","park_open":true,"checked_at":"2026-10-05T16:44:58.000Z","wait":{"ride_id":"islands-of-adventure_jurassic-world-velocicoaster","name":"Jurassic World VelociCoaster","type":"ride","status":"OPERATING","is_open":true,"wait_minutes":75,"single_rider_available":true,"single_rider_wait_minutes":20,"lightning_lane":null,"changed_at":"2026-10-05T16:42:10.311Z"}},"reliability":{"ride_id":"islands-of-adventure_jurassic-world-velocicoaster","name":"Jurassic World VelociCoaster","uptime_pct":93.4,"outages":46,"outages_per_day":1.48,"average_outage_minutes":32.8,"longest_outage_minutes":225,"days_observed":31,"down_minutes":1510,"operating_minutes":12247,"window_start":"2026-09-05T16:00:00.000Z","computed_at":"2026-10-05T16:00:00.000Z"},"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/islands-of-adventure/jurassic-world-velocicoaster","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"HoursResponse":{"type":"object","required":["schema_version","park_id","days","data_status","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"days":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"is_operating":{"type":["boolean","null"]},"open_at":{"type":["string","null"],"format":"date-time"},"close_at":{"type":["string","null"],"format":"date-time"},"schedule_windows":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["early_entry","regular_hours","extended_hours","special_event","unknown"]},"display_label":{"type":"string"},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"}}}},"updated_at":{"type":["string","null"],"format":"date-time"}}}},"requested_from":{"type":"string","format":"date"},"requested_to":{"type":"string","format":"date"},"missing_dates":{"type":"array","items":{"type":"string","format":"date"}},"data_status":{"type":"string","enum":["available","partial","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_name":"Magic Kingdom Park","time_zone":"America/New_York","days":[{"date":"2026-10-05","is_operating":true,"open_at":"2026-10-05T13:00:00.000Z","close_at":"2026-10-06T03:00:00.000Z","schedule_windows":[{"category":"early_entry","display_label":"Early Entry","start_at":"2026-10-05T12:30:00.000Z","end_at":"2026-10-05T13:00:00.000Z"},{"category":"regular_hours","display_label":"Regular Hours","start_at":"2026-10-05T13:00:00.000Z","end_at":"2026-10-06T03:00:00.000Z"}],"updated_at":"2026-09-23T15:01:01.241Z"}],"requested_from":"2026-10-05","requested_to":"2026-10-05","missing_dates":[],"data_status":"available","note":"Operating hours may change. Confirm critical decisions with the park operator.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"CrowdResponse":{"type":"object","required":["schema_version","park_id","days","data_status","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"days":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"crowd_level":{"type":"number","minimum":1,"maximum":10},"forecast_level":{"type":"number","description":"Present when today's level was adjusted to observed waits."},"adjusted_to_observed_waits":{"type":"boolean"},"level_low":{"type":"number"},"level_high":{"type":"number"},"drivers":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"effect":{"type":"number"}}}},"notes":{"type":"array","items":{"type":"string"}},"generated_at":{"type":["string","null"],"format":"date-time"}}}},"requested_from":{"type":"string","format":"date"},"requested_to":{"type":"string","format":"date"},"missing_dates":{"type":"array","items":{"type":"string","format":"date"}},"data_status":{"type":"string","enum":["available","partial","unavailable"]},"accuracy":{"oneOf":[{"$ref":"#/components/schemas/CrowdAccuracy"},{"type":"null"}]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_name":"Magic Kingdom Park","time_zone":"America/New_York","days":[{"date":"2026-10-11","crowd_level":7,"level_low":6,"level_high":8,"drivers":[{"label":"Fall break week","effect":1.2}],"notes":["Halloween party night: park closes at 6 pm for day guests."],"generated_at":"2026-10-05T09:12:00.000Z"}],"requested_from":"2026-10-11","requested_to":"2026-10-11","missing_dates":[],"data_status":"available","note":"This is a forecast, not a guarantee of crowd size or wait time.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"LightningLaneResponse":{"type":"object","required":["schema_version","park_id","date","prices","rides","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"date":{"type":"string","format":"date"},"prices":{"type":"array","items":{"type":"object","properties":{"product":{"type":"string","enum":["multi_pass","premier_pass","express_1_day"],"description":"Lightning Lane Multi Pass or Premier Pass (Disney parks), or Universal Express Pass for one day at one park. Each ride's Single Pass price is on its `lightning_lane.price`."},"product_name":{"type":"string"},"price":{"type":["number","null"]},"currency":{"type":["string","null"]},"available":{"type":["boolean","null"]},"updated_at":{"type":["string","null"],"format":"date-time"}}}},"live_data_status":{"type":"string","enum":["live","unavailable","not_today"]},"feed":{"type":["string","null"]},"checked_at":{"type":["string","null"],"format":"date-time"},"rides":{"type":"array","items":{"type":"object","properties":{"ride_id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"lightning_lane":{"$ref":"#/components/schemas/LightningLane"},"next_return_time":{"type":["string","null"],"format":"date-time","description":"Next return window start while AVAILABLE.","example":"2026-10-05T18:15:00.000Z"},"changed_at":{"type":["string","null"],"format":"date-time"}}}},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","time_zone":"America/New_York","date":"2026-10-05","prices":[{"product":"multi_pass","product_name":"Lightning Lane Multi Pass","price":35,"currency":"USD","available":true,"updated_at":"2026-10-05T11:17:08.987Z"}],"live_data_status":"live","feed":"disney_direct","checked_at":"2026-10-05T16:44:58.000Z","rides":[{"ride_id":"magic-kingdom_pirates-of-the-caribbean","name":"Pirates of the Caribbean","status":"OPERATING","lightning_lane":{"type":"multi_pass","state":"AVAILABLE","return_start":"2026-10-05T18:15:00.000Z","return_end":"2026-10-05T19:15:00.000Z","price":null},"next_return_time":"2026-10-05T18:15:00.000Z","changed_at":"2026-10-05T16:40:00.000Z"}],"note":"Return times change quickly.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ReliabilityResponse":{"type":"object","required":["schema_version","park_id","rides","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"window_days":{"type":"integer","const":30},"window_start":{"type":["string","null"],"format":"date-time"},"computed_at":{"type":["string","null"],"format":"date-time"},"rides":{"type":"array","items":{"$ref":"#/components/schemas/ReliabilityRide"}},"truncated":{"type":"boolean"},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","window_days":30,"window_start":"2026-09-05T16:00:00.000Z","computed_at":"2026-10-05T16:00:00.000Z","rides":[{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","name":"Seven Dwarfs Mine Train","uptime_pct":89.02,"outages":46,"outages_per_day":1.48,"average_outage_minutes":32.8,"longest_outage_minutes":225,"days_observed":31,"down_minutes":1510,"operating_minutes":12247}],"truncated":false,"data_status":"available","note":"Least reliable first.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"CrowdAccuracy":{"type":"object","description":"How Parky's crowd forecast has scored against observed crowds for this park.","properties":{"days_scored":{"type":["integer","null"]},"within_one_level_share":{"type":["number","null"],"description":"Share of days forecast within one level."},"mean_miss_levels":{"type":["number","null"]},"baseline_mean_miss_levels":{"type":["number","null"],"description":"Mean miss of a naive day-of-week baseline."},"correlation":{"type":["number","null"]},"reliable":{"type":["boolean","null"]},"model_version":{"type":["string","null"]},"updated_at":{"type":["string","null"],"format":"date-time"}},"example":{"days_scored":50,"within_one_level_share":0.54,"mean_miss_levels":1.58,"baseline_mean_miss_levels":2.06,"correlation":0.61,"reliable":true,"model_version":"crowd-ridge-v3","updated_at":"2026-10-04T20:09:28.957Z"}},"CrowdActualsResponse":{"type":"object","required":["schema_version","park_id","days","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"requested_from":{"type":"string","format":"date"},"requested_to":{"type":"string","format":"date"},"days":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"crowd_index":{"type":["number","null"],"description":"1.0 = the park's typical day."},"midday_mean_wait_minutes":{"type":["number","null"]},"rides_used":{"type":["integer","null"]},"computed_at":{"type":["string","null"],"format":"date-time"}}}},"accuracy":{"oneOf":[{"$ref":"#/components/schemas/CrowdAccuracy"},{"type":"null"}]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","requested_from":"2026-09-22","requested_to":"2026-10-05","days":[{"date":"2026-10-04","crowd_index":1.07,"midday_mean_wait_minutes":31.9,"rides_used":8,"computed_at":"2026-10-04T20:09:09.800Z"}],"accuracy":{"days_scored":50,"within_one_level_share":0.54,"mean_miss_levels":1.58,"baseline_mean_miss_levels":2.06,"correlation":0.61,"reliable":true,"model_version":"crowd-ridge-v3","updated_at":"2026-10-04T20:09:28.957Z"},"note":"crowd_index is the day's observed midday waits relative to the park's typical day (1.0 = typical).","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"Outage":{"type":"object","required":["ride_id","reason","started_at","ended_at","duration_minutes","ongoing"],"properties":{"ride_id":{"type":"string"},"name":{"type":["string","null"],"description":"On park lists."},"type":{"type":["string","null"],"enum":["ride","experience","show","meet",null],"description":"On park lists."},"reason":{"type":"string","enum":["down","weather"],"description":"`weather` when the park reported a weather delay."},"started_at":{"type":"string","format":"date-time"},"ended_at":{"type":["string","null"],"format":"date-time"},"duration_minutes":{"type":["number","null"],"description":"So far, for an ongoing outage."},"ongoing":{"type":"boolean"},"feed":{"type":["string","null"],"enum":["disney_direct","universal_direct",null]}},"example":{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","reason":"down","started_at":"2026-10-05T14:02:10.500Z","ended_at":"2026-10-05T14:40:00.000Z","duration_minutes":37.8,"ongoing":false,"feed":"disney_direct"}},"RideOutagesResponse":{"type":"object","required":["schema_version","ride_id","summary","outages","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"ride_id":{"type":"string"},"ride_name":{"type":"string"},"park_id":{"type":"string"},"park_key":{"type":"string"},"time_zone":{"type":"string"},"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"summary":{"type":"object","properties":{"outages":{"type":"integer"},"down_minutes":{"type":"number"},"longest_outage_minutes":{"type":["number","null"]},"ongoing":{"type":"boolean"}}},"outages":{"type":"array","items":{"$ref":"#/components/schemas/Outage"}},"coverage_start":{"type":"string","format":"date"},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"ride_id":"magic-kingdom_seven-dwarfs-mine-train","ride_name":"Seven Dwarfs Mine Train","park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","time_zone":"America/New_York","from":"2026-09-29","to":"2026-10-05","summary":{"outages":1,"down_minutes":37.8,"longest_outage_minutes":37.8,"ongoing":false},"outages":[{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","reason":"down","started_at":"2026-10-05T14:02:10.500Z","ended_at":"2026-10-05T14:40:00.000Z","duration_minutes":37.8,"ongoing":false,"feed":"disney_direct"}],"coverage_start":"2026-09-28","note":"Outages come from Disney's and Universal's own live feeds.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ParkOutagesResponse":{"type":"object","required":["schema_version","park_id","outages","down_now","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"date":{"type":"string","format":"date"},"outages_today":{"type":"integer"},"down_now":{"type":"array","items":{"type":"string"},"description":"Ride IDs down right now."},"outages":{"type":"array","items":{"$ref":"#/components/schemas/Outage"}},"truncated":{"type":"boolean"},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","time_zone":"America/New_York","date":"2026-10-05","outages_today":2,"down_now":["magic-kingdom_space-mountain"],"outages":[{"ride_id":"magic-kingdom_space-mountain","name":"Space Mountain","type":"ride","reason":"down","started_at":"2026-10-05T16:30:00.000Z","ended_at":null,"duration_minutes":15,"ongoing":true,"feed":"disney_direct"}],"truncated":false,"note":"Outages come from Disney's and Universal's own live feeds.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ShowtimesResponse":{"type":"object","required":["schema_version","park_id","date","shows","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"date":{"type":"string","format":"date"},"shows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Parky entity ID."},"name":{"type":"string"},"type":{"type":"string","enum":["show","meet","experience","ride"]},"times":{"type":"array","items":{"type":"object","properties":{"start_at":{"type":"string","format":"date-time"},"end_at":{"type":["string","null"],"format":"date-time"},"kind":{"type":["string","null"],"description":"The park's label, such as Performance Time or Operating (an open window rather than a set time)."}}}},"updated_at":{"type":["string","null"],"format":"date-time"}}}},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","time_zone":"America/New_York","date":"2026-10-05","shows":[{"id":"magic-kingdom_festival-of-fantasy-parade","name":"Festival of Fantasy Parade","type":"show","times":[{"start_at":"2026-10-05T16:00:00.000Z","end_at":"2026-10-05T16:00:00.000Z","kind":"Performance Time"},{"start_at":"2026-10-05T19:00:00.000Z","end_at":"2026-10-05T19:00:00.000Z","kind":"Performance Time"}],"updated_at":"2026-10-05T09:00:00.000Z"}],"data_status":"available","note":"Showtimes are usually published for today only and can change.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ConditionsResponse":{"type":"object","required":["schema_version","park_id","weather","rides","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"park_id":{"type":"string"},"park_key":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"weather":{"type":["object","null"],"description":"Null when no National Weather Service observation from the last 3 hours exists.","properties":{"observed_at":{"type":"string","format":"date-time"},"condition":{"type":["string","null"]},"summary":{"type":["string","null"]},"temperature_f":{"type":["number","null"]},"feels_like_f":{"type":["number","null"]},"heat_index_f":{"type":["number","null"]},"precipitation_chance_percent":{"type":["number","null"]},"precipitation_in_per_hour":{"type":["number","null"]},"wind_speed_mph":{"type":["number","null"]},"wind_gust_mph":{"type":["number","null"]},"lightning_risk":{"type":["string","null"],"examples":["none","elevated","high"],"description":"Parky's reading of the forecast text and alerts."},"alerts":{"type":"array","items":{"type":"object","properties":{"event":{"type":["string","null"]},"headline":{"type":["string","null"]},"severity":{"type":["string","null"]},"onset":{"type":["string","null"],"format":"date-time"},"expires":{"type":["string","null"],"format":"date-time"}}}},"thunderstorm_alert":{"type":["boolean","null"]},"severe_alert":{"type":["boolean","null"]},"source":{"type":"string","const":"National Weather Service"}}},"rides":{"type":"object","properties":{"data_status":{"type":"string","enum":["live","unavailable"]},"park_open":{"type":["boolean","null"]},"checked_at":{"type":["string","null"],"format":"date-time"},"operating":{"type":"integer"},"down":{"type":"integer"},"closed":{"type":"integer"},"unavailable":{"type":"integer"},"average_wait_minutes":{"type":["number","null"]},"longest_wait_minutes":{"type":["number","null"]}}},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_key":"magic-kingdom","park_name":"Magic Kingdom Park","time_zone":"America/New_York","weather":{"observed_at":"2026-10-05T16:35:00.000Z","condition":"Clear","summary":"Clear - 84F - 10% rain","temperature_f":84.2,"feels_like_f":88,"heat_index_f":88,"precipitation_chance_percent":10,"precipitation_in_per_hour":null,"wind_speed_mph":7,"wind_gust_mph":null,"lightning_risk":"none","alerts":[{"event":"Heat Advisory","headline":"Heat Advisory until 7 PM","severity":"Moderate","onset":"2026-10-05T15:00:00.000Z","expires":"2026-10-05T23:00:00.000Z"}],"thunderstorm_alert":false,"severe_alert":false,"source":"National Weather Service"},"rides":{"data_status":"live","park_open":true,"checked_at":"2026-10-05T16:44:58.000Z","operating":18,"down":1,"closed":2,"unavailable":0,"average_wait_minutes":38.5,"longest_wait_minutes":85},"note":"Weather is the National Weather Service's latest observation and alerts.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"Resort":{"type":"object","required":["id","key","name","aliases","time_zone","parks","url"],"properties":{"id":{"type":"string"},"key":{"type":"string","enum":["walt-disney-world","disneyland-resort","universal-orlando","universal-studios-hollywood"]},"name":{"type":["string","null"]},"aliases":{"type":"array","items":{"type":"string"}},"time_zone":{"type":["string","null"]},"parks":{"type":"array","items":{"$ref":"#/components/schemas/Park"}},"url":{"type":"string","format":"uri"}},"example":{"id":"disney-walt-disney-world-resort","key":"walt-disney-world","name":"Walt Disney World Resort","aliases":["wdw","disney-world","walt-disney-world-resort"],"time_zone":"America/New_York","parks":[{"id":"disney-walt-disney-world-resort-magic-kingdom-park","key":"magic-kingdom","name":"Magic Kingdom Park","destination":{"id":"disney-walt-disney-world-resort","name":"Walt Disney World Resort"},"resort_key":"walt-disney-world","time_zone":"America/New_York","url":"https://parkypass.com/parks/magic-kingdom"}],"url":"https://parkypass.com/parks"}},"ResortsResponse":{"type":"object","required":["schema_version","resorts","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resorts":{"type":"array","items":{"$ref":"#/components/schemas/Resort"}},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resorts":[{"id":"disney-walt-disney-world-resort","key":"walt-disney-world","name":"Walt Disney World Resort","aliases":["wdw","disney-world","walt-disney-world-resort"],"time_zone":"America/New_York","parks":[{"id":"disney-walt-disney-world-resort-magic-kingdom-park","key":"magic-kingdom","name":"Magic Kingdom Park","destination":{"id":"disney-walt-disney-world-resort","name":"Walt Disney World Resort"},"resort_key":"walt-disney-world","time_zone":"America/New_York","url":"https://parkypass.com/parks/magic-kingdom"}],"url":"https://parkypass.com/parks"}],"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ResortResponse":{"allOf":[{"$ref":"#/components/schemas/Resort"},{"type":"object","required":["schema_version","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}}]},"TicketsResponse":{"type":"object","required":["schema_version","resort_id","date","tickets","park_products","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resort_id":{"type":"string"},"resort_key":{"type":"string"},"resort_name":{"type":["string","null"]},"date":{"type":"string","format":"date"},"tickets":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"family":{"type":["string","null"],"examples":["base","park_hopper","park_to_park","special_event"]},"parks":{"type":["string","null"],"description":"The park or parks the ticket covers, as the store labels them (mk, USF+IOA)."},"days":{"type":["integer","null"]},"age_group":{"type":["string","null"],"examples":["adult","child"]},"eligibility":{"type":["string","null"],"examples":["general","florida_resident"]},"event":{"type":["string","null"]},"price":{"type":["number","null"]},"tax":{"type":["number","null"]},"currency":{"type":"string"},"available":{"type":["boolean","null"]},"valid_through":{"type":["string","null"],"format":"date"},"captured_at":{"type":["string","null"],"format":"date-time"}}}},"park_products":{"type":"array","items":{"type":"object","properties":{"park_key":{"type":"string"},"product":{"type":"string","examples":["adult_1_day","express_1_day_1_park"]},"price":{"type":["number","null"]},"tier":{"type":["string","null"]},"currency":{"type":"string"},"available":{"type":["boolean","null"]},"captured_at":{"type":["string","null"],"format":"date-time"}}}},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resort_id":"disney-walt-disney-world-resort","resort_key":"walt-disney-world","resort_name":"Walt Disney World Resort","date":"2026-10-11","tickets":[{"name":null,"family":"base","parks":"mk","days":1,"age_group":"adult","eligibility":"general","event":null,"price":199,"tax":12.94,"currency":"USD","available":true,"valid_through":"2026-10-11","captured_at":"2026-10-04T08:02:36.182Z"}],"park_products":[{"park_key":"magic-kingdom","product":"adult_1_day","price":199,"tier":null,"currency":"USD","available":true,"captured_at":"2026-10-04T08:02:36.182Z"}],"data_status":"available","note":"Prices are what Disney or Universal showed Parky on its last check.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"ParkAvailabilityResponse":{"type":"object","required":["schema_version","resort_id","days","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resort_id":{"type":"string"},"resort_key":{"type":"string"},"resort_name":{"type":["string","null"]},"requested_from":{"type":"string","format":"date"},"requested_to":{"type":"string","format":"date"},"days":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"parks":{"type":"array","items":{"type":"object","properties":{"park_key":{"type":"string"},"segments":{"type":"array","items":{"type":"object","properties":{"segment":{"type":"string","description":"Ticket or pass type: broad (date-based tickets), florida, military, ap_* (annual pass tiers), and so on."},"available":{"type":["boolean","null"]},"fully_booked":{"type":["boolean","null"]},"blocked":{"type":["boolean","null"],"description":"Blocked out for this pass type."},"captured_at":{"type":["string","null"],"format":"date-time"}}}}}}}}}},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resort_id":"disney-walt-disney-world-resort","resort_key":"walt-disney-world","resort_name":"Walt Disney World Resort","requested_from":"2026-10-06","requested_to":"2026-10-06","days":[{"date":"2026-10-06","parks":[{"park_key":"magic-kingdom","segments":[{"segment":"ap_pirate","available":false,"fully_booked":false,"blocked":true,"captured_at":"2026-10-05T08:00:00.000Z"},{"segment":"broad","available":true,"fully_booked":false,"blocked":false,"captured_at":"2026-10-05T08:00:00.000Z"}]}]}],"data_status":"available","note":"Park reservation and blockout availability by ticket or pass type.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"HotelAvailabilityResponse":{"type":"object","required":["schema_version","resort_id","nights","hotels","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resort_id":{"type":"string"},"resort_key":{"type":"string"},"resort_name":{"type":["string","null"]},"requested_from":{"type":"string","format":"date"},"requested_to":{"type":"string","format":"date"},"nights":{"type":"array","items":{"type":"object","properties":{"night":{"type":"string","format":"date"},"hotels_checked":{"type":["integer","null"]},"hotels_sold_out":{"type":["integer","null"]},"sold_out_share":{"type":["number","null"]},"median_rate":{"type":["number","null"]},"rate_index":{"type":["number","null"],"description":"Median of each hotel's rate relative to its own typical rate (1.0 = typical)."},"rooms_left_at_lowest_rate":{"type":["integer","null"]},"captured_at":{"type":["string","null"],"format":"date-time"}}}},"hotels":{"type":"array","items":{"type":"object","properties":{"hotel_id":{"type":"string"},"name":{"type":["string","null"]},"tier":{"type":["string","null"],"examples":["value","moderate","deluxe","deluxe_villa"]},"night":{"type":"string","format":"date"},"adults":{"type":["integer","null"]},"available":{"type":["boolean","null"]},"rate":{"type":["number","null"]},"rack_rate":{"type":["number","null"]},"room_type":{"type":["string","null"]},"rooms_left":{"type":["integer","null"]},"currency":{"type":"string"},"captured_at":{"type":["string","null"],"format":"date-time"}}}},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resort_id":"disney-walt-disney-world-resort","resort_key":"walt-disney-world","resort_name":"Walt Disney World Resort","requested_from":"2026-10-06","requested_to":"2026-10-06","nights":[{"night":"2026-10-06","hotels_checked":30,"hotels_sold_out":3,"sold_out_share":0.1,"median_rate":412.5,"rate_index":1.04,"rooms_left_at_lowest_rate":120,"captured_at":"2026-10-05T07:11:45.788Z"}],"hotels":[{"hotel_id":"1","name":"Disney's Contemporary Resort","tier":"deluxe","night":"2026-10-06","adults":2,"available":true,"rate":712,"rack_rate":712,"room_type":"STD","rooms_left":4,"currency":"USD","captured_at":"2026-10-05T07:11:45.788Z"}],"data_status":"available","note":"The lowest available rate for two adults per hotel and night.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"EventNightsResponse":{"type":"object","required":["schema_version","resort_id","nights","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resort_id":{"type":"string"},"resort_key":{"type":"string"},"resort_name":{"type":["string","null"]},"requested_from":{"type":"string","format":"date"},"requested_to":{"type":"string","format":"date"},"nights":{"type":"array","items":{"type":"object","properties":{"event":{"type":"string","description":"Stable event key."},"name":{"type":["string","null"]},"date":{"type":"string","format":"date"},"park_key":{"type":["string","null"]},"status":{"type":["string","null"],"examples":["on_sale","sold_out","not_on_sale"]},"available":{"type":["boolean","null"]},"price":{"type":["number","null"],"description":"Lowest adult price seen."},"addon_available":{"type":["boolean","null"]},"first_seen_at":{"type":["string","null"],"format":"date-time"},"first_sold_out_at":{"type":["string","null"],"format":"date-time","description":"When Parky first saw the night sold out."},"last_on_sale_at":{"type":["string","null"],"format":"date-time"},"captured_at":{"type":["string","null"],"format":"date-time"}}}},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resort_id":"universal-studios-hollywood","resort_key":"universal-studios-hollywood","resort_name":"Universal Studios Hollywood","requested_from":"2026-10-05","requested_to":"2026-10-31","nights":[{"event":"halloween-horror-nights-hollywood","name":"Halloween Horror Nights Hollywood","date":"2026-10-10","park_key":"universal-studios-hollywood","status":"sold_out","available":false,"price":82,"addon_available":true,"first_seen_at":"2026-09-27T20:14:52.260Z","first_sold_out_at":"2026-10-03T20:14:52.260Z","last_on_sale_at":"2026-10-02T20:14:52.260Z","captured_at":"2026-10-04T20:14:52.260Z"}],"data_status":"available","note":"Separately ticketed event nights as the parks' own stores showed them.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"BusStopsResponse":{"type":"object","required":["schema_version","stops","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resort_id":{"type":"string"},"resort_key":{"type":"string"},"stops":{"type":"array","items":{"type":"object","properties":{"stop_id":{"type":"string"},"name":{"type":["string","null"]},"resort":{"type":["string","null"]},"destinations":{"type":"array","items":{"type":"string"}}}}},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resort_id":"disney-walt-disney-world-resort","resort_key":"walt-disney-world","stops":[{"stop_id":"16486839","name":"Disney's Art of Animation Resort","resort":"Disney's Art of Animation Resort","destinations":["Disney's Animal Kingdom Theme Park","Magic Kingdom Park"]}],"docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"BusArrivalsResponse":{"type":"object","required":["schema_version","stops","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"resort_id":{"type":"string"},"resort_key":{"type":"string"},"stops":{"type":"array","items":{"type":"object","properties":{"stop_id":{"type":"string"},"name":{"type":["string","null"]},"resort":{"type":["string","null"]},"routes":{"type":"array","items":{"type":"object","properties":{"to":{"type":["string","null"]},"to_type":{"type":["string","null"],"examples":["theme-park","water-park","Entertainment-Venue"]},"next_departure_at":{"type":["string","null"],"format":"date-time","description":"Null when Disney is not predicting a departure."},"minutes_until_departure":{"type":["integer","null"]},"arrives_at":{"type":["string","null"],"format":"date-time"},"frequency_minutes":{"type":["integer","null"]},"updated_at":{"type":["string","null"],"format":"date-time"}}}}}}},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"resort_id":"disney-walt-disney-world-resort","resort_key":"walt-disney-world","stops":[{"stop_id":"16486839","name":"Disney's Art of Animation Resort","resort":"Disney's Art of Animation Resort","routes":[{"to":"Disney's Animal Kingdom Theme Park","to_type":"theme-park","next_departure_at":"2026-10-05T16:52:00.000Z","minutes_until_departure":7,"arrives_at":"2026-10-05T17:12:00.000Z","frequency_minutes":20,"updated_at":"2026-10-05T16:44:30.900Z"}]}],"note":"Predicted departures from Disney's own bus tracking.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"BestTimeWindow":{"type":"object","required":["start","end","start_hour","end_hour","average_wait_minutes"],"properties":{"start":{"type":"string","example":"20:00"},"end":{"type":"string","example":"22:00"},"start_hour":{"type":"integer"},"end_hour":{"type":"integer"},"average_wait_minutes":{"type":"number"}},"example":{"start":"20:00","end":"22:00","start_hour":20,"end_hour":22,"average_wait_minutes":27.5}},"BestTimesResponse":{"type":"object","required":["schema_version","ride_id","date","predicted_hours","typical_hours","summary","disney_forecast","docs_url","attribution","generated_at"],"properties":{"schema_version":{"type":"integer","const":1,"description":"Response format version. Fields are only added within a version."},"ride_id":{"type":"string"},"ride_name":{"type":"string"},"park_id":{"type":"string"},"park_name":{"type":"string"},"time_zone":{"type":"string"},"date":{"type":"string","format":"date"},"day_of_week":{"type":"string"},"predicted_hours":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"integer","minimum":0,"maximum":23,"description":"Park-local hour."},"local_time":{"type":"string"},"predicted_wait_minutes":{"type":["number","null"]},"lower_bound":{"type":["number","null"]},"upper_bound":{"type":["number","null"]},"park_closed":{"type":"boolean"}}}},"typical_hours":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"integer"},"local_time":{"type":"string"},"typical_wait_minutes":{"type":["number","null"]},"days_observed":{"type":["integer","null"]}}}},"summary":{"type":["object","null"],"properties":{"basis":{"type":"string","enum":["predicted","typical"]},"best_windows":{"type":"array","items":{"$ref":"#/components/schemas/BestTimeWindow"},"maxItems":2},"worst_window":{"oneOf":[{"$ref":"#/components/schemas/BestTimeWindow"},{"type":"null"}]}}},"disney_forecast":{"type":["object","null"],"description":"Disney's own hourly forecast for that day (Disney parks only; null elsewhere). Disney usually publishes today only.","properties":{"hours":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"integer","description":"Park-local hour."},"local_time":{"type":"string"},"forecast_at":{"type":"string","format":"date-time"},"wait_minutes":{"type":["number","null"]},"busyness_percent":{"type":["number","null"],"description":"Disney's busyness percentage for that hour, 0-100."}}}},"captured_at":{"type":["string","null"],"format":"date-time"},"data_status":{"type":"string","enum":["available","unavailable"]},"note":{"type":"string"}}},"prediction_generated_at":{"type":["string","null"],"format":"date-time"},"model_version":{"type":["string","null"]},"data_status":{"type":"string","enum":["predicted","typical_only","unavailable"]},"note":{"type":"string"},"docs_url":{"type":"string","format":"uri","example":"https://parkypass.com/developers","description":"Developer documentation."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When Parky built this response.","example":"2026-10-05T16:45:02.118Z"}},"example":{"schema_version":1,"ride_id":"magic-kingdom_seven-dwarfs-mine-train","ride_name":"Seven Dwarfs Mine Train","park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_name":"Magic Kingdom Park","time_zone":"America/New_York","date":"2026-10-06","day_of_week":"Tuesday","predicted_hours":[{"hour":9,"local_time":"09:00","predicted_wait_minutes":45,"lower_bound":38,"upper_bound":52,"park_closed":false}],"typical_hours":[{"hour":9,"local_time":"09:00","typical_wait_minutes":40,"days_observed":8}],"summary":{"basis":"predicted","best_windows":[{"start":"20:00","end":"22:00","start_hour":20,"end_hour":22,"average_wait_minutes":27.5}],"worst_window":{"start":"12:00","end":"14:00","start_hour":12,"end_hour":14,"average_wait_minutes":70}},"disney_forecast":{"hours":[{"hour":9,"local_time":"09:00","forecast_at":"2026-10-06T13:00:00.000Z","wait_minutes":40,"busyness_percent":31}],"captured_at":"2026-10-06T11:05:40.117Z","data_status":"available","note":"Disney publishes this forecast for today and sometimes tomorrow only."},"prediction_generated_at":"2026-10-05T10:22:35.000Z","model_version":"park-window-time-of-day-v4","data_status":"predicted","note":"Hours are park-local. Predictions and typical waits are estimates, not guarantees.","docs_url":"https://parkypass.com/developers","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:02.118Z"}},"StreamSubscribe":{"type":"object","required":["type","parks"],"description":"Client to server (WebSocket only).","properties":{"type":{"type":"string","enum":["subscribe","unsubscribe","ping"]},"parks":{"oneOf":[{"type":"string","const":"*"},{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10}]}},"example":{"type":"subscribe","parks":["magic-kingdom","epcot"]}},"StreamMessage":{"description":"Server to client. Every message has `type`, `attribution` and `generated_at`. Park messages (snapshot, changes, park) carry `park_key` and the park page in `attribution.url`; connection messages carry the same attribution object pointing at https://parkypass.com/, so take the per-park link from snapshot or changes.","oneOf":[{"$ref":"#/components/schemas/StreamReady"},{"$ref":"#/components/schemas/StreamSubscribed"},{"$ref":"#/components/schemas/StreamSnapshot"},{"$ref":"#/components/schemas/StreamChanges"},{"$ref":"#/components/schemas/StreamPark"},{"$ref":"#/components/schemas/StreamPing"},{"$ref":"#/components/schemas/StreamError"}],"discriminator":{"propertyName":"type","mapping":{"ready":"#/components/schemas/StreamReady","subscribed":"#/components/schemas/StreamSubscribed","unsubscribed":"#/components/schemas/StreamSubscribed","snapshot":"#/components/schemas/StreamSnapshot","changes":"#/components/schemas/StreamChanges","park":"#/components/schemas/StreamPark","ping":"#/components/schemas/StreamPing","pong":"#/components/schemas/StreamPing","error":"#/components/schemas/StreamError"}}},"StreamReady":{"type":"object","description":"WebSocket connected and authorized; send subscribe next.","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["ready"]},"max_parks":{"type":"integer","example":10},"idle_timeout_seconds":{"type":"integer","example":120},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"ready","max_parks":10,"idle_timeout_seconds":120,"attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}},"StreamSubscribed":{"type":"object","description":"Current subscription after subscribe (`subscribed`) or unsubscribe (`unsubscribed`).","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["subscribed","unsubscribed"]},"parks":{"type":"array","items":{"type":"string"}},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"subscribed","parks":["magic-kingdom","epcot"],"attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}},"StreamSnapshot":{"allOf":[{"$ref":"#/components/schemas/ParkWaits"},{"type":"object","description":"Full board for one park, sent on subscribe: the /waits fields plus `type` and `park`.","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["snapshot"]},"park":{"type":"string","description":"Park key (same as park_key)."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"snapshot","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}}],"example":{"type":"snapshot","park":"magic-kingdom","park_key":"magic-kingdom","park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_name":"Magic Kingdom Park","time_zone":"America/New_York","data_status":"live","feed":"disney_direct","park_open":true,"checked_at":"2026-10-05T16:44:58.000Z","data_age_seconds":2,"rides":[{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","name":"Seven Dwarfs Mine Train","type":"ride","status":"OPERATING","is_open":true,"wait_minutes":55,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":{"type":"multi_pass","state":"AVAILABLE","return_start":"2026-10-05T18:15:00.000Z","return_end":"2026-10-05T19:15:00.000Z","price":null},"changed_at":"2026-10-05T16:42:10.311Z"}],"attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}},"StreamChanges":{"type":"object","description":"What changed since the last message. The server checks every 5 seconds and pushes a ride only when Disney or Universal changes it; posted waits typically change every few minutes.","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["changes"]},"park":{"type":"string","description":"Park key (same as park_key)."},"park_key":{"type":"string"},"park_id":{"type":"string"},"data_status":{"type":"string","enum":["live","unavailable"]},"feed":{"type":["string","null"]},"checked_at":{"type":["string","null"],"format":"date-time"},"rides":{"type":"array","items":{"$ref":"#/components/schemas/LiveRide"},"description":"Only rides whose status, wait, Single Rider or Lightning Lane changed, in full, including shows or experiences the feed has started reporting."},"removed":{"type":"array","items":{"type":"string"},"description":"Ride IDs of shows or experiences the feed stopped reporting; drop them. Queued rides are never removed; they turn `unavailable`."},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"changes","park":"magic-kingdom","park_key":"magic-kingdom","park_id":"disney-walt-disney-world-resort-magic-kingdom-park","data_status":"live","feed":"disney_direct","checked_at":"2026-10-05T16:45:03.000Z","rides":[{"ride_id":"magic-kingdom_seven-dwarfs-mine-train","name":"Seven Dwarfs Mine Train","type":"ride","status":"OPERATING","is_open":true,"wait_minutes":60,"single_rider_available":null,"single_rider_wait_minutes":null,"lightning_lane":{"type":"multi_pass","state":"AVAILABLE","return_start":"2026-10-05T18:15:00.000Z","return_end":"2026-10-05T19:15:00.000Z","price":null},"changed_at":"2026-10-05T16:45:01.207Z"}],"removed":[],"attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}},"StreamPark":{"type":"object","description":"The park opened or closed.","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["park"]},"park":{"type":"string","description":"Park key (same as park_key)."},"park_key":{"type":"string"},"park_id":{"type":"string"},"park_open":{"type":["boolean","null"]},"data_status":{"type":"string","enum":["live","unavailable"]},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"park","park":"magic-kingdom","park_key":"magic-kingdom","park_id":"disney-walt-disney-world-resort-magic-kingdom-park","park_open":false,"data_status":"live","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/parks/magic-kingdom","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}},"StreamPing":{"type":"object","description":"Heartbeat every 25 seconds (`pong` answers a client ping). SSE uses a `: ping` comment instead.","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["ping","pong"]},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"ping","attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}},"StreamError":{"type":"object","description":"A rejected subscription or connection. The socket stays open unless a close follows.","required":["type","attribution","generated_at"],"properties":{"type":{"type":"string","enum":["error"]},"error":{"type":"object","required":["code","message","docs_url"],"properties":{"code":{"type":"string","enum":["invalid_request","invalid_key","rights_unavailable","not_found","method_not_allowed","rate_limited","too_many_streams","upstream_limit","upstream_unavailable","internal_error"]},"message":{"type":"string"},"docs_url":{"type":"string","format":"uri"}}},"attribution":{"$ref":"#/components/schemas/Attribution"},"generated_at":{"type":"string","format":"date-time","description":"When the server sent the message.","example":"2026-10-05T16:45:00.512Z"}},"example":{"type":"error","error":{"code":"not_found","message":"Parky does not support the park \"cedar-point\". Use one of these park keys: magic-kingdom, epcot, ...","docs_url":"https://parkypass.com/developers#errors"},"attribution":{"text":"Live data from parkypass.com","url":"https://parkypass.com/","required":true},"generated_at":"2026-10-05T16:45:00.512Z"}}}}}