{"id":19473727,"url":"https://github.com/timyboy12345/themeparks-node-api","last_synced_at":"2025-07-01T13:35:43.946Z","repository":{"id":45986180,"uuid":"345386944","full_name":"timyboy12345/Themeparks-Node-API","owner":"timyboy12345","description":"This repo exposes an API that simplifies theme park wait times endpoints and returns one single easy to understand format for all data types, from park information to waiting and show times.","archived":false,"fork":false,"pushed_at":"2025-04-13T20:19:18.000Z","size":23566,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T20:20:31.011Z","etag":null,"topics":["nestjs","themeparks"],"latest_commit_sha":null,"homepage":"https://tp.arendz.nl/api","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timyboy12345.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-07T15:50:45.000Z","updated_at":"2025-04-13T20:19:22.000Z","dependencies_parsed_at":"2025-02-27T13:57:49.489Z","dependency_job_id":"9521bb22-efe9-410a-87b1-685b884a2099","html_url":"https://github.com/timyboy12345/Themeparks-Node-API","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timyboy12345%2FThemeparks-Node-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timyboy12345%2FThemeparks-Node-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timyboy12345%2FThemeparks-Node-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timyboy12345%2FThemeparks-Node-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timyboy12345","download_url":"https://codeload.github.com/timyboy12345/Themeparks-Node-API/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250817719,"owners_count":21492208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nestjs","themeparks"],"created_at":"2024-11-10T19:19:52.944Z","updated_at":"2025-07-01T13:35:43.940Z","avatar_url":"https://github.com/timyboy12345.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎡 Themeparks API 🎡\n\nUsing this API, you can request waiting times from theme parks all around the world. It communicates with public API's that the parks use internally for their apps.\n\nFeel free to add new parks.\n\n## Example\nTo view the API, please go to [the example API](https://tp.arendz.nl/api) at https://tp.arendz.nl. This API is always up to date with the latest main branch of this repo.\n\n### Supported parks\nIn the table below, you will find the parks that are currently supported and the functions that they support. This list of included and non-included functions is also included in the API.\n\n| Park | Type | Ride Support | Restaurants Support | Shows Support | Shops Support | Halloween Support |\n| ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- |\n| 🇦🇹 Familypark | 🎡 | True | False | False | False | False |\n| 🇧🇪 Walibi Belgium | 🎡 | True | True | False | True | False |\n| 🇧🇪 Bellewaerde | 🎡 | True | True | True | True | False |\n| 🇧🇪 Bobbejaanland | 🎡 | True | True | False | True | False |\n| 🇧🇪 Plopsalande de Panne | 🎡 | True | True | True | True | False |\n| 🇧🇪 Pairi Daiza | 🦁 | False | True | True | True | False |\n| 🇨🇦 La Ronde, Montreal | 🎡 | True | True | True | True | False |\n| 🇩🇪 Phantasialand | 🎡 | True | True | True | True | False |\n| 🇩🇪 Holiday Park | 🎡 | True | True | True | True | False |\n| 🇩🇪 Hansa Park | 🎡 | True | True | True | True | False |\n| 🇩🇪 Movie Park Germany | 🎡 | True | True | True | True | True |\n| 🇩🇪 Europa Park | 🎡 | True | True | True | True | False |\n| 🇩🇪 Rulantica | 🌊 | True | True | True | True | False |\n| 🇩🇪 Heide Park | 🎡 | True | True | True | True | False |\n| 🇩🇪 LegoLand Deutschland | 🎡 | True | True | True | True | False |\n| 🇩🇰 Tivoli | 🎡 | True | True | True | False | False |\n| 🇩🇰 Djurs Sommerland | 🎡 | True | True | True | True | False |\n| 🇩🇰 LegoLand Billund | 🎡 | True | True | True | True | False |\n| 🇪🇸 Portaventura | 🎡 | True | True | True | True | False |\n| 🇪🇸 Ferrari Land | 🎡 | True | True | True | True | False |\n| 🇪🇸 Parque Warner | 🎡 | True | True | True | True | False |\n| 🇪🇸 Parque de Atracciones Madrid | 🎡 | True | False | True | True | False |\n| 🇪🇸 Parque Warner Beach | 🌊 | True | True | False | True | False |\n| 🇫🇷 Walibi Rhône-Alpes | 🎡 | True | True | False | True | False |\n| 🇫🇷 Disneyland Paris | 🎡 | True | True | True | True | False |\n| 🇫🇷 Walt Disney Studios Park | 🎡 | True | True | True | True | False |\n| 🇫🇷 Parc Asterix | 🎡 | True | True | True | True | False |\n| 🇫🇷 Futuroscope | 🎡 | True | True | True | True | False |\n| 🇫🇷 Marineland Cote D'azure | 🎡 | True | True | True | True | False |\n| 🇫🇷 Puy de Fou | 🎡 | False | True | True | False | False |\n| 🇬🇧 Thorpe Park | 🎡 | True | True | True | True | False |\n| 🇬🇧 Alton Towers | 🎡 | True | True | True | True | False |\n| 🇬🇧 Paultons Park | 🎡 | True | True | True | True | False |\n| 🇬🇧 Chessington world of Adventures | 🎡 | True | True | True | True | False |\n| 🇬🇧 Legoland Windsor Resort | 🎡 | True | True | True | True | False |\n| 🇮🇹 Mirabilandia | 🎡 | True | True | False | True | False |\n| 🇮🇹 Gardaland | 🎡 | True | True | True | False | False |\n| 🇳🇱 Efteling | 🎡 | True | True | True | True | False |\n| 🇳🇱 Toverland | 🎡 | True | True | True | False | True |\n| 🇳🇱 Walibi Holland | 🎡 | True | True | True | True | True |\n| 🇳🇱 DippieDoe | 🎡 | True | False | False | False | False |\n| 🇳🇱 Hellendoorn | 🎡 | True | True | True | True | False |\n| 🇳🇱 Ouwehands Dierenpark | 🦁 | False | False | False | False | False |\n| 🇳🇱 Wildlands | 🦁 | False | False | False | False | False |\n| 🇳🇱 Blijdorp | 🦁 | False | False | True | False | False |\n| 🇳🇱 Apenheul | 🦁 | False | False | False | False | False |\n| 🇳🇱 Safaripark Beekse Bergen | 🦁 | True | True | False | True | False |\n| 🇳🇱 Speelland Beekse Bergen | 🎡 | True | True | False | True | False |\n| 🇳🇱 Plopsa Indoor Coevorden | 🎡 | True | True | True | True | False |\n| 🇵🇱 Energylandia | 🎡 | True | False | True | False | False |\n| 🇸🇪 Liseberg | 🎡 | True | True | False | True | False |\n| 🇸🇪 Grona Lund | 🎡 | True | False | False | False | False |\n| 🇺🇸 Dollywood | 🎡 | True | False | False | False | False |\n| 🇺🇸 Silver Dollar City | 🎡 | True | False | False | False | False |\n| 🇺🇸 San Diego Zoo | 🦁 | True | True | True | True | False |\n| 🇺🇸 San Diego Zoo Safari Park | 🦁 | True | True | True | True | False |\n| 🇺🇸 Hersheypark | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Over Texas | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Over Georgia | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags St. Louis | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Great Adventure | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Magic Mountain | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Great America | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Fiesta Texas | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Arlington | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Los Angeles | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Chicago | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags America | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Discovery Kingdom | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags New England | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Jackson | 🌊 | True | True | True | True | False |\n| 🇺🇸 The Great Escape | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags White Water, Atlanta | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags México | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Oaxtepec | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Concord | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Frontier City | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Oklahoma City | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Darien Lake | 🎡 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Phoenix | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, SplashTown | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Hurricane Harbor, Rockford | 🌊 | True | True | True | True | False |\n| 🇺🇸 Six Flags Wild Safari, Jackson | 🎡 | True | True | True | True | False |\n| 🇺🇸 Canada's Wonderland | 🎡 | True | True | True | True | False |\n| 🇺🇸 Carowinds | 🎡 | True | True | True | True | False |\n| 🇺🇸 Cedar Point | 🎡 | True | True | True | True | False |\n| 🇺🇸 Dorney Park | 🎡 | True | True | True | True | False |\n| 🇺🇸 California's Great America | 🎡 | True | True | True | True | False |\n| 🇺🇸 King's Dominion | 🎡 | True | True | True | True | False |\n| 🇺🇸 Kings Island | 🎡 | True | True | True | True | False |\n| 🇺🇸 Knotts Berry Farm | 🎡 | True | True | True | True | False |\n| 🇺🇸 Michigans Adventure | 🎡 | True | True | True | True | False |\n| 🇺🇸 Valley Fair | 🎡 | True | True | True | True | False |\n| 🇺🇸 Worlds of Fun | 🎡 | True | True | True | True | False |\n| 🇺🇸 Seaworld San Antonio | 🎡 | True | True | True | True | False |\n| 🇺🇸 Seaworld San Diego | 🎡 | True | True | True | True | False |\n| 🇺🇸 Seaworld Orlando | 🎡 | True | True | True | True | False |\n| 🇺🇸 Bush Gardens Tampa Bay | 🎡 | True | True | True | True | False |\n| 🇺🇸 Bush Gardens Williamsburg | 🎡 | True | True | True | True | False |\n| 🇺🇸 Sesame Place Philadelphia | 🎡 | True | True | True | True | False |\n| 🇺🇸 Sesame Place San Diego | 🎡 | True | True | True | True | False |\n| 🇺🇸 Universal Studios Orlando | 🎡 | True | True | True | True | False |\n| 🇺🇸 Islands of Adventure | 🎡 | True | True | True | True | False |\n| 🇺🇸 Universal Studios Hollywood | 🎡 | True | True | True | True | False |\n| 🇺🇸 Legoland California | 🎡 | True | True | True | True | False |\n\n## Parks on the planning\nIf you have any tips, you can always reach out to me via info@themeparkplanner.com.\n\nUK: Pleasure Beach, Drayton Manor\nIT: Cincetitta World\nES: Puy de Fou Espana\nDK: Fårup Sommerland (Has no API)\n\n## Description\n\nThis API was build using the [Nest](https://github.com/nestjs/nest) framework. Find the docs at the [NestJS Documentation](https://docs.nestjs.com/)\n\n## Running the app\n\n```bash\n# development\nnpm run start\n\n# watch mode\nnpm run start:dev\n\n# production mode\nnpm run start:prod\n```\n\n## Adding a new park\nIf you have access to an API of a theme park/resort that is not yet included, you can include it yourself and create a pull request, or create an issue with all details needed to integrate the park (API Keys, URLs, ...)\n\n### Structure\nTo keep the code easy to understand, there is a structure to the files. This is used for all parks. If the park you're adding is part of a resort, the contents is placed within a folder named after the resort (for example `disney`) \n```text\n...\nsrc\n  +-- _dtos # The dto files for API documentation\n      +-- ...\n  +-- _interfaces # The global interface and enum files\n      +-- ...\n  +-- _services # The global services\n      +-- ...\n  +-- controllers # All HTTP controllers\n  +-- database # All models and repositories for the database connection\n  +-- parks\n      +-- {PARK_NAME} # The folder in which all files will be located\n          +-- interfaces # All interfaces for this park\n              +-- ...\n          +-- {PARK_NAME}-transfer # A service which is used to translate park-provided objects to the POI interface structure \n              +-- {PARK_NAME}-transfer.service.spec.ts\n              +-- {PARK_NAME}-transfer.service.ts\n          +-- data # A folder which contains static assets if no API is available for this data\n              +-- ...\n          +-- {PARK_NAME}.service.spec.ts # All tests for this park\n          +-- {PARK_NAME}.service.ts # The service for this park, which extends theme-park.service.ts \n  +-- schedules # All cron-jobs\n...\n```\n\nAfter the right files have been added, the park has to be added to the constructor of `parks.service.ts` so Nest knows the park exists and is ready to be included with the other parks.\n\n### Using other services\nSome parks use a single API URL to return all data. For these parks, the `through-pois-theme-park.service.ts` file was created. This service can be usefull if a park returns data from for example `restaurants`, `rides` and `shows` in a single response. This way, you don't have to create all the methods by hand, but just implement the `getPois()` method. \n\nSome parks use services provided by [themeparks.io](https://attractions.io). For these parks, a specific service was created called `themeparks-io-theme-park.service.ts`. This service can easily implement new themeparks.io parks by providing some basic information, since all data is returned in a standardized format.\n\n### Attractions IO\nSome parks use a service provided by attractions io. For these parks, a special `AioThemeparkService` was created. You need a few details from the app, including API key and build details, and you can include the park in the API.\n\n## Formats\nThe API returns parks, restaurants, rides and others points of interest (POIs) in a standardized way, these are detailed below. \n### Park Format\n```typescript\nexport interface ThemePark {\n  id: string;\n  name: string;\n  description: string;\n  image: string;\n  countryCode: string;\n  supports?: ThemeParkSupports;\n}\n```\n\n### Poi Format\n```typescript\nexport interface Poi {\n  id: string;\n  category: PoiCategory;\n  rideCategory?: RideCategory;\n  original_category?: string;\n  title: string;\n  subTitle?: string;\n  description?: string;\n  area?: string;\n  createdAt?: string;\n  location?: {\n    lat: number,\n    lng: number\n  },\n  entrance?: {\n    id?: string,\n    world?: {\n      lat: number,\n      lng: number\n    },\n    map?: {\n      lat: number,\n      lng: number\n    }\n  };\n  exit?: {\n    id?: string,\n    world?: {\n      lat: number,\n      lng: number\n    },\n    map?: {\n      lat: number,\n      lng: number\n    }\n  };\n  maxAge?: string;\n  maxSize?: string;\n  minAge?: number;\n  minSize?: number;\n  minSizeEscort?: number;\n  tags?: string[];\n  image_url?: string;\n  website_url?: string;\n  fastpass?: boolean;\n  singlerider?: boolean;\n  featured?: boolean;\n  photoPoint?: boolean;\n\n  images?: string[];\n\n  waitingTimes?: WaitingTimes;\n\n  showTimes?: ShowTimes;\n\n  openingTimes?: PoiOpeningTime[];\n\n  original: any;\n}\n\n```\n\n### Api URLs\nSince the data of themeparks is copyrighted, API urls aren't included in this documentation. These can be retrieved by doing some research on your own and filling out the `.env` file. We use Infisical to sync environment variables.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimyboy12345%2Fthemeparks-node-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimyboy12345%2Fthemeparks-node-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimyboy12345%2Fthemeparks-node-api/lists"}