An open-source TypeScript library for fetching real-time theme park data — wait times, schedules, and entity metadata — from 75+ destinations worldwide.
This library powers the free API at ThemeParks.wiki.
License: MIT
Requirements: Node.js 24+, npm 11+
git clone https://github.com/ThemeParks/parksapi.git
cd parksapi
npm install
touch .env # Add your API credentials
npm run dev # Test all parksMost parks require API credentials not provided in this repo — you must source these yourself.
import {getDestinationById} from '@themeparks/parksapi';
const dest = await getDestinationById('universalorlando');
const park = new dest.DestinationClass();
const entities = await park.getEntities(); // Rides, shows, restaurants
const liveData = await park.getLiveData(); // Wait times, statuses
const schedules = await park.getSchedules(); // Operating hoursTo fetch data from the ThemeParks.wiki API (rather than running this library directly):
npm run build # Compile TypeScript
npm run dev # Test all parks
npm run dev -- <id> # Test specific park (e.g. universalorlando)
npm run dev -- --list # List all available park IDs
npm test # Run unit tests
npm run test:coverage # Coverage report
npm run health # Health check all endpoints75 destinations across Disney, Universal, Cedar Fair, Six Flags, Merlin, and many more.
Run npm run dev -- --list for the full list with IDs and categories, or see below:
All destinations
| Destination | ID |
|---|---|
| Alton Towers | altontowers |
| Bellewaerde | bellewaerde |
| Bobbejaanland | bobbejaanland |
| Busch Gardens Tampa | buschgardenstampa |
| Busch Gardens Williamsburg | buschgardenswilliamsburg |
| California's Great America | californiasgreatamerica |
| Canada's Wonderland | canadaswonderland |
| Carowinds | carowinds |
| Cedar Point | cedarpoint |
| Chessington World of Adventures | chessingtonworldofadventures |
| Chimelong | chimelong |
| Disneyland Paris | disneylandparis |
| Djurs Sommerland | djurssommerland |
| Dollywood | dollywood |
| Dorney Park | dorneypark |
| Efteling | efteling |
| Europa-Park | europapark |
| Everland | everland |
| Futuroscope | futuroscope |
| Gardaland | gardaland |
| Hansa-Park | hansapark |
| Heide Park | heidepark |
| Hersheypark | hersheypark |
| Kennywood | kennywood |
| Kings Dominion | kingsdominion |
| Kings Island | kingsisland |
| Knoebels | knoebels |
| Knott's Berry Farm | knottsberryfarm |
| Legoland Billund | legolandbillund |
| Legoland California | legolandcalifornia |
| Legoland Deutschland | legolanddeutschland |
| Legoland Japan | legolandjapan |
| Legoland Korea | legolandkorea |
| Legoland New York | legolandnewyork |
| Legoland Orlando | legolandorlando |
| Legoland Windsor | legolandwindsor |
| Liseberg | liseberg |
| Lotte World | lotteworld |
| Michigan's Adventure | michigansadventure |
| Mirabilandia | mirabilandia |
| Movie Park Germany | movieparkgermany |
| Parc Asterix | parcasterix |
| Paradise Country | paradisecountry |
| Parque de Atracciones Madrid | parquedeatraccionesmadrid |
| Parque Warner Madrid | parquewarnermadrid |
| Paultons Park | paultonspark |
| Peppa Pig Theme Park Florida | peppapigthemeparkflorida |
| Phantasialand | phantasialand |
| Plopsaland | plopsaland |
| Plopsaland Deutschland | plopsalanddeutschland |
| PortAventura World | portaventuraworld |
| Sea World Gold Coast | seaworldgoldcoast |
| SeaWorld Orlando | seaworldorlando |
| SeaWorld San Antonio | seaworldsanantonio |
| SeaWorld San Diego | seaworldsandiego |
| Shanghai Disneyland Resort | shanghaidisneylandresort |
| Silver Dollar City | silverdollarcity |
| Six Flags | sixflags |
| Six Flags Qiddiya City | sixflagsqiddiyacity |
| Thorpe Park | thorpepark |
| Tokyo Disney Resort | tokyodisneyresort |
| Toverland | toverland |
| Universal Orlando | universalorlando |
| Universal Singapore | universalsingapore |
| Universal Studios | universalstudios |
| Universal Studios Beijing | universalstudiosbeijing |
| Universal Studios Japan | universalstudiosjapan |
| Valleyfair | valleyfair |
| Walibi Belgium | walibibelgium |
| Walibi Holland | walibiholland |
| Walibi Rhone-Alpes | walibirhonealpes |
| Warner Bros. Movie World | warnerbrosmovieworld |
| Wet'n'Wild Gold Coast | wetnwildgoldcoast |
| Wild Adventures | wildadventures |
| Worlds of Fun | worldsoffun |
Each destination produces entities of the following types:
- Destination — A resort or group of parks (e.g., Walt Disney World Resort)
- Park — A theme park within a destination (e.g., Magic Kingdom)
- Attraction — A ride, transport, or similar experience (e.g., Pirates of the Caribbean)
- Show — A performance or parade with scheduled show times
- Restaurant — A dining location
Environment variables follow the pattern {CLASSNAME}_{PROPERTY}:
UNIVERSALORLANDO_APIKEY=your-key-here
EFTELING_APPVERSION=5.0.0
Create a .env file in the project root. Some destinations share configuration via prefixes (e.g., ATTRACTIONSIO_BASEURL applies to all Attractions.io parks).
Run npm run dev -- <id> -v to see which config properties a destination expects.
The library uses a decorator-based design with TypeScript:
@destinationController— Auto-registers destinations, applies config proxy@config— Property-level config injection from env vars@http— Queue-based HTTP with retry, caching, validation@inject— Event-based dependency injection (auth headers, response transforms)@cache— SQLite-backed caching with TTL
All parks extend the Destination base class using the Template Method Pattern — implement buildEntityList(), buildLiveData(), and buildSchedules().
See CLAUDE.md for full architecture documentation.
Contributions are welcome. To add a new destination:
- Create
src/parks/<name>/<name>.tsextendingDestination - Implement entity, live data, and schedule methods
- Test with
npm run dev -- <id> - Submit a PR
See CLAUDE.md and .claude/skills/implementing-parks.md for detailed implementation guidance.
General support is available for the ThemeParks.wiki API. This source code is self-service (sponsors get support benefits).