diff --git a/CHANGELOG.md b/CHANGELOG.md
index 16d277a..e90d050 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@
## v1.51.0
- Stable release of the Crawlora SDKs.
-- Regenerated from the public API contract (4731 operations).
+- Regenerated from the public API contract (4769 operations).
## v1.50.0
diff --git a/docs/operations.md b/docs/operations.md
index 7e8b7c9..ef2bd63 100644
--- a/docs/operations.md
+++ b/docs/operations.md
@@ -2,7 +2,7 @@
Generated from `openapi/public.json`. Deprecated, admin, and internal operations are excluded from this SDK contract.
-Total operations: `4731`
+Total operations: `4769`
| Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- |
@@ -1100,6 +1100,7 @@ Total operations: `4731`
| eNews | `eNews.eonlineHeadlines` | `eonline-headlines` | `GET /eonline/headlines` | `section` (query String required) | `ApiKeyAuth` | `ENewsEonlineHeadlinesResponse` | |
| eNews | `eNews.eonlineNews` | `eonline-news` | `GET /eonline/news` | none | `ApiKeyAuth` | `ENewsEonlineNewsResponse` | |
| eNews | `eNews.eonlineSections` | `eonline-sections` | `GET /eonline/sections` | none | `ApiKeyAuth` | `ENewsEonlineSectionsResponse` | |
+| epicGamesStore | `epicGamesStore.epicgamesFreePromotions` | `epicgames-free-promotions` | `GET /epicgames/free-promotions` | `locale` (query String)
`country` (query String)
`allowCountries` (query String) | `ApiKeyAuth` | `EpicGamesStoreEpicgamesFreePromotionsResponse` | |
| espn | `espn.athlete` | `espn-athlete` | `GET /espn/athlete` | `sport` (query String required)
`league` (query String required)
`athlete` (query String required) | `ApiKeyAuth` | `EspnAthleteResponse` | |
| espn | `espn.gameSummary` | `espn-game-summary` | `GET /espn/game-summary` | `sport` (query String required)
`league` (query String required)
`event` (query String required) | `ApiKeyAuth` | `EspnGameSummaryResponse` | |
| espn | `espn.news` | `espn-news` | `GET /espn/news` | `sport` (query String required)
`league` (query String required) | `ApiKeyAuth` | `EspnNewsResponse` | |
@@ -1859,6 +1860,9 @@ Total operations: `4731`
| healthgrades | `healthgrades.physiciansSearch` | `healthgrades-physicians-search` | `GET /healthgrades/physicians/search` | `query` (query String required)
`where` (query String)
`page` (query Integer)
`sort` (query String)
`gender` (query String)
`distance` (query String)
`age` (query String)
`availability` (query String)
`rating` (query String)
`insurance` (query String)
`insurance_plan` (query String)
`language` (query String)
`clinical_focus` (query String)
`affiliated_hospital` (query String)
`specialty` (query String)
`affirming_care` (query Boolean) | `ApiKeyAuth` | `HealthgradesPhysiciansSearchResponse` | |
| healthgrades | `healthgrades.specialties` | `healthgrades-specialties` | `GET /healthgrades/specialties` | none | `ApiKeyAuth` | `HealthgradesSpecialtiesResponse` | |
| healthgrades | `healthgrades.topSearches` | `healthgrades-top-searches` | `GET /healthgrades/top-searches` | none | `ApiKeyAuth` | `HealthgradesTopSearchesResponse` | |
+| hearthstone | `hearthstone.card` | `hearthstone-card` | `GET /hearthstone/card` | `id` (query String required) | `ApiKeyAuth` | `HearthstoneCardResponse` | |
+| hearthstone | `hearthstone.cards` | `hearthstone-cards` | `GET /hearthstone/cards` | `page` (query Integer)
`pageSize` (query Integer)
`locale` (query String)
`class` (query String)
`set` (query String)
`sort` (query String)
`order` (query String)
`gameMode` (query String)
`collectible` (query String)
`textFilter` (query String)
`filterLocale` (query String)
`deckcode` (query String)
`cardSetId` (query List)
`spellSchoolId` (query List)
`rarityId` (query List)
`cardTypeId` (query List)
`manaCost` (query List)
`attack` (query List)
`health` (query List)
`armor` (query List)
`rarity` (query String)
`type` (query List)
`bgCardType` (query String)
`keyword` (query String)
`minionType` (query String)
`deckFormat` (query String)
`tier` (query String)
`mercenaryRole` (query String)
`mercenaryFaction` (query String)
`viewMode` (query String)
`cardBackCategory` (query String)
`spellSchool` (query String)
`faction` (query String)
`bgGameMode` (query String)
`zilliaxMod` (query Boolean) | `ApiKeyAuth` | `HearthstoneCardsResponse` | |
+| hearthstone | `hearthstone.filters` | `hearthstone-filters` | `GET /hearthstone/filters` | none | `ApiKeyAuth` | `HearthstoneFiltersResponse` | |
| hermes | `hermes.categories` | `hermes-categories` | `GET /hermes/categories` | `locale` (query String) | `ApiKeyAuth` | `HermesCategoriesResponse` | |
| hermes | `hermes.category` | `hermes-category` | `GET /hermes/category` | `category` (query String required)
`sort` (query String)
`locale` (query String)
`page` (query Integer) | `ApiKeyAuth` | `HermesCategoryResponse` | |
| hermes | `hermes.product` | `hermes-product` | `GET /hermes/product` | `sku` (query String required)
`locale` (query String) | `ApiKeyAuth` | `HermesProductResponse` | |
@@ -2625,16 +2629,23 @@ Total operations: `4731`
| nba | `nba.games` | `nba-games` | `GET /nba/games` | none | `ApiKeyAuth` | `NbaGamesResponse` | |
| nba | `nba.homepageLeaders` | `nba-homepage-leaders` | `GET /nba/homepage-leaders` | `league_id` (query String)
`stat_category` (query String)
`player_or_team` (query String)
`player_scope` (query String)
`game_scope` (query String) | `ApiKeyAuth` | `NbaHomepageLeadersResponse` | |
| nba | `nba.hustleStats` | `nba-hustle-stats` | `GET /nba/hustle-stats` | `game_id` (query String required) | `ApiKeyAuth` | `NbaHustleStatsResponse` | |
+| nba | `nba.hustleTeam` | `nba-hustle-team` | `GET /nba/hustle-team` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaHustleTeamResponse` | |
| nba | `nba.leagueGameLog` | `nba-league-game-log` | `GET /nba/league-game-log` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`direction` (query String)
`player_or_team` (query String)
`sorter` (query String) | `ApiKeyAuth` | `NbaLeagueGameLogResponse` | |
| nba | `nba.lineups` | `nba-lineups` | `GET /nba/lineups` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`measure_type` (query String)
`per_mode` (query String)
`group_quantity` (query String) | `ApiKeyAuth` | `NbaLineupsResponse` | |
| nba | `nba.news` | `nba-news` | `GET /nba/news` | none | `ApiKeyAuth` | `NbaNewsResponse` | |
+| nba | `nba.oppPtShot` | `nba-opp-pt-shot` | `GET /nba/opp-pt-shot` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaOppPtShotResponse` | |
| nba | `nba.playByPlay` | `nba-play-by-play` | `GET /nba/play-by-play` | `game_id` (query String required)
`start_period` (query Integer)
`end_period` (query Integer) | `ApiKeyAuth` | `NbaPlayByPlayResponse` | |
| nba | `nba.playerAwards` | `nba-player-awards` | `GET /nba/player-awards` | `player_id` (query Integer required) | `ApiKeyAuth` | `NbaPlayerAwardsResponse` | |
| nba | `nba.playerBioStats` | `nba-player-bio-stats` | `GET /nba/player-bio-stats` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaPlayerBioStatsResponse` | |
| nba | `nba.playerCareerStats` | `nba-player-career-stats` | `GET /nba/player-career-stats` | `player_id` (query Integer required)
`per_mode` (query String)
`league_id` (query String) | `ApiKeyAuth` | `NbaPlayerCareerStatsResponse` | |
+| nba | `nba.playerClutch` | `nba-player-clutch` | `GET /nba/player-clutch` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String)
`measure_type` (query String)
`clutch_time` (query String)
`ahead_behind` (query String)
`point_diff` (query String) | `ApiKeyAuth` | `NbaPlayerClutchResponse` | |
| nba | `nba.playerDashPtShots` | `nba-player-dash-pt-shots` | `GET /nba/player-dash-pt-shots` | `player_id` (query Integer required)
`league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaPlayerDashPtShotsResponse` | |
+| nba | `nba.playerGameLogs` | `nba-player-game-logs` | `GET /nba/player-game-logs` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`player_id` (query Integer required) | `ApiKeyAuth` | `NbaPlayerGameLogsResponse` | |
| nba | `nba.playerInfo` | `nba-player-info` | `GET /nba/player-info` | `player_id` (query Integer required)
`league_id` (query String) | `ApiKeyAuth` | `NbaPlayerInfoResponse` | |
+| nba | `nba.playerProfileV2` | `nba-player-profile-v2` | `GET /nba/player-profile-v2` | `player_id` (query Integer required)
`per_mode` (query String) | `ApiKeyAuth` | `NbaPlayerProfileV2Response` | |
+| nba | `nba.playerPtShot` | `nba-player-pt-shot` | `GET /nba/player-pt-shot` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaPlayerPtShotResponse` | |
| nba | `nba.playerStats` | `nba-player-stats` | `GET /nba/player-stats` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`measure_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaPlayerStatsResponse` | |
+| nba | `nba.playerStreakFinder` | `nba-player-streak-finder` | `GET /nba/player-streak-finder` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`player_id` (query Integer)
`min_games` (query Integer) | `ApiKeyAuth` | `NbaPlayerStreakFinderResponse` | |
| nba | `nba.players` | `nba-players` | `GET /nba/players` | `league_id` (query String)
`season` (query String)
`team_id` (query Integer)
`active` (query Boolean) | `ApiKeyAuth` | `NbaPlayersResponse` | |
| nba | `nba.playoffPicture` | `nba-playoff-picture` | `GET /nba/playoff-picture` | `league_id` (query String)
`season_id` (query String) | `ApiKeyAuth` | `NbaPlayoffPictureResponse` | |
| nba | `nba.ptDefend` | `nba-pt-defend` | `GET /nba/pt-defend` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String)
`defense_category` (query String) | `ApiKeyAuth` | `NbaPtDefendResponse` | |
@@ -2642,11 +2653,18 @@ Total operations: `4731`
| nba | `nba.scoreboard` | `nba-scoreboard` | `GET /nba/scoreboard` | `league_id` (query String)
`game_date` (query String)
`day_offset` (query Integer) | `ApiKeyAuth` | `NbaScoreboardResponse` | |
| nba | `nba.standings` | `nba-standings` | `GET /nba/standings` | `league_id` (query String)
`season` (query String)
`season_type` (query String) | `ApiKeyAuth` | `NbaStandingsResponse` | |
| nba | `nba.synergyPlayTypes` | `nba-synergy-play-types` | `GET /nba/synergy-play-types` | `league_id` (query String)
`season_year` (query String)
`season_type` (query String)
`play_type` (query String)
`per_mode` (query String)
`player_or_team` (query String)
`type_grouping` (query String) | `ApiKeyAuth` | `NbaSynergyPlayTypesResponse` | |
+| nba | `nba.teamDashPtPass` | `nba-team-dash-pt-pass` | `GET /nba/team-dash-pt-pass` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String)
`team_id` (query Integer required) | `ApiKeyAuth` | `NbaTeamDashPtPassResponse` | |
+| nba | `nba.teamDashPtShots` | `nba-team-dash-pt-shots` | `GET /nba/team-dash-pt-shots` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String)
`team_id` (query Integer required) | `ApiKeyAuth` | `NbaTeamDashPtShotsResponse` | |
| nba | `nba.teamDetails` | `nba-team-details` | `GET /nba/team-details` | `team_id` (query Integer required)
`league_id` (query String) | `ApiKeyAuth` | `NbaTeamDetailsResponse` | |
+| nba | `nba.teamGameLogs` | `nba-team-game-logs` | `GET /nba/team-game-logs` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`team_id` (query Integer required) | `ApiKeyAuth` | `NbaTeamGameLogsResponse` | |
+| nba | `nba.teamInfoCommon` | `nba-team-info-common` | `GET /nba/team-info-common` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`team_id` (query Integer required) | `ApiKeyAuth` | `NbaTeamInfoCommonResponse` | |
+| nba | `nba.teamOnOff` | `nba-team-on-off` | `GET /nba/team-on-off` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String)
`measure_type` (query String)
`team_id` (query Integer required) | `ApiKeyAuth` | `NbaTeamOnOffResponse` | |
+| nba | `nba.teamPtShot` | `nba-team-pt-shot` | `GET /nba/team-pt-shot` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaTeamPtShotResponse` | |
| nba | `nba.teamRoster` | `nba-team-roster` | `GET /nba/team-roster` | `team_id` (query Integer required)
`league_id` (query String)
`season` (query String) | `ApiKeyAuth` | `NbaTeamRosterResponse` | |
| nba | `nba.teamShotLocations` | `nba-team-shot-locations` | `GET /nba/team-shot-locations` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`measure_type` (query String)
`per_mode` (query String)
`distance_range` (query String) | `ApiKeyAuth` | `NbaTeamShotLocationsResponse` | |
| nba | `nba.teamStats` | `nba-team-stats` | `GET /nba/team-stats` | `league_id` (query String)
`season` (query String)
`season_type` (query String)
`measure_type` (query String)
`per_mode` (query String) | `ApiKeyAuth` | `NbaTeamStatsResponse` | |
| nba | `nba.teamStatsLeaders` | `nba-team-stats-leaders` | `GET /nba/team-stats-leaders` | `stat_category` (query String required)
`league_id` (query String)
`season` (query String)
`season_type` (query String)
`per_mode` (query String)
`scope` (query String) | `ApiKeyAuth` | `NbaTeamStatsLeadersResponse` | |
+| nba | `nba.teamYears` | `nba-team-years` | `GET /nba/team-years` | `league_id` (query String) | `ApiKeyAuth` | `NbaTeamYearsResponse` | |
| nbcNews | `nbcNews.nbcArticle` | `nbc-article` | `GET /nbc/article` | `url` (query String required) | `ApiKeyAuth` | `NbcNewsNbcArticleResponse` | |
| nbcNews | `nbcNews.nbcAuthor` | `nbc-author` | `GET /nbc/author` | `url` (query String required) | `ApiKeyAuth` | `NbcNewsNbcAuthorResponse` | |
| nbcNews | `nbcNews.nbcHeadlines` | `nbc-headlines` | `GET /nbc/headlines` | `section` (query String required) | `ApiKeyAuth` | `NbcNewsNbcHeadlinesResponse` | |
@@ -2718,6 +2736,11 @@ Total operations: `4731`
| nfhs | `nfhs.sports` | `nfhs-sports` | `GET /nfhs/sports` | none | `ApiKeyAuth` | `NfhsSportsResponse` | |
| nfhs | `nfhs.states` | `nfhs-states` | `GET /nfhs/states` | none | `ApiKeyAuth` | `NfhsStatesResponse` | |
| nfhs | `nfhs.suggest` | `nfhs-suggest` | `GET /nfhs/suggest` | `search_term` (query String required)
`scope` (query String)
`size` (query Integer) | `ApiKeyAuth` | `NfhsSuggestResponse` | |
+| nhl | `nhl.gamecenterBoxscore` | `nhl-gamecenter-boxscore` | `GET /nhl/gamecenter/boxscore` | `game_id` (query String required) | `ApiKeyAuth` | `NhlGamecenterBoxscoreResponse` | |
+| nhl | `nhl.gamecenterPlayByPlay` | `nhl-gamecenter-play-by-play` | `GET /nhl/gamecenter/play-by-play` | `game_id` (query String required) | `ApiKeyAuth` | `NhlGamecenterPlayByPlayResponse` | |
+| nhl | `nhl.schedule` | `nhl-schedule` | `GET /nhl/schedule` | `date` (query String) | `ApiKeyAuth` | `NhlScheduleResponse` | |
+| nhl | `nhl.seasons` | `nhl-seasons` | `GET /nhl/seasons` | none | `ApiKeyAuth` | `NhlSeasonsResponse` | |
+| nhl | `nhl.standings` | `nhl-standings` | `GET /nhl/standings` | `date` (query String) | `ApiKeyAuth` | `NhlStandingsResponse` | |
| nike | `nike.categories` | `nike-categories` | `GET /nike/categories` | none | `ApiKeyAuth` | `NikeCategoriesResponse` | |
| nike | `nike.product` | `nike-product` | `GET /nike/product` | `slug` (query String required)
`style_color` (query String required) | `ApiKeyAuth` | `NikeProductResponse` | |
| nike | `nike.productAvailability` | `nike-product-availability` | `GET /nike/product/availability` | `group_key` (query String required) | `ApiKeyAuth` | `NikeProductAvailabilityResponse` | |
@@ -3479,6 +3502,21 @@ Total operations: `4731`
| sephora | `sephora.search` | `sephora-search` | `GET /sephora/search` | `query` (query String required)
`page` (query Integer)
`page_size` (query Integer)
`sort_by` (query String)
`price_min` (query Integer)
`price_max` (query Integer)
`brand` (query List)
`rating_min` (query Integer)
`is_new` (query Boolean)
`filter` (query List) | `ApiKeyAuth` | `SephoraSearchResponse` | |
| sephora | `sephora.stores` | `sephora-stores` | `GET /sephora/stores` | `latitude` (query Double required)
`longitude` (query Double required)
`radius` (query Integer)
`limit` (query Integer) | `ApiKeyAuth` | `SephoraStoresResponse` | |
| sephora | `sephora.suggest` | `sephora-suggest` | `GET /sephora/suggest` | `query` (query String required) | `ApiKeyAuth` | `SephoraSuggestResponse` | |
+| serebii | `serebii.pokemongoEventDetailCommunityDay` | `serebii-pokemongo-event-detail-community-day` | `GET /serebii/pokemongo/communityday/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailCommunityDayResponse` | |
+| serebii | `serebii.pokemongoEventCategories` | `serebii-pokemongo-event-categories` | `GET /serebii/pokemongo/event-categories` | none | `ApiKeyAuth` | `SerebiiPokemongoEventCategoriesResponse` | |
+| serebii | `serebii.pokemongoEventOnlyMoves` | `serebii-pokemongo-event-only-moves` | `GET /serebii/pokemongo/event-only-moves` | none | `ApiKeyAuth` | `SerebiiPokemongoEventOnlyMovesResponse` | |
+| serebii | `serebii.pokemongoEventOnlyResearch` | `serebii-pokemongo-event-only-research` | `GET /serebii/pokemongo/event-only-research` | none | `ApiKeyAuth` | `SerebiiPokemongoEventOnlyResearchResponse` | |
+| serebii | `serebii.pokemongoEvents` | `serebii-pokemongo-events` | `GET /serebii/pokemongo/events` | `category` (query String required) | `ApiKeyAuth` | `SerebiiPokemongoEventsResponse` | |
+| serebii | `serebii.pokemongoEventDetailGlobal` | `serebii-pokemongo-event-detail-global` | `GET /serebii/pokemongo/events/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailGlobalResponse` | |
+| serebii | `serebii.pokemongoEventDetailHatchDay` | `serebii-pokemongo-event-detail-hatch-day` | `GET /serebii/pokemongo/hatchday/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailHatchDayResponse` | |
+| serebii | `serebii.pokemongoEventDetailIncenseDay` | `serebii-pokemongo-event-detail-incense-day` | `GET /serebii/pokemongo/incenseday/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailIncenseDayResponse` | |
+| serebii | `serebii.pokemongoEventDetailResearchDay` | `serebii-pokemongo-event-detail-research-day` | `GET /serebii/pokemongo/limitedresearchday/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailResearchDayResponse` | |
+| serebii | `serebii.pokemongoEventDetailMaxBattleDay` | `serebii-pokemongo-event-detail-max-battle-day` | `GET /serebii/pokemongo/maxbattleday/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailMaxBattleDayResponse` | |
+| serebii | `serebii.pokemongoEventDetailRaidDay` | `serebii-pokemongo-event-detail-raid-day` | `GET /serebii/pokemongo/raidday/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailRaidDayResponse` | |
+| serebii | `serebii.pokemongoEventDetailRealLife` | `serebii-pokemongo-event-detail-real-life` | `GET /serebii/pokemongo/reallifeevents/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailRealLifeResponse` | |
+| serebii | `serebii.pokemongoSpotlightHours` | `serebii-pokemongo-spotlight-hours` | `GET /serebii/pokemongo/spotlight-hours` | none | `ApiKeyAuth` | `SerebiiPokemongoSpotlightHoursResponse` | |
+| serebii | `serebii.pokemongoEventDetailTicket` | `serebii-pokemongo-event-detail-ticket` | `GET /serebii/pokemongo/ticketevents/{filename}` | `filename` (path String required) | `ApiKeyAuth` | `SerebiiPokemongoEventDetailTicketResponse` | |
+| serebii | `serebii.pokemongoUnownEvents` | `serebii-pokemongo-unown-events` | `GET /serebii/pokemongo/unown-events` | none | `ApiKeyAuth` | `SerebiiPokemongoUnownEventsResponse` | |
| sevenNewsAustralia | `sevenNewsAustralia.article` | `sevennewsau-article` | `GET /sevennewsau/article` | `url` (query String required) | `ApiKeyAuth` | `SevenNewsAustraliaArticleResponse` | |
| sevenNewsAustralia | `sevenNewsAustralia.author` | `sevennewsau-author` | `GET /sevennewsau/author` | `slug` (query String)
`url` (query String) | `ApiKeyAuth` | `SevenNewsAustraliaAuthorResponse` | |
| sevenNewsAustralia | `sevenNewsAustralia.headlines` | `sevennewsau-headlines` | `GET /sevennewsau/headlines` | `section` (query String required) | `ApiKeyAuth` | `SevenNewsAustraliaHeadlinesResponse` | |
diff --git a/docs/recipes.md b/docs/recipes.md
index 4d187db..befa318 100644
--- a/docs/recipes.md
+++ b/docs/recipes.md
@@ -42,6 +42,29 @@ Object taxonomy = client.request("boardgamegeek-taxonomy", Map.of());
Object navigation = client.request("cricbuzz-navigation", Map.of());
```
+## Epic Games, Hearthstone, NHL, and Serebii
+
+The contract now includes free-game promotions, card filters, NHL season discovery,
+and Pokémon GO event listings. See [`operations.md`](operations.md) for the full
+operation reference.
+
+```java
+Object promotions = client.request("epicgames-free-promotions", Map.of());
+Object filters = client.request("hearthstone-filters", Map.of());
+Object seasons = client.request("nhl-seasons", Map.of());
+Object events = client.request("serebii-pokemongo-events", Map.of("category", "events.shtml"));
+```
+
+## NBA and HLTV
+
+Use the new basketball catalog/standings endpoints alongside competitive Counter-Strike rankings.
+
+```java
+Object enums = client.request("nba-enums", Map.of());
+Object standings = client.request("nba-standings", Map.of());
+Object rankings = client.request("hltv-rankings", Map.of());
+```
+
## Company Job Searches
Search public job listings directly from employer career sites:
diff --git a/openapi/public.json b/openapi/public.json
index 2b47a9b..3737d76 100644
--- a/openapi/public.json
+++ b/openapi/public.json
@@ -70123,6 +70123,31 @@
},
"type": "object"
},
+ "epicgames.PromotionsResponse": {
+ "properties": {
+ "Catalog": {
+ "additionalProperties": {},
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "epicgames.freePromotionsResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/epicgames.PromotionsResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"es.AirbnbDensityCell": {
"properties": {
"geohash": {
@@ -126804,6 +126829,116 @@
},
"type": "object"
},
+ "hearthstone.CardFiltersResponse": {
+ "properties": {
+ "filters": {
+ "type": "object"
+ },
+ "query_options": {
+ "additionalProperties": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": "object"
+ },
+ "sort_groups": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "sort_mappings": {
+ "items": {
+ "$ref": "#/definitions/hearthstone.CardSortMapping"
+ },
+ "type": "array"
+ },
+ "sort_options": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "sort_source_url": {
+ "type": "string"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "hearthstone.CardSortMapping": {
+ "properties": {
+ "label_key": {
+ "type": "string"
+ },
+ "order": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "sort": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "hearthstone.CardsResponse": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "hearthstone.cardFiltersResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/hearthstone.CardFiltersResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "hearthstone.cardResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/hearthstone.CardsResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "hearthstone.cardsListResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/hearthstone.CardsResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"hermes.CatalogueProduct": {
"properties": {
"last_modified": {
@@ -127612,6 +127747,20 @@
},
"type": "object"
},
+ "hltv.EventPlacement": {
+ "properties": {
+ "placement": {
+ "type": "string"
+ },
+ "prize": {
+ "type": "string"
+ },
+ "team": {
+ "$ref": "#/definitions/hltv.TeamRef"
+ }
+ },
+ "type": "object"
+ },
"hltv.EventRef": {
"properties": {
"id": {
@@ -127640,6 +127789,12 @@
"name": {
"type": "string"
},
+ "placements": {
+ "items": {
+ "$ref": "#/definitions/hltv.EventPlacement"
+ },
+ "type": "array"
+ },
"prize_pool": {
"type": "string"
},
@@ -127959,6 +128114,35 @@
},
"type": "object"
},
+ "hltv.PlayerMatch": {
+ "properties": {
+ "event": {
+ "type": "string"
+ },
+ "match_id": {
+ "type": "integer"
+ },
+ "opponent": {
+ "type": "string"
+ },
+ "result": {
+ "type": "string"
+ },
+ "score": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "starts_at": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"hltv.PlayerResponse": {
"properties": {
"age": {
@@ -127979,6 +128163,12 @@
"real_name": {
"type": "string"
},
+ "recent_matches": {
+ "items": {
+ "$ref": "#/definitions/hltv.PlayerMatch"
+ },
+ "type": "array"
+ },
"role_stats": {
"items": {
"$ref": "#/definitions/hltv.PlayerRoleStat"
@@ -127988,6 +128178,12 @@
"team": {
"$ref": "#/definitions/hltv.TeamRef"
},
+ "upcoming_matches": {
+ "items": {
+ "$ref": "#/definitions/hltv.PlayerMatch"
+ },
+ "type": "array"
+ },
"url": {
"type": "string"
}
@@ -128212,6 +128408,38 @@
},
"type": "object"
},
+ "hltv.TeamMatch": {
+ "properties": {
+ "date": {
+ "type": "string"
+ },
+ "event": {
+ "$ref": "#/definitions/hltv.EventRef"
+ },
+ "match_id": {
+ "type": "integer"
+ },
+ "score": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "teams": {
+ "items": {
+ "$ref": "#/definitions/hltv.TeamRef"
+ },
+ "type": "array"
+ },
+ "url": {
+ "type": "string"
+ },
+ "winner": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"hltv.TeamRanking": {
"properties": {
"name": {
@@ -128260,12 +128488,64 @@
},
"type": "array"
},
+ "recent_results": {
+ "items": {
+ "$ref": "#/definitions/hltv.TeamMatch"
+ },
+ "type": "array"
+ },
"roster": {
"items": {
"$ref": "#/definitions/hltv.RosterMember"
},
"type": "array"
},
+ "stats": {
+ "$ref": "#/definitions/hltv.TeamStatsSummary"
+ },
+ "upcoming_matches": {
+ "items": {
+ "$ref": "#/definitions/hltv.TeamUpcomingMatch"
+ },
+ "type": "array"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "hltv.TeamStatsSummary": {
+ "properties": {
+ "timespan": {
+ "type": "string"
+ },
+ "win_rate": {
+ "type": "string"
+ },
+ "win_streak": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "hltv.TeamUpcomingMatch": {
+ "properties": {
+ "event": {
+ "$ref": "#/definitions/hltv.EventRef"
+ },
+ "match_id": {
+ "type": "integer"
+ },
+ "starts_at": {
+ "type": "string"
+ },
+ "teams": {
+ "items": {
+ "$ref": "#/definitions/hltv.TeamRef"
+ },
+ "type": "array"
+ },
"url": {
"type": "string"
}
@@ -168842,12 +169122,24 @@
},
"nba.EnumsData": {
"properties": {
+ "ahead_behinds": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
"blocked": {
"items": {
"type": "string"
},
"type": "array"
},
+ "clutch_times": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
"defense_categories": {
"items": {
"type": "string"
@@ -172623,6 +172915,66 @@
},
"type": "object"
},
+ "nhl.GamecenterResponse": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "nhl.ScheduleResponse": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "nhl.StandingsResponse": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "nhl.gamecenterResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/nhl.GamecenterResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "nhl.scheduleResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/nhl.ScheduleResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "nhl.standingsResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/nhl.StandingsResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"nike.AvailabilityResponse": {
"properties": {
"count": {
@@ -222517,6 +222869,276 @@
},
"type": "object"
},
+ "serebii.EventCategoriesResponse": {
+ "properties": {
+ "categories": {
+ "items": {
+ "$ref": "#/definitions/serebii.EventCategory"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.EventCategory": {
+ "properties": {
+ "category": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.EventOnlyMovesResponse": {
+ "properties": {
+ "page_title": {
+ "type": "string"
+ },
+ "source_url": {
+ "type": "string"
+ },
+ "tables": {
+ "items": {
+ "$ref": "#/definitions/serebii.NativeDataTable"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.EventOnlyResearchResponse": {
+ "properties": {
+ "page_title": {
+ "type": "string"
+ },
+ "source_url": {
+ "type": "string"
+ },
+ "table": {
+ "$ref": "#/definitions/serebii.NativeDataTable"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.EventRecord": {
+ "properties": {
+ "dates": {
+ "type": "string"
+ },
+ "duration": {
+ "type": "string"
+ },
+ "focus": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "source_links": {
+ "items": {
+ "$ref": "#/definitions/serebii.SourceLink"
+ },
+ "type": "array"
+ },
+ "special_move": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.EventsResponse": {
+ "properties": {
+ "category": {
+ "$ref": "#/definitions/serebii.EventCategory"
+ },
+ "records": {
+ "items": {
+ "$ref": "#/definitions/serebii.EventRecord"
+ },
+ "type": "array"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.NativeDataCell": {
+ "properties": {
+ "column_span": {
+ "type": "integer"
+ },
+ "links": {
+ "items": {
+ "$ref": "#/definitions/serebii.SourceLink"
+ },
+ "type": "array"
+ },
+ "row_span": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.NativeDataRow": {
+ "properties": {
+ "cells": {
+ "items": {
+ "$ref": "#/definitions/serebii.NativeDataCell"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.NativeDataTable": {
+ "properties": {
+ "column_labels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "heading": {
+ "type": "string"
+ },
+ "rows": {
+ "items": {
+ "$ref": "#/definitions/serebii.NativeDataRow"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.NativeEventDetailResponse": {
+ "properties": {
+ "category": {
+ "type": "string"
+ },
+ "filename": {
+ "type": "string"
+ },
+ "overview": {
+ "type": "string"
+ },
+ "page_title": {
+ "type": "string"
+ },
+ "source_url": {
+ "type": "string"
+ },
+ "tables": {
+ "items": {
+ "$ref": "#/definitions/serebii.NativeDataTable"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.SourceLink": {
+ "properties": {
+ "column": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.SpotlightHourRecord": {
+ "properties": {
+ "date_label": {
+ "type": "string"
+ },
+ "extra_effects": {
+ "type": "string"
+ },
+ "pokemon_focus": {
+ "type": "string"
+ },
+ "pokemon_links": {
+ "items": {
+ "$ref": "#/definitions/serebii.SourceLink"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.SpotlightHoursResponse": {
+ "properties": {
+ "records": {
+ "items": {
+ "$ref": "#/definitions/serebii.SpotlightHourRecord"
+ },
+ "type": "array"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.UnownEventRecord": {
+ "properties": {
+ "available_letters": {
+ "type": "string"
+ },
+ "date": {
+ "type": "string"
+ },
+ "event": {
+ "type": "string"
+ },
+ "event_links": {
+ "items": {
+ "$ref": "#/definitions/serebii.SourceLink"
+ },
+ "type": "array"
+ },
+ "locations": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "restrictions": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serebii.UnownEventsResponse": {
+ "properties": {
+ "records": {
+ "items": {
+ "$ref": "#/definitions/serebii.UnownEventRecord"
+ },
+ "type": "array"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"sevennewsau.AuthorResponse": {
"properties": {
"articles": {
@@ -394441,6 +395063,70 @@
]
}
},
+ "/epicgames/free-promotions": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the store's current and upcoming promotion offers for the requested locale and country. The response preserves the upstream Catalog searchStore payload and its promotion windows; a zero price alone does not mean an offer is part of a limited-time promotion.",
+ "operationId": "epicgames-free-promotions",
+ "parameters": [
+ {
+ "default": "en-US",
+ "description": "Store locale",
+ "in": "query",
+ "name": "locale",
+ "type": "string"
+ },
+ {
+ "default": "US",
+ "description": "Two-letter country code",
+ "in": "query",
+ "name": "country",
+ "type": "string"
+ },
+ {
+ "default": "US",
+ "description": "Comma-separated country codes accepted by the upstream promotion query; defaults to country",
+ "in": "query",
+ "name": "allowCountries",
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/epicgames.freePromotionsResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get Epic Games Store free promotions",
+ "tags": [
+ "Epic Games Store"
+ ]
+ }
+ },
"/espn/athlete": {
"get": {
"consumes": [
@@ -451332,6 +452018,413 @@
]
}
},
+ "/hearthstone/card": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one card from the public Hearthstone card library. The card record and pagination metadata preserve the upstream response shape.",
+ "operationId": "hearthstone-card",
+ "parameters": [
+ {
+ "description": "Numeric card ID from the Hearthstone card library",
+ "in": "query",
+ "name": "id",
+ "required": true,
+ "type": "string",
+ "x-example": "80818"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/hearthstone.cardResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Hearthstone card by ID",
+ "tags": [
+ "Hearthstone"
+ ]
+ }
+ },
+ "/hearthstone/cards": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns a card-gallery page with native constructed, Battlegrounds, Mercenaries, and card-back filters. Dynamic filter values are discoverable from hearthstone_filters; sort mappings are returned there as well. The default view is all-class Standard with page size 450.",
+ "operationId": "hearthstone-cards",
+ "parameters": [
+ {
+ "default": 1,
+ "description": "Upstream page number",
+ "in": "query",
+ "minimum": 1,
+ "name": "page",
+ "type": "integer"
+ },
+ {
+ "description": "Upstream page size",
+ "in": "query",
+ "minimum": 1,
+ "name": "pageSize",
+ "type": "integer"
+ },
+ {
+ "description": "Source card locale; defaults to en_US",
+ "in": "query",
+ "name": "locale",
+ "type": "string"
+ },
+ {
+ "description": "Source class selector; use hearthstone_filters to discover current classes",
+ "in": "query",
+ "name": "class",
+ "type": "string"
+ },
+ {
+ "description": "Source set selector; use hearthstone_filters to discover current sets",
+ "in": "query",
+ "name": "set",
+ "type": "string"
+ },
+ {
+ "description": "Native source sort expression; see sort_options from hearthstone_filters",
+ "in": "query",
+ "name": "sort",
+ "type": "string"
+ },
+ {
+ "description": "Source sort direction",
+ "enum": [
+ "asc",
+ "desc"
+ ],
+ "in": "query",
+ "name": "order",
+ "type": "string"
+ },
+ {
+ "description": "Source game mode; Arena and Duels select their matching set",
+ "in": "query",
+ "name": "gameMode",
+ "type": "string"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable source collectible selector",
+ "in": "query",
+ "items": {
+ "enum": [
+ "0",
+ "1"
+ ],
+ "type": "string"
+ },
+ "name": "collectible",
+ "type": "array"
+ },
+ {
+ "description": "Source card text search",
+ "in": "query",
+ "name": "textFilter",
+ "type": "string"
+ },
+ {
+ "description": "Locale for textFilter; defaults to en-us",
+ "in": "query",
+ "name": "filterLocale",
+ "type": "string"
+ },
+ {
+ "description": "Optional source deck code filter",
+ "in": "query",
+ "name": "deckcode",
+ "type": "string"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable card-set ID filter",
+ "in": "query",
+ "items": {
+ "type": "integer"
+ },
+ "name": "cardSetId",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable spell-school ID filter",
+ "in": "query",
+ "items": {
+ "type": "integer"
+ },
+ "name": "spellSchoolId",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable rarity ID filter",
+ "in": "query",
+ "items": {
+ "type": "integer"
+ },
+ "name": "rarityId",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable card-type ID filter",
+ "in": "query",
+ "items": {
+ "type": "integer"
+ },
+ "name": "cardTypeId",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable mana-cost filter",
+ "in": "query",
+ "items": {
+ "type": "string"
+ },
+ "name": "manaCost",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable attack filter",
+ "in": "query",
+ "items": {
+ "type": "string"
+ },
+ "name": "attack",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable health filter",
+ "in": "query",
+ "items": {
+ "type": "string"
+ },
+ "name": "health",
+ "type": "array"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable armor filter",
+ "in": "query",
+ "items": {
+ "type": "string"
+ },
+ "name": "armor",
+ "type": "array"
+ },
+ {
+ "description": "Source rarity filter; see hearthstone_filters",
+ "in": "query",
+ "name": "rarity",
+ "type": "string"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable source type filter; see hearthstone_filters",
+ "in": "query",
+ "items": {
+ "type": "string"
+ },
+ "name": "type",
+ "type": "array"
+ },
+ {
+ "description": "Battlegrounds card-type selector from the source gallery",
+ "in": "query",
+ "name": "bgCardType",
+ "type": "string"
+ },
+ {
+ "description": "Source keyword filter; see hearthstone_filters",
+ "in": "query",
+ "name": "keyword",
+ "type": "string"
+ },
+ {
+ "description": "Source minion-type filter; see hearthstone_filters",
+ "in": "query",
+ "name": "minionType",
+ "type": "string"
+ },
+ {
+ "description": "Source deck-format selector",
+ "in": "query",
+ "name": "deckFormat",
+ "type": "string"
+ },
+ {
+ "collectionFormat": "csv",
+ "description": "Repeatable Battlegrounds tavern-tier filter",
+ "in": "query",
+ "items": {
+ "enum": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7"
+ ],
+ "type": "string"
+ },
+ "name": "tier",
+ "type": "array"
+ },
+ {
+ "description": "Source Mercenary role filter; see hearthstone_filters",
+ "in": "query",
+ "name": "mercenaryRole",
+ "type": "string"
+ },
+ {
+ "description": "Source Mercenary faction filter; see hearthstone_filters",
+ "in": "query",
+ "name": "mercenaryFaction",
+ "type": "string"
+ },
+ {
+ "description": "Card-gallery view mode",
+ "enum": [
+ "grid",
+ "table"
+ ],
+ "in": "query",
+ "name": "viewMode",
+ "type": "string"
+ },
+ {
+ "description": "Source card-back category filter; see hearthstone_filters",
+ "in": "query",
+ "name": "cardBackCategory",
+ "type": "string"
+ },
+ {
+ "description": "Source spell-school filter; see hearthstone_filters",
+ "in": "query",
+ "name": "spellSchool",
+ "type": "string"
+ },
+ {
+ "description": "Source faction filter; see hearthstone_filters",
+ "in": "query",
+ "name": "faction",
+ "type": "string"
+ },
+ {
+ "description": "Battlegrounds mode filter; see hearthstone_filters",
+ "in": "query",
+ "name": "bgGameMode",
+ "type": "string"
+ },
+ {
+ "description": "Source Zilliax module filter",
+ "in": "query",
+ "name": "zilliaxMod",
+ "type": "boolean"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/hearthstone.cardsListResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Hearthstone cards",
+ "tags": [
+ "Hearthstone"
+ ]
+ }
+ },
+ "/hearthstone/filters": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the card gallery's current filter collections and sort options. Filter values come from the gallery page configuration; sort slugs come from its current hashed card bundle.",
+ "operationId": "hearthstone-filters",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/hearthstone.cardFiltersResponseDoc"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Hearthstone card gallery filters",
+ "tags": [
+ "Hearthstone"
+ ]
+ }
+ },
"/hermes/categories": {
"get": {
"consumes": [
@@ -510878,6 +511971,115 @@
]
}
},
+ "/nba/hustle-team": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the league's team hustle table: contested shots, deflections, charges drawn, screen assists and points, loose balls recovered and box-outs.",
+ "operationId": "nba-hustle-team",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns the league's team hustle table: contested shots, deflections, charges drawn, screen assists and points, loose balls recovered and box-outs",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
"/nba/league-game-log": {
"get": {
"consumes": [
@@ -511191,110 +512393,55 @@
]
}
},
- "/nba/play-by-play": {
+ "/nba/opp-pt-shot": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns every play-by-play action for one game in period order: action number and type, period, an ISO-8601 clock such as PT12M00.00S, team and player identity, the description, shot result and value, and the running home/away score. A full game is about 220 KB, so request it once and page locally rather than polling.",
- "operationId": "nba-play-by-play",
+ "description": "Returns the league's opponent shooting table: one row per team with the shooting it allows, split overall and from three.",
+ "operationId": "nba-opp-pt-shot",
"parameters": [
{
- "description": "Ten-digit game id from nba-scoreboard",
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
"in": "query",
- "name": "game_id",
- "required": true,
- "type": "string",
- "x-example": "0022600196"
+ "name": "league_id",
+ "type": "string"
},
{
- "description": "First period to include, 0 to 14; 0 means from the start example(0)",
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
"in": "query",
- "name": "start_period",
- "type": "integer",
- "x-example": 0
+ "name": "season",
+ "type": "string"
},
{
- "description": "Last period to include, 0 to 14; 0 means through the end example(14)",
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
"in": "query",
- "name": "end_period",
- "type": "integer",
- "x-example": 14
- }
- ],
- "produces": [
- "application/json"
- ],
- "responses": {
- "200": {
- "description": "OK",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/app.Response"
- },
- {
- "properties": {
- "data": {
- "$ref": "#/definitions/nba.PlayByPlayResponse"
- }
- },
- "type": "object"
- }
- ]
- }
- },
- "400": {
- "description": "Bad Request",
- "schema": {
- "$ref": "#/definitions/app.Response"
- }
- },
- "404": {
- "description": "Not Found",
- "schema": {
- "$ref": "#/definitions/app.Response"
- }
- },
- "429": {
- "description": "Too Many Requests",
- "schema": {
- "$ref": "#/definitions/app.Response"
- }
+ "name": "season_type",
+ "type": "string"
},
- "503": {
- "description": "Service Unavailable",
- "schema": {
- "$ref": "#/definitions/app.Response"
- }
- }
- },
- "security": [
{
- "ApiKeyAuth": []
- }
- ],
- "summary": "NBA play-by-play for one game",
- "tags": [
- "NBA"
- ]
- }
- },
- "/nba/player-awards": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "description": "Returns one player's award history, one row per award. Marker-verified columns are PERSON_ID, FIRST_NAME, LAST_NAME, TEAM, DESCRIPTION, SEASON, CONFERENCE, TYPE, SUBTYPE1, SUBTYPE2, SUBTYPE3, ALL_NBA_TEAM_NUMBER and ALL_NBA_TEAM; the sampled AWARD_TYPE, ALL_DEFENSIVE_TEAM_NUMBER and ALL_ROOKIE_TEAM_NUMBER names did not match and are not claimed.",
- "operationId": "nba-player-awards",
- "parameters": [
- {
- "description": "Player id from nba-players or nba-team-roster",
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
"in": "query",
- "name": "player_id",
- "required": true,
- "type": "integer",
- "x-example": 1628398
+ "name": "per_mode",
+ "type": "string"
}
],
"produces": [
@@ -511349,56 +512496,41 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA player award history",
+ "summary": "Returns the league's opponent shooting table: one row per team with the shooting it allows, split overall and from three",
"tags": [
"NBA"
]
}
},
- "/nba/player-bio-stats": {
+ "/nba/play-by-play": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the league bio table for a season: each player's height (label and inches), weight, college, country, draft year/round/number and age, with season GP and the counting stat line. Marker-verified columns are PLAYER_ID, PLAYER_NAME, TEAM_ID, TEAM_ABBREVIATION, AGE, PLAYER_HEIGHT, PLAYER_HEIGHT_INCHES, PLAYER_WEIGHT, COLLEGE, COUNTRY, DRAFT_YEAR, DRAFT_ROUND, DRAFT_NUMBER, GP, PTS, REB and AST — the complete sampled set matched.",
- "operationId": "nba-player-bio-stats",
+ "description": "Returns every play-by-play action for one game in period order: action number and type, period, an ISO-8601 clock such as PT12M00.00S, team and player identity, the description, shot result and value, and the running home/away score. A full game is about 220 KB, so request it once and page locally rather than polling.",
+ "operationId": "nba-play-by-play",
"parameters": [
{
- "description": "League id; only 00 (NBA) is verified",
- "enum": [
- "00"
- ],
- "in": "query",
- "name": "league_id",
- "type": "string",
- "x-example": "00"
- },
- {
- "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "description": "Ten-digit game id from nba-scoreboard",
"in": "query",
- "name": "season",
+ "name": "game_id",
+ "required": true,
"type": "string",
- "x-example": "2026-27"
+ "x-example": "0022600196"
},
{
- "description": "Season type",
- "enum": [
- "Regular Season"
- ],
+ "description": "First period to include, 0 to 14; 0 means from the start example(0)",
"in": "query",
- "name": "season_type",
- "type": "string",
- "x-example": "Regular Season"
+ "name": "start_period",
+ "type": "integer",
+ "x-example": 0
},
{
- "description": "Aggregation",
- "enum": [
- "PerGame"
- ],
+ "description": "Last period to include, 0 to 14; 0 means through the end example(14)",
"in": "query",
- "name": "per_mode",
- "type": "string",
- "x-example": "PerGame"
+ "name": "end_period",
+ "type": "integer",
+ "x-example": 14
}
],
"produces": [
@@ -511415,7 +512547,7 @@
{
"properties": {
"data": {
- "$ref": "#/definitions/nba.TablesResponse"
+ "$ref": "#/definitions/nba.PlayByPlayResponse"
}
},
"type": "object"
@@ -511453,19 +512585,19 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA league bio table",
+ "summary": "NBA play-by-play for one game",
"tags": [
"NBA"
]
}
},
- "/nba/player-career-stats": {
+ "/nba/player-awards": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns one player's career statistics as several tables: the season-by-season regular-season line, the career regular-season totals, the season-by-season postseason line and the career postseason totals. Verified columns are SEASON_ID, TEAM_ID, GP, GS, MIN and PTS. per_mode PerGame or Totals is validated against the values verified on this endpoint.",
- "operationId": "nba-player-career-stats",
+ "description": "Returns one player's award history, one row per award. Marker-verified columns are PERSON_ID, FIRST_NAME, LAST_NAME, TEAM, DESCRIPTION, SEASON, CONFERENCE, TYPE, SUBTYPE1, SUBTYPE2, SUBTYPE3, ALL_NBA_TEAM_NUMBER and ALL_NBA_TEAM; the sampled AWARD_TYPE, ALL_DEFENSIVE_TEAM_NUMBER and ALL_ROOKIE_TEAM_NUMBER names did not match and are not claimed.",
+ "operationId": "nba-player-awards",
"parameters": [
{
"description": "Player id from nba-players or nba-team-roster",
@@ -511474,26 +512606,6 @@
"required": true,
"type": "integer",
"x-example": 1628398
- },
- {
- "description": "Aggregation; PerGame or Totals",
- "enum": [
- "PerGame"
- ],
- "in": "query",
- "name": "per_mode",
- "type": "string",
- "x-example": "PerGame"
- },
- {
- "description": "League id; only 00 (NBA) is verified",
- "enum": [
- "00"
- ],
- "in": "query",
- "name": "league_id",
- "type": "string",
- "x-example": "00"
}
],
"produces": [
@@ -511548,28 +512660,20 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA player season-by-season and career statistics",
+ "summary": "NBA player award history",
"tags": [
"NBA"
]
}
},
- "/nba/player-dash-pt-shots": {
+ "/nba/player-bio-stats": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns one player's tracking shot dashboard as several result sets (overall, and the tracking breakdowns the upstream returns). The endpoint rejects a trimmed query with HTTP 500, so the full dashboard scope set is always sent.",
- "operationId": "nba-player-dash-pt-shots",
+ "description": "Returns the league bio table for a season: each player's height (label and inches), weight, college, country, draft year/round/number and age, with season GP and the counting stat line. Marker-verified columns are PLAYER_ID, PLAYER_NAME, TEAM_ID, TEAM_ABBREVIATION, AGE, PLAYER_HEIGHT, PLAYER_HEIGHT_INCHES, PLAYER_WEIGHT, COLLEGE, COUNTRY, DRAFT_YEAR, DRAFT_ROUND, DRAFT_NUMBER, GP, PTS, REB and AST — the complete sampled set matched.",
+ "operationId": "nba-player-bio-stats",
"parameters": [
- {
- "description": "Player id from nba-players or nba-team-roster",
- "in": "query",
- "name": "player_id",
- "required": true,
- "type": "integer",
- "x-example": 1628398
- },
{
"description": "League id; only 00 (NBA) is verified",
"enum": [
@@ -511660,19 +512764,19 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA player tracking shot dashboard",
+ "summary": "NBA league bio table",
"tags": [
"NBA"
]
}
},
- "/nba/player-info": {
+ "/nba/player-career-stats": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns one player's league profile: full name forms, birth date, school and country, draft year and round, jersey number, position, height and weight, team identity and season experience. Take the player id from nba-players or nba-team-roster.",
- "operationId": "nba-player-info",
+ "description": "Returns one player's career statistics as several tables: the season-by-season regular-season line, the career regular-season totals, the season-by-season postseason line and the career postseason totals. Verified columns are SEASON_ID, TEAM_ID, GP, GS, MIN and PTS. per_mode PerGame or Totals is validated against the values verified on this endpoint.",
+ "operationId": "nba-player-career-stats",
"parameters": [
{
"description": "Player id from nba-players or nba-team-roster",
@@ -511682,6 +512786,16 @@
"type": "integer",
"x-example": 1628398
},
+ {
+ "description": "Aggregation; PerGame or Totals",
+ "enum": [
+ "PerGame"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string",
+ "x-example": "PerGame"
+ },
{
"description": "League id; only 00 (NBA) is verified",
"enum": [
@@ -511745,39 +512859,37 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA player profile",
+ "summary": "NBA player season-by-season and career statistics",
"tags": [
"NBA"
]
}
},
- "/nba/player-stats": {
+ "/nba/player-clutch": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the league-wide player statistics table for one season, measure and aggregation: one row per player with the columns the source publishes for that measure, keyed by the source's own column names such as PLAYER_ID, PLAYER_NAME, TEAM_ID, GP, MIN, PTS, REB and AST. Base and Advanced are the two verified measures, and PerGame and Totals the two verified aggregations; read the response's headers list rather than assuming a fixed column set.",
- "operationId": "nba-player-stats",
+ "description": "Returns the league's clutch player table for one clutch window and score margin: the players' clutch shooting and counting stats.",
+ "operationId": "nba-player-clutch",
"parameters": [
{
- "description": "League id; only 00 (NBA) is verified",
+ "description": "Optional league id; only 00 (NBA) is verified.",
"enum": [
"00"
],
"in": "query",
"name": "league_id",
- "type": "string",
- "x-example": "00"
+ "type": "string"
},
{
- "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
"in": "query",
"name": "season",
- "type": "string",
- "x-example": "2026-27"
+ "type": "string"
},
{
- "description": "Season type; Regular Season or Playoffs",
+ "description": "Optional season type.",
"enum": [
"Regular Season",
"Playoffs",
@@ -511786,11 +512898,25 @@
],
"in": "query",
"name": "season_type",
- "type": "string",
- "x-example": "Regular Season"
+ "type": "string"
},
{
- "description": "Statistic family; Base or Advanced",
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string"
+ },
+ {
+ "description": "Optional statistic family.",
"enum": [
"Base",
"Advanced",
@@ -511801,24 +512927,34 @@
],
"in": "query",
"name": "measure_type",
- "type": "string",
- "x-example": "Base"
+ "type": "string"
},
{
- "description": "Aggregation; PerGame or Totals",
+ "description": "Optional clutch window; only 'Last 5 Minutes' is verified.",
"enum": [
- "PerGame",
- "Totals",
- "Per36",
- "Per48",
- "Per100Possessions",
- "MinutesPer",
- "PerPossession"
+ "Last 5 Minutes"
],
"in": "query",
- "name": "per_mode",
- "type": "string",
- "x-example": "PerGame"
+ "name": "clutch_time",
+ "type": "string"
+ },
+ {
+ "description": "Optional score-margin filter; only 'Ahead or Behind' is verified.",
+ "enum": [
+ "Ahead or Behind"
+ ],
+ "in": "query",
+ "name": "ahead_behind",
+ "type": "string"
+ },
+ {
+ "description": "Optional point margin; only 5 is verified.",
+ "enum": [
+ 5
+ ],
+ "in": "query",
+ "name": "point_diff",
+ "type": "integer"
}
],
"produces": [
@@ -511873,20 +513009,28 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA league-wide player statistics table",
+ "summary": "Returns the league's clutch player table for one clutch window and score margin: the players' clutch shooting and counting stats",
"tags": [
"NBA"
]
}
},
- "/nba/players": {
+ "/nba/player-dash-pt-shots": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the league's player index for a season, one row per player with player id, first and last name, team id and the source's roster attributes. This is the family's player-id discovery route: the ids it returns are what nba-player-info, nba-box-score and nba-play-by-play accept, so call this instead of guessing an id. Pass team_id to narrow the index to one roster.",
- "operationId": "nba-players",
+ "description": "Returns one player's tracking shot dashboard as several result sets (overall, and the tracking breakdowns the upstream returns). The endpoint rejects a trimmed query with HTTP 500, so the full dashboard scope set is always sent.",
+ "operationId": "nba-player-dash-pt-shots",
"parameters": [
+ {
+ "description": "Player id from nba-players or nba-team-roster",
+ "in": "query",
+ "name": "player_id",
+ "required": true,
+ "type": "integer",
+ "x-example": 1628398
+ },
{
"description": "League id; only 00 (NBA) is verified",
"enum": [
@@ -511905,17 +513049,24 @@
"x-example": "2026-27"
},
{
- "description": "Optional team id from nba-standings; narrows the index to that roster example(1610612741)",
+ "description": "Season type",
+ "enum": [
+ "Regular Season"
+ ],
"in": "query",
- "name": "team_id",
- "type": "integer",
- "x-example": 1610612741
+ "name": "season_type",
+ "type": "string",
+ "x-example": "Regular Season"
},
{
- "description": "When true, keep only players active in the season",
+ "description": "Aggregation",
+ "enum": [
+ "PerGame"
+ ],
"in": "query",
- "name": "active",
- "type": "boolean"
+ "name": "per_mode",
+ "type": "string",
+ "x-example": "PerGame"
}
],
"produces": [
@@ -511970,36 +513121,138 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA player index: every player id for a season",
+ "summary": "NBA player tracking shot dashboard",
"tags": [
"NBA"
]
}
},
- "/nba/playoff-picture": {
+ "/nba/player-game-logs": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the current playoff picture as two tables, EastConfPlayoffPicture and WestConfPlayoffPicture. Verified columns are TEAM_ID, CONFERENCE and CLINCHED; the upstream sends more columns than were confirmed here (the sampled PLAYOFF_RANK column name did not match the response) and any extras are passed through as-is.",
- "operationId": "nba-playoff-picture",
+ "description": "Returns one player's game log for a season, one row per game with the player's box-score line.",
+ "operationId": "nba-player-game-logs",
"parameters": [
{
- "description": "League id; only 00 (NBA) is verified",
+ "description": "Optional league id; only 00 (NBA) is verified.",
"enum": [
"00"
],
"in": "query",
"name": "league_id",
- "type": "string",
- "x-example": "00"
+ "type": "string"
},
{
- "description": "Five-digit season id such as 22026; defaults to the current season",
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
"in": "query",
- "name": "season_id",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Required player id from nba-players or nba-team-roster.",
+ "in": "query",
+ "name": "player_id",
+ "required": true,
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns one player's game log for a season, one row per game with the player's box-score line",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/player-info": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one player's league profile: full name forms, birth date, school and country, draft year and round, jersey number, position, height and weight, team identity and season experience. Take the player id from nba-players or nba-team-roster.",
+ "operationId": "nba-player-info",
+ "parameters": [
+ {
+ "description": "Player id from nba-players or nba-team-roster",
+ "in": "query",
+ "name": "player_id",
+ "required": true,
+ "type": "integer",
+ "x-example": 1628398
+ },
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
"type": "string",
- "x-example": "22026"
+ "x-example": "00"
}
],
"produces": [
@@ -512054,67 +513307,41 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA playoff picture by conference",
+ "summary": "NBA player profile",
"tags": [
"NBA"
]
}
},
- "/nba/pt-defend": {
+ "/nba/player-profile-v2": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the league's defensive tracking table for one defended-shot category. Marker-verified columns are CLOSE_DEF_PERSON_ID, PLAYER_NAME, TEAM_ID, TEAM_ABBREVIATION, AGE, GP, G, FREQ, D_FGM, D_FGA, D_FG_PCT, NORMAL_FG_PCT and PCT_PLUSMINUS. The player identity column on this table is CLOSE_DEF_PERSON_ID, not PLAYER_ID.",
- "operationId": "nba-pt-defend",
+ "description": "Returns one player's full profile stat set: the season-by-season regular-season line, the career regular-season totals and the postseason equivalents.",
+ "operationId": "nba-player-profile-v2",
"parameters": [
{
- "description": "League id; only 00 (NBA) is verified",
- "enum": [
- "00"
- ],
- "in": "query",
- "name": "league_id",
- "type": "string",
- "x-example": "00"
- },
- {
- "description": "Season in YYYY-YY form; defaults to the current NBA season",
- "in": "query",
- "name": "season",
- "type": "string",
- "x-example": "2026-27"
- },
- {
- "description": "Season type",
- "enum": [
- "Regular Season"
- ],
+ "description": "Required player id from nba-players or nba-team-roster.",
"in": "query",
- "name": "season_type",
- "type": "string",
- "x-example": "Regular Season"
+ "name": "player_id",
+ "required": true,
+ "type": "integer"
},
{
- "description": "Aggregation",
+ "description": "Optional aggregation.",
"enum": [
- "PerGame"
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
],
"in": "query",
"name": "per_mode",
- "type": "string",
- "x-example": "PerGame"
- },
- {
- "description": "Defended-shot category",
- "enum": [
- "Overall",
- "3 Pointers"
- ],
- "in": "query",
- "name": "defense_category",
- "type": "string",
- "x-example": "Overall"
+ "type": "string"
}
],
"produces": [
@@ -512169,66 +513396,61 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA defensive tracking dashboard",
+ "summary": "Returns one player's full profile stat set: the season-by-season regular-season line, the career regular-season totals and the postseason equivalents",
"tags": [
"NBA"
]
}
},
- "/nba/pt-stats": {
+ "/nba/player-pt-shot": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the league player-tracking dashboard for one tracking measure. The endpoint rejects a trimmed query with HTTP 500, so the full dashboard scope set is always sent. pt_measure_type is pinned to the one verified measure, SpeedDistance.",
- "operationId": "nba-pt-stats",
+ "description": "Returns the league's player shooting table: one row per player with the shooting line, split overall and from three.",
+ "operationId": "nba-player-pt-shot",
"parameters": [
{
- "description": "League id; only 00 (NBA) is verified",
+ "description": "Optional league id; only 00 (NBA) is verified.",
"enum": [
"00"
],
"in": "query",
"name": "league_id",
- "type": "string",
- "x-example": "00"
+ "type": "string"
},
{
- "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
"in": "query",
"name": "season",
- "type": "string",
- "x-example": "2026-27"
+ "type": "string"
},
{
- "description": "Season type",
+ "description": "Optional season type.",
"enum": [
- "Regular Season"
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
],
"in": "query",
"name": "season_type",
- "type": "string",
- "x-example": "Regular Season"
+ "type": "string"
},
{
- "description": "Aggregation",
+ "description": "Optional aggregation.",
"enum": [
- "PerGame"
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
],
"in": "query",
"name": "per_mode",
- "type": "string",
- "x-example": "PerGame"
- },
- {
- "description": "Tracking measure; only SpeedDistance is verified",
- "enum": [
- "SpeedDistance"
- ],
- "in": "query",
- "name": "pt_measure_type",
- "type": "string",
- "x-example": "SpeedDistance"
+ "type": "string"
}
],
"produces": [
@@ -512283,19 +513505,19 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA player-tracking dashboard",
+ "summary": "Returns the league's player shooting table: one row per player with the shooting line, split overall and from three",
"tags": [
"NBA"
]
}
},
- "/nba/scoreboard": {
+ "/nba/player-stats": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns every NBA game for a game day from the league's own statistics service: game id, code, status and clock, period, and both teams with id, tricode, name, score, wins and losses. Game ids from this route are the input to the box-score and play-by-play routes. The upstream requires a game date, so a missing date defaults to the current UTC date; the NBA game day is US Eastern, so pass game_date explicitly when the exact slate matters.",
- "operationId": "nba-scoreboard",
+ "description": "Returns the league-wide player statistics table for one season, measure and aggregation: one row per player with the columns the source publishes for that measure, keyed by the source's own column names such as PLAYER_ID, PLAYER_NAME, TEAM_ID, GP, MIN, PTS, REB and AST. Base and Advanced are the two verified measures, and PerGame and Totals the two verified aggregations; read the response's headers list rather than assuming a fixed column set.",
+ "operationId": "nba-player-stats",
"parameters": [
{
"description": "League id; only 00 (NBA) is verified",
@@ -512308,18 +513530,55 @@
"x-example": "00"
},
{
- "description": "Game day in MM/DD/YYYY form; defaults to the current UTC date",
+ "description": "Season in YYYY-YY form; defaults to the current NBA season",
"in": "query",
- "name": "game_date",
+ "name": "season",
"type": "string",
- "x-example": "11/08/2026"
+ "x-example": "2026-27"
},
{
- "description": "Whole-day offset applied to the game day example(0)",
+ "description": "Season type; Regular Season or Playoffs",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
"in": "query",
- "name": "day_offset",
- "type": "integer",
- "x-example": 0
+ "name": "season_type",
+ "type": "string",
+ "x-example": "Regular Season"
+ },
+ {
+ "description": "Statistic family; Base or Advanced",
+ "enum": [
+ "Base",
+ "Advanced",
+ "Misc",
+ "Scoring",
+ "Defense",
+ "Opponent"
+ ],
+ "in": "query",
+ "name": "measure_type",
+ "type": "string",
+ "x-example": "Base"
+ },
+ {
+ "description": "Aggregation; PerGame or Totals",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string",
+ "x-example": "PerGame"
}
],
"produces": [
@@ -512336,7 +513595,7 @@
{
"properties": {
"data": {
- "$ref": "#/definitions/nba.ScoreboardResponse"
+ "$ref": "#/definitions/nba.TablesResponse"
}
},
"type": "object"
@@ -512374,39 +513633,37 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA scoreboard for one game day",
+ "summary": "NBA league-wide player statistics table",
"tags": [
"NBA"
]
}
},
- "/nba/standings": {
+ "/nba/player-streak-finder": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the standings table for one season and season type: one row per team with team id, city, name, slug, conference, division, wins, losses, win percentage, playoff rank, streak, conference record and clinched flag. Western/Eastern conference and division are columns rather than parameters, so one call returns the whole league and callers split on them.",
- "operationId": "nba-standings",
+ "description": "Returns player game streaks for a season: the streak rows the upstream computes, one row per streak, with the player identity and streak totals.",
+ "operationId": "nba-player-streak-finder",
"parameters": [
{
- "description": "League id; only 00 (NBA) is verified",
+ "description": "Optional league id; only 00 (NBA) is verified.",
"enum": [
"00"
],
"in": "query",
"name": "league_id",
- "type": "string",
- "x-example": "00"
+ "type": "string"
},
{
- "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
"in": "query",
"name": "season",
- "type": "string",
- "x-example": "2026-27"
+ "type": "string"
},
{
- "description": "Season type; Regular Season or Playoffs",
+ "description": "Optional season type.",
"enum": [
"Regular Season",
"Playoffs",
@@ -512415,8 +513672,19 @@
],
"in": "query",
"name": "season_type",
- "type": "string",
- "x-example": "Regular Season"
+ "type": "string"
+ },
+ {
+ "description": "Optional player id from nba-players; narrows the streaks to one player.",
+ "in": "query",
+ "name": "player_id",
+ "type": "integer"
+ },
+ {
+ "description": "Optional minimum streak length in games.",
+ "in": "query",
+ "name": "min_games",
+ "type": "integer"
}
],
"produces": [
@@ -512471,19 +513739,19 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA standings for a season and season type",
+ "summary": "Returns player game streaks for a season: the streak rows the upstream computes, one row per streak, with the player identity and streak totals",
"tags": [
"NBA"
]
}
},
- "/nba/synergy-play-types": {
+ "/nba/players": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns the synergy play-type dashboard for one play type and grouping. This endpoint takes a four-digit SeasonYear rather than the dashboards' YYYY-YY season label. play_type is pinned to the one verified value, Isolation, and type_grouping to the verified offensive grouping.",
- "operationId": "nba-synergy-play-types",
+ "description": "Returns the league's player index for a season, one row per player with player id, first and last name, team id and the source's roster attributes. This is the family's player-id discovery route: the ids it returns are what nba-player-info, nba-box-score and nba-play-by-play accept, so call this instead of guessing an id. Pass team_id to narrow the index to one roster.",
+ "operationId": "nba-players",
"parameters": [
{
"description": "League id; only 00 (NBA) is verified",
@@ -512496,61 +513764,24 @@
"x-example": "00"
},
{
- "description": "Four-digit season year such as 2026; defaults to the current season",
- "in": "query",
- "name": "season_year",
- "type": "string",
- "x-example": "2026"
- },
- {
- "description": "Season type",
- "enum": [
- "Regular Season"
- ],
- "in": "query",
- "name": "season_type",
- "type": "string",
- "x-example": "Regular Season"
- },
- {
- "description": "Synergy play type; only Isolation is verified",
- "enum": [
- "Isolation"
- ],
- "in": "query",
- "name": "play_type",
- "type": "string",
- "x-example": "Isolation"
- },
- {
- "description": "Aggregation",
- "enum": [
- "PerGame"
- ],
+ "description": "Season in YYYY-YY form; defaults to the current NBA season",
"in": "query",
- "name": "per_mode",
+ "name": "season",
"type": "string",
- "x-example": "PerGame"
+ "x-example": "2026-27"
},
{
- "description": "Subject",
- "enum": [
- "T"
- ],
+ "description": "Optional team id from nba-standings; narrows the index to that roster example(1610612741)",
"in": "query",
- "name": "player_or_team",
- "type": "string",
- "x-example": "T"
+ "name": "team_id",
+ "type": "integer",
+ "x-example": 1610612741
},
{
- "description": "Grouping",
- "enum": [
- "offensive"
- ],
+ "description": "When true, keep only players active in the season",
"in": "query",
- "name": "type_grouping",
- "type": "string",
- "x-example": "offensive"
+ "name": "active",
+ "type": "boolean"
}
],
"produces": [
@@ -512605,28 +513836,895 @@
"ApiKeyAuth": []
}
],
- "summary": "NBA synergy play-type dashboard",
+ "summary": "NBA player index: every player id for a season",
"tags": [
"NBA"
]
}
},
- "/nba/team-details": {
+ "/nba/playoff-picture": {
"get": {
"consumes": [
"application/json"
],
- "description": "Returns one franchise's detail from the league statistics service: the franchise background row (team id, abbreviation, nickname, city, arena and capacity, owner, general manager, head coach, G-League affiliate, founding year), its season-by-season history, and its championship awards. Verified columns are TEAM_ID, ABBREVIATION, NICKNAME, CITY, ARENA, ARENACAPACITY, OWNER, GENERALMANAGER, HEADCOACH, DLEAGUEAFFILIATION and YEARFOUNDED on TeamBackground, plus YEARAWARDED and OPPOSITETEAM on TeamAwardsChampionships; the upstream sends more columns than were confirmed here and they are passed through as-is.",
- "operationId": "nba-team-details",
+ "description": "Returns the current playoff picture as two tables, EastConfPlayoffPicture and WestConfPlayoffPicture. Verified columns are TEAM_ID, CONFERENCE and CLINCHED; the upstream sends more columns than were confirmed here (the sampled PLAYOFF_RANK column name did not match the response) and any extras are passed through as-is.",
+ "operationId": "nba-playoff-picture",
"parameters": [
- {
- "description": "Team id from nba-standings",
- "in": "query",
- "name": "team_id",
- "required": true,
- "type": "integer",
- "x-example": 1610612741
- },
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string",
+ "x-example": "00"
+ },
+ {
+ "description": "Five-digit season id such as 22026; defaults to the current season",
+ "in": "query",
+ "name": "season_id",
+ "type": "string",
+ "x-example": "22026"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "NBA playoff picture by conference",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/pt-defend": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the league's defensive tracking table for one defended-shot category. Marker-verified columns are CLOSE_DEF_PERSON_ID, PLAYER_NAME, TEAM_ID, TEAM_ABBREVIATION, AGE, GP, G, FREQ, D_FGM, D_FGA, D_FG_PCT, NORMAL_FG_PCT and PCT_PLUSMINUS. The player identity column on this table is CLOSE_DEF_PERSON_ID, not PLAYER_ID.",
+ "operationId": "nba-pt-defend",
+ "parameters": [
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string",
+ "x-example": "00"
+ },
+ {
+ "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "in": "query",
+ "name": "season",
+ "type": "string",
+ "x-example": "2026-27"
+ },
+ {
+ "description": "Season type",
+ "enum": [
+ "Regular Season"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string",
+ "x-example": "Regular Season"
+ },
+ {
+ "description": "Aggregation",
+ "enum": [
+ "PerGame"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string",
+ "x-example": "PerGame"
+ },
+ {
+ "description": "Defended-shot category",
+ "enum": [
+ "Overall",
+ "3 Pointers"
+ ],
+ "in": "query",
+ "name": "defense_category",
+ "type": "string",
+ "x-example": "Overall"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "NBA defensive tracking dashboard",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/pt-stats": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the league player-tracking dashboard for one tracking measure. The endpoint rejects a trimmed query with HTTP 500, so the full dashboard scope set is always sent. pt_measure_type is pinned to the one verified measure, SpeedDistance.",
+ "operationId": "nba-pt-stats",
+ "parameters": [
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string",
+ "x-example": "00"
+ },
+ {
+ "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "in": "query",
+ "name": "season",
+ "type": "string",
+ "x-example": "2026-27"
+ },
+ {
+ "description": "Season type",
+ "enum": [
+ "Regular Season"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string",
+ "x-example": "Regular Season"
+ },
+ {
+ "description": "Aggregation",
+ "enum": [
+ "PerGame"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string",
+ "x-example": "PerGame"
+ },
+ {
+ "description": "Tracking measure; only SpeedDistance is verified",
+ "enum": [
+ "SpeedDistance"
+ ],
+ "in": "query",
+ "name": "pt_measure_type",
+ "type": "string",
+ "x-example": "SpeedDistance"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "NBA player-tracking dashboard",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/scoreboard": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns every NBA game for a game day from the league's own statistics service: game id, code, status and clock, period, and both teams with id, tricode, name, score, wins and losses. Game ids from this route are the input to the box-score and play-by-play routes. The upstream requires a game date, so a missing date defaults to the current UTC date; the NBA game day is US Eastern, so pass game_date explicitly when the exact slate matters.",
+ "operationId": "nba-scoreboard",
+ "parameters": [
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string",
+ "x-example": "00"
+ },
+ {
+ "description": "Game day in MM/DD/YYYY form; defaults to the current UTC date",
+ "in": "query",
+ "name": "game_date",
+ "type": "string",
+ "x-example": "11/08/2026"
+ },
+ {
+ "description": "Whole-day offset applied to the game day example(0)",
+ "in": "query",
+ "name": "day_offset",
+ "type": "integer",
+ "x-example": 0
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.ScoreboardResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "NBA scoreboard for one game day",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/standings": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the standings table for one season and season type: one row per team with team id, city, name, slug, conference, division, wins, losses, win percentage, playoff rank, streak, conference record and clinched flag. Western/Eastern conference and division are columns rather than parameters, so one call returns the whole league and callers split on them.",
+ "operationId": "nba-standings",
+ "parameters": [
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string",
+ "x-example": "00"
+ },
+ {
+ "description": "Season in YYYY-YY form; defaults to the current NBA season",
+ "in": "query",
+ "name": "season",
+ "type": "string",
+ "x-example": "2026-27"
+ },
+ {
+ "description": "Season type; Regular Season or Playoffs",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string",
+ "x-example": "Regular Season"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "NBA standings for a season and season type",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/synergy-play-types": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the synergy play-type dashboard for one play type and grouping. This endpoint takes a four-digit SeasonYear rather than the dashboards' YYYY-YY season label. play_type is pinned to the one verified value, Isolation, and type_grouping to the verified offensive grouping.",
+ "operationId": "nba-synergy-play-types",
+ "parameters": [
+ {
+ "description": "League id; only 00 (NBA) is verified",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string",
+ "x-example": "00"
+ },
+ {
+ "description": "Four-digit season year such as 2026; defaults to the current season",
+ "in": "query",
+ "name": "season_year",
+ "type": "string",
+ "x-example": "2026"
+ },
+ {
+ "description": "Season type",
+ "enum": [
+ "Regular Season"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string",
+ "x-example": "Regular Season"
+ },
+ {
+ "description": "Synergy play type; only Isolation is verified",
+ "enum": [
+ "Isolation"
+ ],
+ "in": "query",
+ "name": "play_type",
+ "type": "string",
+ "x-example": "Isolation"
+ },
+ {
+ "description": "Aggregation",
+ "enum": [
+ "PerGame"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string",
+ "x-example": "PerGame"
+ },
+ {
+ "description": "Subject",
+ "enum": [
+ "T"
+ ],
+ "in": "query",
+ "name": "player_or_team",
+ "type": "string",
+ "x-example": "T"
+ },
+ {
+ "description": "Grouping",
+ "enum": [
+ "offensive"
+ ],
+ "in": "query",
+ "name": "type_grouping",
+ "type": "string",
+ "x-example": "offensive"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "NBA synergy play-type dashboard",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/team-dash-pt-pass": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one team's passing dashboard: the pass-type breakdowns the upstream computes for that team, as several result sets.",
+ "operationId": "nba-team-dash-pt-pass",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string"
+ },
+ {
+ "description": "Required team id from nba-standings.",
+ "in": "query",
+ "name": "team_id",
+ "required": true,
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns one team's passing dashboard: the pass-type breakdowns the upstream computes for that team, as several result sets",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/team-dash-pt-shots": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one team's tracking shot dashboard: the shot breakdowns the upstream computes for that team (by touch time and shot type), as several result sets.",
+ "operationId": "nba-team-dash-pt-shots",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string"
+ },
+ {
+ "description": "Required team id from nba-standings.",
+ "in": "query",
+ "name": "team_id",
+ "required": true,
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns one team's tracking shot dashboard: the shot breakdowns the upstream computes for that team (by touch time and shot type), as several result sets",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/team-details": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one franchise's detail from the league statistics service: the franchise background row (team id, abbreviation, nickname, city, arena and capacity, owner, general manager, head coach, G-League affiliate, founding year), its season-by-season history, and its championship awards. Verified columns are TEAM_ID, ABBREVIATION, NICKNAME, CITY, ARENA, ARENACAPACITY, OWNER, GENERALMANAGER, HEADCOACH, DLEAGUEAFFILIATION and YEARFOUNDED on TeamBackground, plus YEARAWARDED and OPPOSITETEAM on TeamAwardsChampionships; the upstream sends more columns than were confirmed here and they are passed through as-is.",
+ "operationId": "nba-team-details",
+ "parameters": [
+ {
+ "description": "Team id from nba-standings",
+ "in": "query",
+ "name": "team_id",
+ "required": true,
+ "type": "integer",
+ "x-example": 1610612741
+ },
{
"description": "League id; only 00 (NBA) is verified",
"enum": [
@@ -512696,6 +514794,447 @@
]
}
},
+ "/nba/team-game-logs": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one team's game log for a season, one row per game with the team's box-score line (field goals, threes, rebounds, assists, steals, blocks, turnovers, points and plus-minus).",
+ "operationId": "nba-team-game-logs",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Required team id from nba-standings.",
+ "in": "query",
+ "name": "team_id",
+ "required": true,
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns one team's game log for a season, one row per game with the team's box-score line (field goals, threes, rebounds, assists, steals, blocks, turnovers, points and plus-minus)",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/team-info-common": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one team's identity and season summary: city, name, abbreviation, code, conference and division, the win/loss record and per-game team averages, plus the team's available seasons.",
+ "operationId": "nba-team-info-common",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Required team id from nba-standings.",
+ "in": "query",
+ "name": "team_id",
+ "required": true,
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns one team's identity and season summary: city, name, abbreviation, code, conference and division, the win/loss record and per-game team averages, plus the team's available seasons",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/team-on-off": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns a team's on-court/off-court player splits: the on-court and off-court rows the upstream computes, with each player's minutes and rating impact.",
+ "operationId": "nba-team-on-off",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string"
+ },
+ {
+ "description": "Optional statistic family.",
+ "enum": [
+ "Base",
+ "Advanced",
+ "Misc",
+ "Scoring",
+ "Defense",
+ "Opponent"
+ ],
+ "in": "query",
+ "name": "measure_type",
+ "type": "string"
+ },
+ {
+ "description": "Required team id from nba-standings.",
+ "in": "query",
+ "name": "team_id",
+ "required": true,
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns a team's on-court/off-court player splits: the on-court and off-court rows the upstream computes, with each player's minutes and rating impact",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
+ "/nba/team-pt-shot": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the league's team shooting table: one row per team with the shooting line, split overall and from three.",
+ "operationId": "nba-team-pt-shot",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ },
+ {
+ "description": "Optional season in YYYY-YY form; defaults to the current NBA season.",
+ "in": "query",
+ "name": "season",
+ "type": "string"
+ },
+ {
+ "description": "Optional season type.",
+ "enum": [
+ "Regular Season",
+ "Playoffs",
+ "Pre Season",
+ "All Star"
+ ],
+ "in": "query",
+ "name": "season_type",
+ "type": "string"
+ },
+ {
+ "description": "Optional aggregation.",
+ "enum": [
+ "PerGame",
+ "Totals",
+ "Per36",
+ "Per48",
+ "Per100Possessions",
+ "MinutesPer",
+ "PerPossession"
+ ],
+ "in": "query",
+ "name": "per_mode",
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns the league's team shooting table: one row per team with the shooting line, split overall and from three",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
"/nba/team-roster": {
"get": {
"consumes": [
@@ -513176,6 +515715,82 @@
]
}
},
+ "/nba/team-years": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns every franchise and the range of seasons it has played, one row per team.",
+ "operationId": "nba-team-years",
+ "parameters": [
+ {
+ "description": "Optional league id; only 00 (NBA) is verified.",
+ "enum": [
+ "00"
+ ],
+ "in": "query",
+ "name": "league_id",
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/app.Response"
+ },
+ {
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/nba.TablesResponse"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Returns every franchise and the range of seasons it has played, one row per team",
+ "tags": [
+ "NBA"
+ ]
+ }
+ },
"/nbc/article": {
"get": {
"description": "Returns public NBC News article metadata and body paragraphs from a canonical article URL. This does not bypass login, subscription, or other access controls.",
@@ -517598,6 +520213,255 @@
]
}
},
+ "/nhl/gamecenter/boxscore": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the upstream gamecenter boxscore for one NHL game ID, preserving the source's team and player statistics.",
+ "operationId": "nhl-gamecenter-boxscore",
+ "parameters": [
+ {
+ "description": "10-digit NHL game ID",
+ "in": "query",
+ "name": "game_id",
+ "required": true,
+ "type": "string",
+ "x-example": "2026020262"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/nhl.gamecenterResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get NHL game boxscore",
+ "tags": [
+ "NHL"
+ ]
+ }
+ },
+ "/nhl/gamecenter/play-by-play": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the upstream gamecenter play-by-play for one NHL game ID, preserving the source event sequence and team/player fields.",
+ "operationId": "nhl-gamecenter-play-by-play",
+ "parameters": [
+ {
+ "description": "10-digit NHL game ID",
+ "in": "query",
+ "name": "game_id",
+ "required": true,
+ "type": "string",
+ "x-example": "2026020262"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/nhl.gamecenterResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get NHL game play by play",
+ "tags": [
+ "NHL"
+ ]
+ }
+ },
+ "/nhl/schedule": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the NHL schedule resource for the requested ISO date. Omitting date uses the upstream `now` resource. The response preserves game IDs, game state, and source schedule structure.",
+ "operationId": "nhl-schedule",
+ "parameters": [
+ {
+ "description": "ISO date (YYYY-MM-DD); defaults to now",
+ "in": "query",
+ "name": "date",
+ "type": "string",
+ "x-example": "2026-11-06"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/nhl.scheduleResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get NHL schedule",
+ "tags": [
+ "NHL"
+ ]
+ }
+ },
+ "/nhl/seasons": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the NHL API's native season catalog without additional filtering or derived fields.",
+ "operationId": "nhl-seasons",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List NHL seasons",
+ "tags": [
+ "NHL"
+ ]
+ }
+ },
+ "/nhl/standings": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns the NHL standings resource for the requested ISO date. Omitting date uses the upstream `now` resource. The response preserves NHL team IDs, standings fields, and source dates.",
+ "operationId": "nhl-standings",
+ "parameters": [
+ {
+ "description": "ISO date (YYYY-MM-DD); defaults to now",
+ "in": "query",
+ "name": "date",
+ "type": "string",
+ "x-example": "2026-11-06"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/nhl.standingsResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get NHL standings",
+ "tags": [
+ "NHL"
+ ]
+ }
+ },
"/nike/categories": {
"get": {
"consumes": [
@@ -571545,6 +574409,707 @@
]
}
},
+ "/serebii/pokemongo/communityday/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Community Day detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-community-day",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Community Day list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO Community Day page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/event-categories": {
+ "get": {
+ "description": "Returns the nine native event category pages linked from the Pokémon GO event index.",
+ "operationId": "serebii-pokemongo-event-categories",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.EventCategoriesResponse"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Serebii Pokémon GO event category pages",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/event-only-moves": {
+ "get": {
+ "description": "Returns Serebii's Fast Attacks and Charge Attacks tables for moves identified as event-only.",
+ "operationId": "serebii-pokemongo-event-only-moves",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.EventOnlyMovesResponse"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Serebii Pokémon GO event-only move tables",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/event-only-research": {
+ "get": {
+ "description": "Returns the rows from Serebii's Event Only Field Research table.",
+ "operationId": "serebii-pokemongo-event-only-research",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.EventOnlyResearchResponse"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Serebii Pokémon GO event-only field research",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/events": {
+ "get": {
+ "description": "Returns the rows from one native Serebii Pokémon GO event category page, preserving source order and date labels.",
+ "operationId": "serebii-pokemongo-events",
+ "parameters": [
+ {
+ "description": "Native event page filename from event-categories",
+ "enum": [
+ "events.shtml",
+ "reallifeevents.shtml",
+ "ticketevents.shtml",
+ "communityday.shtml",
+ "raidday.shtml",
+ "maxbattleday.shtml",
+ "incenseday.shtml",
+ "limitedresearchday.shtml",
+ "hatchday.shtml"
+ ],
+ "in": "query",
+ "name": "category",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.EventsResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List events from a Serebii Pokémon GO category page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/events/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Global Events detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-global",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Global Events list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO global event page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/hatchday/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Hatch Day detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-hatch-day",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Hatch Day list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO Hatch Day page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/incenseday/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Incense Day detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-incense-day",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Incense Day list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO Incense Day page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/limitedresearchday/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Research Day detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-research-day",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Research Day list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO Research Day page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/maxbattleday/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Max Battle Day detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-max-battle-day",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Max Battle Day list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO Max Battle Day page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/raidday/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Raid Day detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-raid-day",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Raid Day list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO Raid Day page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/reallifeevents/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Real Life Events detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-real-life",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Real Life Events list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO real-life event page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/spotlight-hours": {
+ "get": {
+ "description": "Returns rows from Serebii's historical Spotlight Hour table. The source dates are labels and do not represent a current or future schedule.",
+ "operationId": "serebii-pokemongo-spotlight-hours",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.SpotlightHoursResponse"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Serebii Pokémon GO Spotlight Hour archive rows",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/ticketevents/{filename}": {
+ "get": {
+ "description": "Returns the public tables from one native Ticket Events detail page. Linked pages and media are not fetched.",
+ "operationId": "serebii-pokemongo-event-detail-ticket",
+ "parameters": [
+ {
+ "description": "Native event page filename returned by the Ticket Events list",
+ "in": "path",
+ "name": "filename",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.NativeEventDetailResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get a Serebii Pokémon GO ticket event page",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
+ "/serebii/pokemongo/unown-events": {
+ "get": {
+ "description": "Returns the rows from Serebii's Unown Event Locations archive, including source date, event, locations, letters, and restrictions.",
+ "operationId": "serebii-pokemongo-unown-events",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/serebii.UnownEventsResponse"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "List Serebii Pokémon GO Unown event locations",
+ "tags": [
+ "Serebii"
+ ]
+ }
+ },
"/sevennewsau/article": {
"get": {
"description": "Returns public 7NEWS article metadata and body paragraphs from a canonical 7news.com.au article URL. 7NEWS articles are free to read; a non-free content tier, if one ever appears, is flagged as paywalled.",
diff --git a/src/main/java/net/crawlora/ClientGroups.java b/src/main/java/net/crawlora/ClientGroups.java
index 8ca0d30..f7b283b 100644
--- a/src/main/java/net/crawlora/ClientGroups.java
+++ b/src/main/java/net/crawlora/ClientGroups.java
@@ -1058,6 +1058,14 @@ public ENewsGroup eNews() {
return new ENewsGroup((CrawloraClient) this);
}
+ /**
+ * Typed accessor for the "epicGamesStore" operation group.
+ * @return a new {@link EpicGamesStoreGroup} bound to this client
+ */
+ public EpicGamesStoreGroup epicGamesStore() {
+ return new EpicGamesStoreGroup((CrawloraClient) this);
+ }
+
/**
* Typed accessor for the "espn" operation group.
* @return a new {@link EspnGroup} bound to this client
@@ -1602,6 +1610,14 @@ public HealthgradesGroup healthgrades() {
return new HealthgradesGroup((CrawloraClient) this);
}
+ /**
+ * Typed accessor for the "hearthstone" operation group.
+ * @return a new {@link HearthstoneGroup} bound to this client
+ */
+ public HearthstoneGroup hearthstone() {
+ return new HearthstoneGroup((CrawloraClient) this);
+ }
+
/**
* Typed accessor for the "hermes" operation group.
* @return a new {@link HermesGroup} bound to this client
@@ -2410,6 +2426,14 @@ public NfhsGroup nfhs() {
return new NfhsGroup((CrawloraClient) this);
}
+ /**
+ * Typed accessor for the "nhl" operation group.
+ * @return a new {@link NhlGroup} bound to this client
+ */
+ public NhlGroup nhl() {
+ return new NhlGroup((CrawloraClient) this);
+ }
+
/**
* Typed accessor for the "nike" operation group.
* @return a new {@link NikeGroup} bound to this client
@@ -3122,6 +3146,14 @@ public SephoraGroup sephora() {
return new SephoraGroup((CrawloraClient) this);
}
+ /**
+ * Typed accessor for the "serebii" operation group.
+ * @return a new {@link SerebiiGroup} bound to this client
+ */
+ public SerebiiGroup serebii() {
+ return new SerebiiGroup((CrawloraClient) this);
+ }
+
/**
* Typed accessor for the "sevenNewsAustralia" operation group.
* @return a new {@link SevenNewsAustraliaGroup} bound to this client
diff --git a/src/main/java/net/crawlora/OperationId.java b/src/main/java/net/crawlora/OperationId.java
index 4715bd8..5bae4d3 100644
--- a/src/main/java/net/crawlora/OperationId.java
+++ b/src/main/java/net/crawlora/OperationId.java
@@ -1069,6 +1069,7 @@ private OperationId() {}
public static final String ENTERTAINMENT_WEEKLY_EW_HEADLINES = "ew-headlines";
public static final String ENTERTAINMENT_WEEKLY_EW_NEWS = "ew-news";
public static final String ENTERTAINMENT_WEEKLY_EW_SECTIONS = "ew-sections";
+ public static final String EPIC_GAMES_STORE_EPICGAMES_FREE_PROMOTIONS = "epicgames-free-promotions";
public static final String ESPN_ATHLETE = "espn-athlete";
public static final String ESPN_GAME_SUMMARY = "espn-game-summary";
public static final String ESPN_NEWS = "espn-news";
@@ -1834,6 +1835,9 @@ private OperationId() {}
public static final String HEALTHGRADES_PHYSICIANS_SEARCH = "healthgrades-physicians-search";
public static final String HEALTHGRADES_SPECIALTIES = "healthgrades-specialties";
public static final String HEALTHGRADES_TOP_SEARCHES = "healthgrades-top-searches";
+ public static final String HEARTHSTONE_CARD = "hearthstone-card";
+ public static final String HEARTHSTONE_CARDS = "hearthstone-cards";
+ public static final String HEARTHSTONE_FILTERS = "hearthstone-filters";
public static final String HERMES_CATEGORIES = "hermes-categories";
public static final String HERMES_CATEGORY = "hermes-category";
public static final String HERMES_PRODUCT = "hermes-product";
@@ -2571,16 +2575,23 @@ private OperationId() {}
public static final String NBA_GAMES = "nba-games";
public static final String NBA_HOMEPAGE_LEADERS = "nba-homepage-leaders";
public static final String NBA_HUSTLE_STATS = "nba-hustle-stats";
+ public static final String NBA_HUSTLE_TEAM = "nba-hustle-team";
public static final String NBA_LEAGUE_GAME_LOG = "nba-league-game-log";
public static final String NBA_LINEUPS = "nba-lineups";
public static final String NBA_NEWS = "nba-news";
+ public static final String NBA_OPP_PT_SHOT = "nba-opp-pt-shot";
public static final String NBA_PLAY_BY_PLAY = "nba-play-by-play";
public static final String NBA_PLAYER_AWARDS = "nba-player-awards";
public static final String NBA_PLAYER_BIO_STATS = "nba-player-bio-stats";
public static final String NBA_PLAYER_CAREER_STATS = "nba-player-career-stats";
+ public static final String NBA_PLAYER_CLUTCH = "nba-player-clutch";
public static final String NBA_PLAYER_DASH_PT_SHOTS = "nba-player-dash-pt-shots";
+ public static final String NBA_PLAYER_GAME_LOGS = "nba-player-game-logs";
public static final String NBA_PLAYER_INFO = "nba-player-info";
+ public static final String NBA_PLAYER_PROFILE_V2 = "nba-player-profile-v2";
+ public static final String NBA_PLAYER_PT_SHOT = "nba-player-pt-shot";
public static final String NBA_PLAYER_STATS = "nba-player-stats";
+ public static final String NBA_PLAYER_STREAK_FINDER = "nba-player-streak-finder";
public static final String NBA_PLAYERS = "nba-players";
public static final String NBA_PLAYOFF_PICTURE = "nba-playoff-picture";
public static final String NBA_PT_DEFEND = "nba-pt-defend";
@@ -2588,11 +2599,18 @@ private OperationId() {}
public static final String NBA_SCOREBOARD = "nba-scoreboard";
public static final String NBA_STANDINGS = "nba-standings";
public static final String NBA_SYNERGY_PLAY_TYPES = "nba-synergy-play-types";
+ public static final String NBA_TEAM_DASH_PT_PASS = "nba-team-dash-pt-pass";
+ public static final String NBA_TEAM_DASH_PT_SHOTS = "nba-team-dash-pt-shots";
public static final String NBA_TEAM_DETAILS = "nba-team-details";
+ public static final String NBA_TEAM_GAME_LOGS = "nba-team-game-logs";
+ public static final String NBA_TEAM_INFO_COMMON = "nba-team-info-common";
+ public static final String NBA_TEAM_ON_OFF = "nba-team-on-off";
+ public static final String NBA_TEAM_PT_SHOT = "nba-team-pt-shot";
public static final String NBA_TEAM_ROSTER = "nba-team-roster";
public static final String NBA_TEAM_SHOT_LOCATIONS = "nba-team-shot-locations";
public static final String NBA_TEAM_STATS = "nba-team-stats";
public static final String NBA_TEAM_STATS_LEADERS = "nba-team-stats-leaders";
+ public static final String NBA_TEAM_YEARS = "nba-team-years";
public static final String NBC_NEWS_CALL = "nbc-news";
public static final String NBC_NEWS_NBC_ARTICLE = "nbc-article";
public static final String NBC_NEWS_NBC_AUTHOR = "nbc-author";
@@ -2679,6 +2697,11 @@ private OperationId() {}
public static final String NFHS_SPORTS = "nfhs-sports";
public static final String NFHS_STATES = "nfhs-states";
public static final String NFHS_SUGGEST = "nfhs-suggest";
+ public static final String NHL_GAMECENTER_BOXSCORE = "nhl-gamecenter-boxscore";
+ public static final String NHL_GAMECENTER_PLAY_BY_PLAY = "nhl-gamecenter-play-by-play";
+ public static final String NHL_SCHEDULE = "nhl-schedule";
+ public static final String NHL_SEASONS = "nhl-seasons";
+ public static final String NHL_STANDINGS = "nhl-standings";
public static final String NIKE_CATEGORIES = "nike-categories";
public static final String NIKE_PRODUCT = "nike-product";
public static final String NIKE_PRODUCT_AVAILABILITY = "nike-product-availability";
@@ -3432,6 +3455,21 @@ private OperationId() {}
public static final String SEPHORA_SEARCH = "sephora-search";
public static final String SEPHORA_STORES = "sephora-stores";
public static final String SEPHORA_SUGGEST = "sephora-suggest";
+ public static final String SEREBII_POKEMONGO_EVENT_CATEGORIES = "serebii-pokemongo-event-categories";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_COMMUNITY_DAY = "serebii-pokemongo-event-detail-community-day";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_GLOBAL = "serebii-pokemongo-event-detail-global";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_HATCH_DAY = "serebii-pokemongo-event-detail-hatch-day";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_INCENSE_DAY = "serebii-pokemongo-event-detail-incense-day";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_MAX_BATTLE_DAY = "serebii-pokemongo-event-detail-max-battle-day";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_RAID_DAY = "serebii-pokemongo-event-detail-raid-day";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_REAL_LIFE = "serebii-pokemongo-event-detail-real-life";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_RESEARCH_DAY = "serebii-pokemongo-event-detail-research-day";
+ public static final String SEREBII_POKEMONGO_EVENT_DETAIL_TICKET = "serebii-pokemongo-event-detail-ticket";
+ public static final String SEREBII_POKEMONGO_EVENT_ONLY_MOVES = "serebii-pokemongo-event-only-moves";
+ public static final String SEREBII_POKEMONGO_EVENT_ONLY_RESEARCH = "serebii-pokemongo-event-only-research";
+ public static final String SEREBII_POKEMONGO_EVENTS = "serebii-pokemongo-events";
+ public static final String SEREBII_POKEMONGO_SPOTLIGHT_HOURS = "serebii-pokemongo-spotlight-hours";
+ public static final String SEREBII_POKEMONGO_UNOWN_EVENTS = "serebii-pokemongo-unown-events";
public static final String SEVEN_NEWS_AUSTRALIA_ARTICLE = "sevennewsau-article";
public static final String SEVEN_NEWS_AUSTRALIA_AUTHOR = "sevennewsau-author";
public static final String SEVEN_NEWS_AUSTRALIA_HEADLINES = "sevennewsau-headlines";
diff --git a/src/main/java/net/crawlora/Operations.java b/src/main/java/net/crawlora/Operations.java
index 5be0483..60461bd 100644
--- a/src/main/java/net/crawlora/Operations.java
+++ b/src/main/java/net/crawlora/Operations.java
@@ -15,7 +15,7 @@ public final class Operations {
private Operations() {}
/** Total number of operations in the contract. */
- public static final int OPERATION_COUNT = 4731;
+ public static final int OPERATION_COUNT = 4769;
/** Immutable map of operation id to its runtime metadata. */
public static final Map OPERATIONS = buildOperations();
@@ -104,6 +104,7 @@ private static Map buildOperations() {
putOperations76(m);
putOperations77(m);
putOperations78(m);
+ putOperations79(m);
return Map.copyOf(m);
}
@@ -16576,6 +16577,21 @@ private static void putOperations18(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("epicgames-free-promotions", new Operation(
+ "epicgames-free-promotions",
+ "GET",
+ "/epicgames/free-promotions",
+ List.of(),
+ List.of(
+ new QueryParam("locale", false, "string", List.of()),
+ new QueryParam("country", false, "string", List.of()),
+ new QueryParam("allowCountries", false, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("espn-athlete", new Operation(
"espn-athlete",
"GET",
@@ -17311,6 +17327,9 @@ private static void putOperations18(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations19(Map m) {
m.put("faceit-best-clips", new Operation(
"faceit-best-clips",
"GET",
@@ -17328,9 +17347,6 @@ private static void putOperations18(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations19(Map m) {
m.put("faceit-championship", new Operation(
"faceit-championship",
"GET",
@@ -18172,6 +18188,9 @@ private static void putOperations19(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations20(Map m) {
m.put("fanduel-casino-category", new Operation(
"fanduel-casino-category",
"GET",
@@ -18191,9 +18210,6 @@ private static void putOperations19(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations20(Map m) {
m.put("fanduel-casino-game", new Operation(
"fanduel-casino-game",
"GET",
@@ -19103,6 +19119,9 @@ private static void putOperations20(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations21(Map m) {
m.put("fanduel-sportsbook-sports", new Operation(
"fanduel-sportsbook-sports",
"GET",
@@ -19116,9 +19135,6 @@ private static void putOperations20(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations21(Map m) {
m.put("fanduel-sportsbook-standings", new Operation(
"fanduel-sportsbook-standings",
"GET",
@@ -19938,6 +19954,9 @@ private static void putOperations21(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations22(Map m) {
m.put("fiverr-search", new Operation(
"fiverr-search",
"GET",
@@ -19952,9 +19971,6 @@ private static void putOperations21(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations22(Map m) {
m.put("fiverr-seller", new Operation(
"fiverr-seller",
"GET",
@@ -20745,6 +20761,9 @@ private static void putOperations22(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations23(Map m) {
m.put("flickreels-classify", new Operation(
"flickreels-classify",
"GET",
@@ -20761,9 +20780,6 @@ private static void putOperations22(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations23(Map m) {
m.put("flickreels-genres", new Operation(
"flickreels-genres",
"GET",
@@ -21573,6 +21589,9 @@ private static void putOperations23(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations24(Map m) {
m.put("fortune-company-filters", new Operation(
"fortune-company-filters",
"GET",
@@ -21585,9 +21604,6 @@ private static void putOperations23(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations24(Map m) {
m.put("fortune-company", new Operation(
"fortune-company",
"GET",
@@ -22401,6 +22417,9 @@ private static void putOperations24(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("start")));
+ }
+
+ private static void putOperations25(Map m) {
m.put("fresha-venue", new Operation(
"fresha-venue",
"GET",
@@ -22414,9 +22433,6 @@ private static void putOperations24(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations25(Map m) {
m.put("ft-article", new Operation(
"ft-article",
"GET",
@@ -23281,6 +23297,9 @@ private static void putOperations25(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations26(Map m) {
m.put("gamesradar-article", new Operation(
"gamesradar-article",
"GET",
@@ -23294,9 +23313,6 @@ private static void putOperations25(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations26(Map m) {
m.put("gamesradar-author", new Operation(
"gamesradar-author",
"GET",
@@ -24204,6 +24220,9 @@ private static void putOperations26(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations27(Map m) {
m.put("globalnews-sections", new Operation(
"globalnews-sections",
"GET",
@@ -24216,9 +24235,6 @@ private static void putOperations26(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations27(Map m) {
m.put("globeandmail-article", new Operation(
"globeandmail-article",
"GET",
@@ -25050,6 +25066,9 @@ private static void putOperations27(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations28(Map m) {
m.put("goodrx-drugs", new Operation(
"goodrx-drugs",
"GET",
@@ -25063,9 +25082,6 @@ private static void putOperations27(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations28(Map m) {
m.put("goodrx-health-article", new Operation(
"goodrx-health-article",
"GET",
@@ -25869,6 +25885,9 @@ private static void putOperations28(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations29(Map m) {
m.put("googleplay-reviews", new Operation(
"googleplay-reviews",
"GET",
@@ -25888,9 +25907,6 @@ private static void putOperations28(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations29(Map m) {
m.put("googleplay-search", new Operation(
"googleplay-search",
"GET",
@@ -26766,6 +26782,9 @@ private static void putOperations29(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations30(Map m) {
m.put("gucci-categories", new Operation(
"gucci-categories",
"GET",
@@ -26779,9 +26798,6 @@ private static void putOperations29(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations30(Map m) {
m.put("gucci-category", new Operation(
"gucci-category",
"GET",
@@ -27402,6 +27418,78 @@ private static void putOperations30(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("hearthstone-card", new Operation(
+ "hearthstone-card",
+ "GET",
+ "/hearthstone/card",
+ List.of(),
+ List.of(
+ new QueryParam("id", true, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("hearthstone-cards", new Operation(
+ "hearthstone-cards",
+ "GET",
+ "/hearthstone/cards",
+ List.of(),
+ List.of(
+ new QueryParam("page", false, "integer", List.of()),
+ new QueryParam("pageSize", false, "integer", List.of()),
+ new QueryParam("locale", false, "string", List.of()),
+ new QueryParam("class", false, "string", List.of()),
+ new QueryParam("set", false, "string", List.of()),
+ new QueryParam("sort", false, "string", List.of()),
+ new QueryParam("order", false, "string", List.of("asc", "desc")),
+ new QueryParam("gameMode", false, "string", List.of()),
+ new QueryParam("collectible", false, "array", List.of("0", "1")),
+ new QueryParam("textFilter", false, "string", List.of()),
+ new QueryParam("filterLocale", false, "string", List.of()),
+ new QueryParam("deckcode", false, "string", List.of()),
+ new QueryParam("cardSetId", false, "array", List.of()),
+ new QueryParam("spellSchoolId", false, "array", List.of()),
+ new QueryParam("rarityId", false, "array", List.of()),
+ new QueryParam("cardTypeId", false, "array", List.of()),
+ new QueryParam("manaCost", false, "array", List.of()),
+ new QueryParam("attack", false, "array", List.of()),
+ new QueryParam("health", false, "array", List.of()),
+ new QueryParam("armor", false, "array", List.of()),
+ new QueryParam("rarity", false, "string", List.of()),
+ new QueryParam("type", false, "array", List.of()),
+ new QueryParam("bgCardType", false, "string", List.of()),
+ new QueryParam("keyword", false, "string", List.of()),
+ new QueryParam("minionType", false, "string", List.of()),
+ new QueryParam("deckFormat", false, "string", List.of()),
+ new QueryParam("tier", false, "array", List.of("1", "2", "3", "4", "5", "6", "7")),
+ new QueryParam("mercenaryRole", false, "string", List.of()),
+ new QueryParam("mercenaryFaction", false, "string", List.of()),
+ new QueryParam("viewMode", false, "string", List.of("grid", "table")),
+ new QueryParam("cardBackCategory", false, "string", List.of()),
+ new QueryParam("spellSchool", false, "string", List.of()),
+ new QueryParam("faction", false, "string", List.of()),
+ new QueryParam("bgGameMode", false, "string", List.of()),
+ new QueryParam("zilliaxMod", false, "boolean", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ true,
+ List.of()));
+ m.put("hearthstone-filters", new Operation(
+ "hearthstone-filters",
+ "GET",
+ "/hearthstone/filters",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("hermes-categories", new Operation(
"hermes-categories",
"GET",
@@ -27570,6 +27658,9 @@ private static void putOperations30(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations31(Map m) {
m.put("hindustantimes-sections", new Operation(
"hindustantimes-sections",
"GET",
@@ -27622,9 +27713,6 @@ private static void putOperations30(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations31(Map m) {
m.put("hltv-matches", new Operation(
"hltv-matches",
"GET",
@@ -28372,6 +28460,9 @@ private static void putOperations31(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations32(Map m) {
m.put("imdb-charts", new Operation(
"imdb-charts",
"GET",
@@ -28426,9 +28517,6 @@ private static void putOperations31(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations32(Map m) {
m.put("imdb-name-credits", new Operation(
"imdb-name-credits",
"GET",
@@ -29218,6 +29306,9 @@ private static void putOperations32(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations33(Map m) {
m.put("inquirer-article", new Operation(
"inquirer-article",
"GET",
@@ -29270,9 +29361,6 @@ private static void putOperations32(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations33(Map m) {
m.put("inquirer-sections", new Operation(
"inquirer-sections",
"GET",
@@ -30010,6 +30098,9 @@ private static void putOperations33(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations34(Map m) {
m.put("jcrew-size-chart", new Operation(
"jcrew-size-chart",
"GET",
@@ -30066,9 +30157,6 @@ private static void putOperations33(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations34(Map m) {
m.put("jerusalempost-author", new Operation(
"jerusalempost-author",
"GET",
@@ -30902,6 +30990,9 @@ private static void putOperations34(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations35(Map m) {
m.put("justwatch-genre-titles", new Operation(
"justwatch-genre-titles",
"GET",
@@ -30965,9 +31056,6 @@ private static void putOperations34(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations35(Map m) {
m.put("justwatch-popular", new Operation(
"justwatch-popular",
"GET",
@@ -31781,6 +31869,9 @@ private static void putOperations35(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations36(Map m) {
m.put("kick-clips", new Operation(
"kick-clips",
"GET",
@@ -31833,9 +31924,6 @@ private static void putOperations35(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations36(Map m) {
m.put("kick-livestreams", new Operation(
"kick-livestreams",
"GET",
@@ -32635,6 +32723,9 @@ private static void putOperations36(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations37(Map m) {
m.put("kyliecosmetics-sitemap-urls", new Operation(
"kyliecosmetics-sitemap-urls",
"GET",
@@ -32686,9 +32777,6 @@ private static void putOperations36(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations37(Map m) {
m.put("latimes-author", new Operation(
"latimes-author",
"GET",
@@ -33436,6 +33524,9 @@ private static void putOperations37(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations38(Map m) {
m.put("lolesports-game-details", new Operation(
"lolesports-game-details",
"GET",
@@ -33494,9 +33585,6 @@ private static void putOperations37(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations38(Map m) {
m.put("lolesports-live", new Operation(
"lolesports-live",
"GET",
@@ -34263,6 +34351,9 @@ private static void putOperations38(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations39(Map m) {
m.put("maxpreps-school", new Operation(
"maxpreps-school",
"GET",
@@ -34337,9 +34428,6 @@ private static void putOperations38(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations39(Map m) {
m.put("maxpreps-school-seasons", new Operation(
"maxpreps-school-seasons",
"GET",
@@ -35117,6 +35205,9 @@ private static void putOperations39(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations40(Map m) {
m.put("metaculus-question", new Operation(
"metaculus-question",
"GET",
@@ -35167,9 +35258,6 @@ private static void putOperations39(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations40(Map m) {
m.put("metaculus-question-options", new Operation(
"metaculus-question-options",
"GET",
@@ -36163,6 +36251,9 @@ private static void putOperations40(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations41(Map m) {
m.put("mlb-statcast-catcher-framing-details", new Operation(
"mlb-statcast-catcher-framing-details",
"GET",
@@ -36267,9 +36358,6 @@ private static void putOperations40(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations41(Map m) {
m.put("mlb-statcast-catcher-throwing-details", new Operation(
"mlb-statcast-catcher-throwing-details",
"GET",
@@ -37317,6 +37405,9 @@ private static void putOperations41(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations42(Map m) {
m.put("modrinth-search", new Operation(
"modrinth-search",
"GET",
@@ -37370,9 +37461,6 @@ private static void putOperations41(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations42(Map m) {
m.put("modrinth-forge-updates", new Operation(
"modrinth-forge-updates",
"GET",
@@ -38105,6 +38193,9 @@ private static void putOperations42(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations43(Map m) {
m.put("nascar-races", new Operation(
"nascar-races",
"GET",
@@ -38154,9 +38245,6 @@ private static void putOperations42(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations43(Map m) {
m.put("nationafrica-article", new Operation(
"nationafrica-article",
"GET",
@@ -38568,6 +38656,22 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-hustle-team", new Operation(
+ "nba-hustle-team",
+ "GET",
+ "/nba/hustle-team",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-league-game-log", new Operation(
"nba-league-game-log",
"GET",
@@ -38616,6 +38720,22 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-opp-pt-shot", new Operation(
+ "nba-opp-pt-shot",
+ "GET",
+ "/nba/opp-pt-shot",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-play-by-play", new Operation(
"nba-play-by-play",
"GET",
@@ -38675,6 +38795,26 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-player-clutch", new Operation(
+ "nba-player-clutch",
+ "GET",
+ "/nba/player-clutch",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession")),
+ new QueryParam("measure_type", false, "string", List.of("Base", "Advanced", "Misc", "Scoring", "Defense", "Opponent")),
+ new QueryParam("clutch_time", false, "string", List.of("Last 5 Minutes")),
+ new QueryParam("ahead_behind", false, "string", List.of("Ahead or Behind")),
+ new QueryParam("point_diff", false, "integer", List.of("5"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-player-dash-pt-shots", new Operation(
"nba-player-dash-pt-shots",
"GET",
@@ -38692,6 +38832,22 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-player-game-logs", new Operation(
+ "nba-player-game-logs",
+ "GET",
+ "/nba/player-game-logs",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("player_id", true, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-player-info", new Operation(
"nba-player-info",
"GET",
@@ -38706,6 +38862,36 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-player-profile-v2", new Operation(
+ "nba-player-profile-v2",
+ "GET",
+ "/nba/player-profile-v2",
+ List.of(),
+ List.of(
+ new QueryParam("player_id", true, "integer", List.of()),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nba-player-pt-shot", new Operation(
+ "nba-player-pt-shot",
+ "GET",
+ "/nba/player-pt-shot",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-player-stats", new Operation(
"nba-player-stats",
"GET",
@@ -38723,6 +38909,23 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-player-streak-finder", new Operation(
+ "nba-player-streak-finder",
+ "GET",
+ "/nba/player-streak-finder",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("player_id", false, "integer", List.of()),
+ new QueryParam("min_games", false, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-players", new Operation(
"nba-players",
"GET",
@@ -38836,6 +39039,43 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-team-dash-pt-pass", new Operation(
+ "nba-team-dash-pt-pass",
+ "GET",
+ "/nba/team-dash-pt-pass",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession")),
+ new QueryParam("team_id", true, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nba-team-dash-pt-shots", new Operation(
+ "nba-team-dash-pt-shots",
+ "GET",
+ "/nba/team-dash-pt-shots",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession")),
+ new QueryParam("team_id", true, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ }
+
+ private static void putOperations44(Map m) {
m.put("nba-team-details", new Operation(
"nba-team-details",
"GET",
@@ -38850,6 +39090,72 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-team-game-logs", new Operation(
+ "nba-team-game-logs",
+ "GET",
+ "/nba/team-game-logs",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("team_id", true, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nba-team-info-common", new Operation(
+ "nba-team-info-common",
+ "GET",
+ "/nba/team-info-common",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("team_id", true, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nba-team-on-off", new Operation(
+ "nba-team-on-off",
+ "GET",
+ "/nba/team-on-off",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession")),
+ new QueryParam("measure_type", false, "string", List.of("Base", "Advanced", "Misc", "Scoring", "Defense", "Opponent")),
+ new QueryParam("team_id", true, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nba-team-pt-shot", new Operation(
+ "nba-team-pt-shot",
+ "GET",
+ "/nba/team-pt-shot",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00")),
+ new QueryParam("season", false, "string", List.of()),
+ new QueryParam("season_type", false, "string", List.of("Regular Season", "Playoffs", "Pre Season", "All Star")),
+ new QueryParam("per_mode", false, "string", List.of("PerGame", "Totals", "Per36", "Per48", "Per100Possessions", "MinutesPer", "PerPossession"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nba-team-roster", new Operation(
"nba-team-roster",
"GET",
@@ -38918,6 +39224,19 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nba-team-years", new Operation(
+ "nba-team-years",
+ "GET",
+ "/nba/team-years",
+ List.of(),
+ List.of(
+ new QueryParam("league_id", false, "string", List.of("00"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nbc-article", new Operation(
"nbc-article",
"GET",
@@ -39021,9 +39340,6 @@ private static void putOperations43(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations44(Map m) {
m.put("ndtv-latest-videos", new Operation(
"ndtv-latest-videos",
"GET",
@@ -39569,6 +39885,9 @@ private static void putOperations44(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations45(Map m) {
m.put("newyorker-author", new Operation(
"newyorker-author",
"GET",
@@ -39839,9 +40158,6 @@ private static void putOperations44(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("start", "cursor")));
- }
-
- private static void putOperations45(Map m) {
m.put("nfhs-sports", new Operation(
"nfhs-sports",
"GET",
@@ -39881,6 +40197,70 @@ private static void putOperations45(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("nhl-gamecenter-boxscore", new Operation(
+ "nhl-gamecenter-boxscore",
+ "GET",
+ "/nhl/gamecenter/boxscore",
+ List.of(),
+ List.of(
+ new QueryParam("game_id", true, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nhl-gamecenter-play-by-play", new Operation(
+ "nhl-gamecenter-play-by-play",
+ "GET",
+ "/nhl/gamecenter/play-by-play",
+ List.of(),
+ List.of(
+ new QueryParam("game_id", true, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nhl-schedule", new Operation(
+ "nhl-schedule",
+ "GET",
+ "/nhl/schedule",
+ List.of(),
+ List.of(
+ new QueryParam("date", false, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nhl-seasons", new Operation(
+ "nhl-seasons",
+ "GET",
+ "/nhl/seasons",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("nhl-standings", new Operation(
+ "nhl-standings",
+ "GET",
+ "/nhl/standings",
+ List.of(),
+ List.of(
+ new QueryParam("date", false, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("nike-categories", new Operation(
"nike-categories",
"GET",
@@ -40325,6 +40705,9 @@ private static void putOperations45(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations46(Map m) {
m.put("nydailynews-author", new Operation(
"nydailynews-author",
"GET",
@@ -40616,9 +40999,6 @@ private static void putOperations45(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations46(Map m) {
m.put("nzherald-sections", new Operation(
"nzherald-sections",
"GET",
@@ -41130,6 +41510,9 @@ private static void putOperations46(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations47(Map m) {
m.put("opendota-patch-notes", new Operation(
"opendota-patch-notes",
"GET",
@@ -41523,9 +41906,6 @@ private static void putOperations46(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations47(Map m) {
m.put("openf1-race-control", new Operation(
"openf1-race-control",
"GET",
@@ -42090,6 +42470,9 @@ private static void putOperations47(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations48(Map m) {
m.put("opensea-collection-holders", new Operation(
"opensea-collection-holders",
"GET",
@@ -42413,9 +42796,6 @@ private static void putOperations47(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("cursor")));
- }
-
- private static void putOperations48(Map m) {
m.put("opensea-profile-items", new Operation(
"opensea-profile-items",
"GET",
@@ -42929,6 +43309,9 @@ private static void putOperations48(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations49(Map m) {
m.put("papajohns-colombia-menu", new Operation(
"papajohns-colombia-menu",
"GET",
@@ -43256,9 +43639,6 @@ private static void putOperations48(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations49(Map m) {
m.put("partiful-city-feed", new Operation(
"partiful-city-feed",
"GET",
@@ -43771,6 +44151,9 @@ private static void putOperations49(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations50(Map m) {
m.put("pgatour-tournament-course-stats", new Operation(
"pgatour-tournament-course-stats",
"GET",
@@ -44061,9 +44444,6 @@ private static void putOperations49(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations50(Map m) {
m.put("physorg-news", new Operation(
"physorg-news",
"GET",
@@ -44591,6 +44971,9 @@ private static void putOperations50(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations51(Map m) {
m.put("polygon-article", new Operation(
"polygon-article",
"GET",
@@ -44931,9 +45314,6 @@ private static void putOperations50(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations51(Map m) {
m.put("polymarket-market-detail-by-condition", new Operation(
"polymarket-market-detail-by-condition",
"GET",
@@ -45445,6 +45825,9 @@ private static void putOperations51(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations52(Map m) {
m.put("polymarket-token-orderbook", new Operation(
"polymarket-token-orderbook",
"GET",
@@ -45755,9 +46138,6 @@ private static void putOperations51(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations52(Map m) {
m.put("poshmark-closet", new Operation(
"poshmark-closet",
"GET",
@@ -46288,6 +46668,9 @@ private static void putOperations52(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations53(Map m) {
m.put("producthunt-alternatives", new Operation(
"producthunt-alternatives",
"GET",
@@ -46599,9 +46982,6 @@ private static void putOperations52(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations53(Map m) {
m.put("psa-probatfacts-categories", new Operation(
"psa-probatfacts-categories",
"GET",
@@ -47095,6 +47475,9 @@ private static void putOperations53(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations54(Map m) {
m.put("raisingcanes-promotion", new Operation(
"raisingcanes-promotion",
"GET",
@@ -47398,9 +47781,6 @@ private static void putOperations53(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations54(Map m) {
m.put("rebag-sitemap-urls", new Operation(
"rebag-sitemap-urls",
"GET",
@@ -47957,6 +48337,9 @@ private static void putOperations54(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations55(Map m) {
m.put("reelshort-search", new Operation(
"reelshort-search",
"GET",
@@ -48271,9 +48654,6 @@ private static void putOperations54(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations55(Map m) {
m.put("resy-restaurant", new Operation(
"resy-restaurant",
"GET",
@@ -48815,6 +49195,9 @@ private static void putOperations55(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations56(Map m) {
m.put("rnz-article", new Operation(
"rnz-article",
"GET",
@@ -49119,9 +49502,6 @@ private static void putOperations55(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations56(Map m) {
m.put("rothys-sitemaps", new Operation(
"rothys-sitemaps",
"GET",
@@ -49678,6 +50058,9 @@ private static void putOperations56(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations57(Map m) {
m.put("rte-headlines", new Operation(
"rte-headlines",
"GET",
@@ -49967,9 +50350,6 @@ private static void putOperations56(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations57(Map m) {
m.put("scmp-article", new Operation(
"scmp-article",
"GET",
@@ -50489,6 +50869,9 @@ private static void putOperations57(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations58(Map m) {
m.put("sephora-category", new Operation(
"sephora-category",
"GET",
@@ -50602,6 +50985,187 @@ private static void putOperations57(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("serebii-pokemongo-event-detail-community-day", new Operation(
+ "serebii-pokemongo-event-detail-community-day",
+ "GET",
+ "/serebii/pokemongo/communityday/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-categories", new Operation(
+ "serebii-pokemongo-event-categories",
+ "GET",
+ "/serebii/pokemongo/event-categories",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-only-moves", new Operation(
+ "serebii-pokemongo-event-only-moves",
+ "GET",
+ "/serebii/pokemongo/event-only-moves",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-only-research", new Operation(
+ "serebii-pokemongo-event-only-research",
+ "GET",
+ "/serebii/pokemongo/event-only-research",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-events", new Operation(
+ "serebii-pokemongo-events",
+ "GET",
+ "/serebii/pokemongo/events",
+ List.of(),
+ List.of(
+ new QueryParam("category", true, "string", List.of("events.shtml", "reallifeevents.shtml", "ticketevents.shtml", "communityday.shtml", "raidday.shtml", "maxbattleday.shtml", "incenseday.shtml", "limitedresearchday.shtml", "hatchday.shtml"))),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-global", new Operation(
+ "serebii-pokemongo-event-detail-global",
+ "GET",
+ "/serebii/pokemongo/events/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-hatch-day", new Operation(
+ "serebii-pokemongo-event-detail-hatch-day",
+ "GET",
+ "/serebii/pokemongo/hatchday/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-incense-day", new Operation(
+ "serebii-pokemongo-event-detail-incense-day",
+ "GET",
+ "/serebii/pokemongo/incenseday/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-research-day", new Operation(
+ "serebii-pokemongo-event-detail-research-day",
+ "GET",
+ "/serebii/pokemongo/limitedresearchday/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-max-battle-day", new Operation(
+ "serebii-pokemongo-event-detail-max-battle-day",
+ "GET",
+ "/serebii/pokemongo/maxbattleday/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-raid-day", new Operation(
+ "serebii-pokemongo-event-detail-raid-day",
+ "GET",
+ "/serebii/pokemongo/raidday/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-real-life", new Operation(
+ "serebii-pokemongo-event-detail-real-life",
+ "GET",
+ "/serebii/pokemongo/reallifeevents/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-spotlight-hours", new Operation(
+ "serebii-pokemongo-spotlight-hours",
+ "GET",
+ "/serebii/pokemongo/spotlight-hours",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-event-detail-ticket", new Operation(
+ "serebii-pokemongo-event-detail-ticket",
+ "GET",
+ "/serebii/pokemongo/ticketevents/{filename}",
+ List.of("filename"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("serebii-pokemongo-unown-events", new Operation(
+ "serebii-pokemongo-unown-events",
+ "GET",
+ "/serebii/pokemongo/unown-events",
+ List.of(),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
m.put("sevennewsau-article", new Operation(
"sevennewsau-article",
"GET",
@@ -50809,9 +51373,6 @@ private static void putOperations57(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations58(Map m) {
m.put("shein-category-filters", new Operation(
"shein-category-filters",
"GET",
@@ -51111,6 +51672,9 @@ private static void putOperations58(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations59(Map m) {
m.put("shop-app-search", new Operation(
"shop-app-search",
"GET",
@@ -51657,9 +52221,6 @@ private static void putOperations58(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations59(Map m) {
m.put("skims-pages", new Operation(
"skims-pages",
"GET",
@@ -51943,6 +52504,9 @@ private static void putOperations59(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations60(Map m) {
m.put("slate-categories", new Operation(
"slate-categories",
"GET",
@@ -52447,9 +53011,6 @@ private static void putOperations59(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations60(Map m) {
m.put("sofascore-event-highlights", new Operation(
"sofascore-event-highlights",
"GET",
@@ -52743,6 +53304,9 @@ private static void putOperations60(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations61(Map m) {
m.put("sofascore-mma-card", new Operation(
"sofascore-mma-card",
"GET",
@@ -53268,9 +53832,6 @@ private static void putOperations60(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations61(Map m) {
m.put("sofascore-team", new Operation(
"sofascore-team",
"GET",
@@ -53590,6 +54151,9 @@ private static void putOperations61(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations62(Map m) {
m.put("sofascore-tournament-rounds", new Operation(
"sofascore-tournament-rounds",
"GET",
@@ -54114,9 +54678,6 @@ private static void putOperations61(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations62(Map m) {
m.put("sparkfun-product", new Operation(
"sparkfun-product",
"GET",
@@ -54465,6 +55026,9 @@ private static void putOperations62(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations63(Map m) {
m.put("sportingnews-news", new Operation(
"sportingnews-news",
"GET",
@@ -54988,9 +55552,6 @@ private static void putOperations62(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations63(Map m) {
m.put("sportskeeda-transactions", new Operation(
"sportskeeda-transactions",
"GET",
@@ -55328,6 +55889,9 @@ private static void putOperations63(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations64(Map m) {
m.put("spotify-albums-search", new Operation(
"spotify-albums-search",
"GET",
@@ -55933,9 +56497,6 @@ private static void putOperations63(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations64(Map m) {
m.put("startpage-suggest", new Operation(
"startpage-suggest",
"GET",
@@ -56279,6 +56840,9 @@ private static void putOperations64(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations65(Map m) {
m.put("steam-top-sellers", new Operation(
"steam-top-sellers",
"GET",
@@ -56849,9 +57413,6 @@ private static void putOperations64(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations65(Map m) {
m.put("stubhub-categories", new Operation(
"stubhub-categories",
"GET",
@@ -57163,6 +57724,9 @@ private static void putOperations65(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("cursor")));
+ }
+
+ private static void putOperations66(Map m) {
m.put("substack-notes", new Operation(
"substack-notes",
"GET",
@@ -57706,9 +58270,6 @@ private static void putOperations65(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations66(Map m) {
m.put("target-product", new Operation(
"target-product",
"GET",
@@ -58032,6 +58593,9 @@ private static void putOperations66(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations67(Map m) {
m.put("techradar-news", new Operation(
"techradar-news",
"GET",
@@ -58550,9 +59114,6 @@ private static void putOperations66(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations67(Map m) {
m.put("thebodyshop-page", new Operation(
"thebodyshop-page",
"GET",
@@ -58835,6 +59396,9 @@ private static void putOperations67(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations68(Map m) {
m.put("thehindu-sections", new Operation(
"thehindu-sections",
"GET",
@@ -59332,9 +59896,6 @@ private static void putOperations67(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations68(Map m) {
m.put("threads-post-replies", new Operation(
"threads-post-replies",
"GET",
@@ -59629,6 +60190,9 @@ private static void putOperations68(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations69(Map m) {
m.put("ticketmaster-venue-enhanced-details", new Operation(
"ticketmaster-venue-enhanced-details",
"GET",
@@ -60164,9 +60728,6 @@ private static void putOperations68(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations69(Map m) {
m.put("tiktok-mobile-live-room-by-user", new Operation(
"tiktok-mobile-live-room-by-user",
"GET",
@@ -60481,6 +61042,9 @@ private static void putOperations69(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("cursor")));
+ }
+
+ private static void putOperations70(Map m) {
m.put("tiktok-mobile-playlist-videos", new Operation(
"tiktok-mobile-playlist-videos",
"GET",
@@ -61041,9 +61605,6 @@ private static void putOperations69(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations70(Map m) {
m.put("tiktok-top-ads-recommend", new Operation(
"tiktok-top-ads-recommend",
"GET",
@@ -61326,6 +61887,9 @@ private static void putOperations70(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations71(Map m) {
m.put("timesofisrael-news", new Operation(
"timesofisrael-news",
"GET",
@@ -61848,9 +62412,6 @@ private static void putOperations70(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations71(Map m) {
m.put("torontostar-sections", new Operation(
"torontostar-sections",
"GET",
@@ -62182,6 +62743,9 @@ private static void putOperations71(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations72(Map m) {
m.put("trustpilot-business", new Operation(
"trustpilot-business",
"GET",
@@ -62712,9 +63276,6 @@ private static void putOperations71(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations72(Map m) {
m.put("usatoday-headlines", new Operation(
"usatoday-headlines",
"GET",
@@ -62993,6 +63554,9 @@ private static void putOperations72(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations73(Map m) {
m.put("vanguardng-sections", new Operation(
"vanguardng-sections",
"GET",
@@ -63508,9 +64072,6 @@ private static void putOperations72(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations73(Map m) {
m.put("vlr-match", new Operation(
"vlr-match",
"GET",
@@ -63814,6 +64375,9 @@ private static void putOperations73(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations74(Map m) {
m.put("vrbo-property", new Operation(
"vrbo-property",
"GET",
@@ -64340,9 +64904,6 @@ private static void putOperations73(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations74(Map m) {
m.put("wayfair-product", new Operation(
"wayfair-product",
"GET",
@@ -64623,6 +65184,9 @@ private static void putOperations74(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations75(Map m) {
m.put("wendys-directory", new Operation(
"wendys-directory",
"GET",
@@ -65136,9 +65700,6 @@ private static void putOperations74(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations75(Map m) {
m.put("wolt-search", new Operation(
"wolt-search",
"GET",
@@ -65470,6 +66031,9 @@ private static void putOperations75(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("cursor")));
+ }
+
+ private static void putOperations76(Map