Park Queues

Public API

JSON endpoints for live waits, calendars, and ride history. Fair-use rate limit: 60 requests / minute / IP.

Endpoints

Base URL is this site. All responses are JSON. Errors return { "success": false, "error": "…" }.

GET /api/parks

List registered parks and live status.

GET /api/parks/:parkId/live

Latest wait snapshot. Optional ?refresh=1 forces a poll when samples are stale. Optional ?ride=Smiler or ride id.

{
  "success": true,
  "data": {
    "parkId": "alton-towers",
    "fetchedAt": "2026-07-19T15:00:00.000Z",
    "rides": [{ "id": 4193, "name": "The Smiler", "status": "OPERATING", "waitMinutes": 45, "land": "Thrills" }]
  },
  "meta": { "rateLimitRemaining": 59 }
}

GET /api/parks/:parkId/calendar

Historic + forecast crowd days for the park.

GET /api/parks/:parkId/history?rideId=4193

Recent wait samples for a ride.

POST /api/cron/poll

Internal poller. In production set CRON_SECRET and send Authorization: Bearer ….

Community (auth required to write)

GET/POST /api/parks/:parkId/rides/:rideId/reports — guest wait reports (never mixed into official live data). GET/POST …/comments and GET/POST /api/parks/:parkId/chat for ride comments and park day-chat.

Rate limits

Public routes allow 60 requests per minute per IP. Exceeding returns HTTP 429 with Retry-After.

System status · Parks