Parksapi
Backend library to fetch live theme park data
Install / Use
/learn @ThemeParks/ParksapiREADME
ThemeParks.wiki Parks API
Sponsored By
<div style="display: flex; align-items: center;"> <a href="https://touringplans.com/"> <img src="https://themeparks.wiki/sponsors/touringplans.png" alt="TouringPlans.com" width="40" style="margin-right: 10px;"/> </a> <span> <a href="https://touringplans.com/"> TouringPlans.com </a> </span> </div> <div style="display: flex; align-items: center;"> <a href="https://www.queue-times.com/"> <img src="https://themeparks.wiki/sponsors/queuetimes.png" alt="QueueTimes" width="40" style="margin-right: 10px;"/> </a> <span> <a href="https://www.queue-times.com/"> Queue Times </a> </span> </div>ThemeParks.wiki API
This is a backend module to fetch and query live data for themeparks. This source code powers the free-to-use API at ThemeParks.wiki
To fetch data from the API, you should look at the client libraries:
- https://github.com/ThemeParks/ThemeParks_JavaScript
- https://github.com/ThemeParks/ThemeParks_Python
Fetching and parsing logic is provided in this source code. Most parks require some form of credentials, which are not supplied in this repo. You will need to source these yourself.
General support is available for the ThemeParks.wiki API, and not this source code (except for Sponsors with support benefits).
test.js contains a basic set of sanity checks and output validation, which also shows how a destination object can be accessed.
Each destination generates entities. Entities can be of various types:
- Destinations
- i.e, Resorts
- These are not called resorts to avoid confusion for parks that are not part of resorts
- eg. Walt Disney World Resort
- Parks
- All parks must be within a Destination entity
- eg. Magic Kingdom
- Attraction
- A ride / transport / etc.
- Attraction entities must be within a Destination entity (usually also within a park, but not always)
- eg. Pirates of the Carribean
- Resturant
- A dining location within a destination
- eg. Casey's Corner
- Show
- A show / parade entity with scheduled show times
- eg. Main Street Electrical Parade
Entity Types Being Finalised - Destinations, Parks, and Attractions however, are well supported and unlikely to change
Adding Destinations
Best current documentation for this is to check out scripts/templateDestination.js and look at the existing supported destinations.
Setup index.js with your new class, and edit test.js to test your destination to check everything is setup correctly.
Destinations
<!-- BEGIN_DESTINATIONS -->- WaltDisneyWorldResort
- DisneylandResort
- DisneylandParis
- TokyoDisneyResort
- HongKongDisneyland
- ShanghaiDisneylandResort
- UniversalStudios
- UniversalOrlando
- EuropaPark
- Efteling
- Phantasialand
- SeaworldOrlando
- SeaworldSanAntonio
- SeaworldSanDiego
- BuschGardensTampa
- BuschGardensWilliamsburg
- AltonTowers
- ThorpePark
- ChessingtonWorldOfAdventures
- LegolandWindsor
- LegolandOrlando
- LegolandCalifornia
- LegolandBillund
- LegolandDeutschland
- Gardaland
- PortAventuraWorld
- ParcAsterix
- Toverland
- Dollywood
- SilverDollarCity
- Plopsaland
- HolidayPark
- Bellewaerde
- WalibiHolland
- WalibiBelgium
- HeidePark
- Liseberg
- CedarPoint
- KnottsBerryFarm
- CaliforniasGreatAmerica
- CanadasWonderland
- Carowinds
- KingsIsland
- DorneyPark
- KingsDominion
- MichigansAdventure
- ValleyFair
- WorldsOfFun
- Hersheypark
- SixFlags
- HansaPark
- Knoebels
Configuration
Destination objects can be configured by either passing an object of variables into the constructor, or using environment variables (the preferred way).
To use environment variables, create a file called .env in the working directory of your project.
Environment variables are structured as:
- Class name (upper case)
- Underscore _
- Variable name (upper case)
For example, the class WaltDisneyWorldResort has a resortId configuration variable which can be loaded through the environment variable WALTDISNEYWORLDRESORT_RESORTID
Some classes expose "parent scopes" to allow configuring environment variables once for a range of destinations. For example, Attractions.io's base URL can be configured once through ATTRACTIONSIO_BASEURL rather than configuring it identically for every destination.
Environment Variables (auto-generated):
<!-- BEGIN_ENV -->WALTDISNEYWORLDRESORT_RESORTID
WALTDISNEYWORLDRESORT_RESORTSHORTCODE
WALTDISNEYWORLDRESORT_PARKIDS
WALTDISNEYWORLDRESORT_VIRTUALQUEUEURL
WALTDISNEYWORLDRESORT_GENIEDATA
WALTDISNEYWORLDRESORT_SLUG
DISNEYLANDRESORT_RESORTID
DISNEYLANDRESORT_RESORTSHORTCODE
DISNEYLANDRESORT_PARKIDS
DISNEYLANDRESORT_VIRTUALQUEUEURL
DISNEYLANDRESORT_GENIEDATA
DISNEYLANDRESORT_SLUG
DISNEYLANDPARIS_APIKEY
DISNEYLANDPARIS_APIBASE
DISNEYLANDPARIS_APIBASEWAITTIMES
DISNEYLANDPARIS_LANGUAGE
DISNEYLANDPARIS_STANDBYAPIBASE
DISNEYLANDPARIS_STANDBYAPIKEY
DISNEYLANDPARIS_STANDBYAUTHURL
DISNEYLANDPARIS_STANDBYAPIREFRESHTOKEN
DISNEYLANDPARIS_PREMIERACCESSAPIKEY
DISNEYLANDPARIS_PREMIERACCESSURL
DISNEYLANDPARIS_USERAGENT
TOKYODISNEYRESORT_APIKEY
TOKYODISNEYRESORT_APIAUTH
TOKYODISNEYRESORT_APIOS
TOKYODISNEYRESORT_APIBASE
TOKYODISNEYRESORT_APIVERSION
TOKYODISNEYRESORT_PARKIDS
TOKYODISNEYRESORT_FALLBACKDEVICEID
HONGKONGDISNEYLAND_RESORTID
HONGKONGDISNEYLAND_DESTINATIONID
HONGKONGDISNEYLAND_RESORTSHORTCODE
HONGKONGDISNEYLAND_CULTUREFILTER
HONGKONGDISNEYLAND_PARKIDS
HONGKONGDISNEYLAND_SLUG
HONGKONGDISNEYLAND_VIRTUALQUEUEURL
HONGKONGDISNEYLAND_GENIEDATA
SHANGHAIDISNEYLANDRESORT_APIBASE
SHANGHAIDISNEYLANDRESORT_APIAUTH
SHANGHAIDISNEYLANDRESORT_PARKIDS
UNIVERSALSTUDIOS_CITY
UNIVERSALSTUDIOS_RESORTSLUG
UNIVERSALSTUDIOS_RESORTKEY
UNIVERSALSTUDIOS_SECRETKEY
UNIVERSALSTUDIOS_APPKEY
UNIVERSALSTUDIOS_VQUEUEURL
UNIVERSALSTUDIOS_BASEURL
UNIVERSALSTUDIOS_ASSETSBASE
UNIVERSALORLANDO_CITY
UNIVERSALORLANDO_RESORTSLUG
UNIVERSALORLANDO_RESORTKEY
UNIVERSALORLANDO_SECRETKEY
UNIVERSALORLANDO_APPKEY
UNIVERSALORLANDO_VQUEUEURL
UNIVERSALORLANDO_BASEURL
UNIVERSALORLANDO_ASSETSBASE
EUROPAPARK_PARKS
EFTELING_APIKEY
EFTELING_APIVERSION
EFTELING_APPVERSION
EFTELING_SEARCHURL
EFTELING_WAITTIMESURL
PHANTASIALAND_APIBASE
SEAWORLDORLANDO_RESORTIDS
SEAWORLDORLANDO_RESORTID
SEAWORLDORLANDO_RESORTSLUG
SEAWORLDORLANDO_APPID
SEAWORLDORLANDO_APPVERSION
SEAWORLDORLANDO_BASEURL
SEAWORLDSANANTONIO_RESORTIDS
SEAWORLDSANANTONIO_RESORTID
SEAWORLDSANANTONIO_RESORTSLUG
SEAWORLDSANANTONIO_APPID
SEAWORLDSANANTONIO_APPVERSION
SEAWORLDSANANTONIO_BASEURL
SEAWORLDSANDIEGO_RESORTIDS
SEAWORLDSANDIEGO_RESORTID
SEAWORLDSANDIEGO_RESORTSLUG
SEAWORLDSANDIEGO_APPID
SEAWORLDSANDIEGO_APPVERSION
SEAWORLDSANDIEGO_BASEURL
BUSCHGARDENSTAMPA_RESORTIDS
BUSCHGARDENSTAMPA_RESORTID
BUSCHGARDENSTAMPA_RESORTSLUG
BUSCHGARDENSTAMPA_APPID
BUSCHGARDENSTAMPA_APPVERSION
BUSCHGARDENSTAMPA_BASEURL
BUSCHGARDENSWILLIAMSBURG_RESORTIDS
BUSCHGARDENSWILLIAMSBURG_RESORTID
BUSCHGARDENSWILLIAMSBURG_RESORTSLUG
BUSCHGARDENSWILLIAMSBURG_APPID
BUSCHGARDENSWILLIAMSBURG_APPVERSION
BUSCHGARDENSWILLIAMSBURG_BASEURL
ALTONTOWERS_DESTINATIONID
ALTONTOWERS_PARKID
ALTONTOWERS_INITIALDATAVERSION
ALTONTOWERS_APPBUILD
ALTONTOWERS_APPVERSION
ALTONTOWERS_BASEURL
ALTONTOWERS_DEVICEIDENTIFIER
ALTONTOWERS_APIKEY
ALTONTOWERS_CALENDARURL
THORPEPARK_DESTINATIONID
THORPEPARK_PARKID
THORPEPARK_INITIALDATAVERSION
THORPEPARK_APPBUILD
THORPEPARK_APPVERSION
THORPEPARK_BASEURL
THORPEPARK_DEVICEIDENTIFIER
THORPEPARK_APIKEY
THORPEPARK_CALENDARURL
CHESSINGTONWORLDOFADVENTURES_DESTINATIONID
CHESSINGTONWORLDOFADVENTURES_PARKID
CHESSINGTONWORLDOFADVENTURES_INITIALDATAVERSION
CHESSINGTONWORLDOFADVENTURES_APPBUILD
CHESSINGTONWORLDOFADVENTURES_APPVERSION
CHESSINGTONWORLDOFADVENTURES_BASEURL
CHESSINGTONWORLDOFADVENTURES_DEVICEIDENTIFIER
CHESSINGTONWORLDOFADVENTURES_APIKEY
CHESSINGTONWORLDOFADVENTURES_CALENDARURL
LEGOLANDWINDSOR_DESTINATIONID
LEGOLANDWINDSOR_PARKID
LEGOLANDWINDSOR_INITIALDATAVERSION
LEGOLANDWINDSOR_APPBUILD
LEGOLANDWINDSOR_APPVERSION
LEGOLANDWINDSOR_BASEURL
LEGOLANDWINDSOR_DEVICEIDENTIFIER
LEGOLANDWINDSOR_APIKEY
LEGOLANDWINDSOR_CALENDARURL
LEGOLANDORLANDO_DESTINATIONID
LEGOLANDORLANDO_PARKID
LEGOLANDORLANDO_INITIALDATAVERSION
LEGOLANDORLANDO_APPBUILD
LEGOLANDORLANDO_APPVERSION
LEGOLANDORLANDO_BASEURL
LEGOLANDORLANDO_DEVICEIDENTIFIER
LEGOLANDORLANDO_APIKEY
LEGOLANDORLANDO_CALENDARURL
LEGOLANDCALIFORNIA_DESTINATIONID
LEGOLANDCALIFORNIA_PARKID
LEGOLANDCALIFORNIA_INITIALDATAVERSION
LEGOLANDCALIFORNIA_APPBUILD
LEGOLANDCALIFORNIA_APPVERSION
LEGOLANDCALIFORNIA_BASEURL
LEGOLANDCALIFORNIA_DEVICEIDENTIFIER
LEGOLANDCALIFORNIA_APIKEY
LEGOLANDCALIFORNIA_CALENDARURL
LEGOLANDBILLUND_DESTINATIONID
LEGOLANDBILLUND_PARKID
LEGOLANDBILLUND_INITIALDATAVERSION
LEGOLANDBILLUND_APPBUILD
LEGOLANDBILLUND_APPVERSION
LEGOLANDBILLUND_BASEURL
LEGOLANDBILLUND_DEVICEIDENTIFIER
LEGOLANDBILLUND_APIKEY
LEGOLANDBILLUND_CALENDARURL
LEGOLANDDEUTSCHLAND_DESTINATIONID
LEGOLANDDEUTSCHLAND_PARKID
LEGOLANDDEUTSCHLAND_INITIALDATAVERSION
LEGOLANDDEUTSCHLAND_APPBUILD
LEGOLANDDEUTSCHLAND_APPVERSION
LEGOLANDDEUTSCHLAND_BASEURL
LEGOLANDDEUTSCHLAND_DEVICEIDENTIFIER
LEGOLANDDEUTSCHLAND_APIKEY
LEGOLANDDEUTSCHLAND_CALENDARURL
GARDALAND_DESTINATIONID
GARDALAND_PARKID
GARDALAND_INITIALDATAVERSION
GARDALAND_APPBUILD
GARDALAND_APPVERSION
GARDALAND_BASEURL
GARDALAND_DEVICEIDENTIFIER
GARDALAND_APIKEY
GARDALAND_CALENDARURL
PORTAVENTURAWORLD_APIBASE
PORTAVENTURAWORLD_GUESTUSERNAME
PORTAVENTURAWORLD_GUESTPASSWORD
PORTAVENTURAWORLD_WAITTIMEURL
PARCASTERIX_APIBASE
PARCASTERIX_LANGUAGE
TOVERLAND_APIBASE
TOVERLAND_CALENDARURL
TOVERLAND_AUTHTOKEN
TOVERLAND_LANGUAGES
D
