Games & Matches API Endpoints
Overview
The GamesController provides endpoints for retrieving game/match information, scores, plays, and statistics. All endpoints support both /api/v1/... and /v1/... path prefixes.
Endpoint Summary
| Endpoint | Method | Description |
|---|---|---|
/v1/games |
GET | Get list of games (v1 format) |
/v2/games or /v2/matches |
GET | Get list of games (v2 format with picks/value grades) |
/v1/matches |
GET | Get list of matches with full details |
/v1/matches/{matchId} |
GET | Get single match by ID |
/v1/matches/{matchId}/plays |
GET | Get play-by-play for a match |
/v1/matches/{matchId}/plays/scoring |
GET | Get scoring plays only for a match |
/v1/matches/resolvers/party |
GET | Find match by team/party names |
/v1/matches/scores |
GET | Get match scores with live odds data |
/v1/matches/stats/{matchId} |
GET | Get match statistics |
/v1/matches/{matchId}/stats/teams |
GET | Get team stats for a match |
/v1/matches/league-season-match-periods |
GET | Get season match period stats |
Detailed Endpoint Documentation
1. GET /v1/games
Description: Retrieves a list of games in the v1 format. Lightweight response with basic game info.
Query Parameters: Uses Filter (currently no active filters defined)
Response: IEnumerable<Game>
| Field | Type | Description |
|---|---|---|
GameId |
long | Unique game identifier |
SportId |
long | Sport identifier |
Sport |
string | Sport name |
LeagueId |
long | League identifier |
League |
string | League name |
GameTime |
DateTime | Scheduled game time |
Status |
string | Current game status |
Score |
string | Current score display |
SwapTeams |
bool | Whether to swap home/away display |
Away |
Party | Away team info |
Home |
Party | Home team info |
GameIsPostponed |
bool | Whether game is postponed |
GameIsFinal |
bool | Whether game is final |
GameTeamScoreFirst |
int? | First team score |
GameTeamScoreSecond |
int? | Second team score |
GameLocationDisplay |
string | Venue name |
GameLocationCapacity |
long? | Venue capacity |
GameLocationGeoLocationLatitude |
double? | Venue latitude |
GameLocationGeoLocationLongitude |
double? | Venue longitude |
2. GET /v2/games or /v2/matches
Description: Retrieves games in v2 format with enhanced data including value grades, picks, and sport/league branding.
Query Parameters: Uses AppFilter (see Common Query Parameters below)
Response: List<GameV2>
| Field | Type | Description |
|---|---|---|
GameId |
long | Unique game identifier |
SportId |
long | Sport identifier |
Sport |
string | Sport name |
SportImageUrl |
string | Sport icon URL |
LeagueId |
long | League identifier |
League |
string | League name |
LeagueLogoUrl |
string | League logo URL |
GameTime |
string | Formatted game time |
NumberInDay |
long | Game number for doubleheaders |
Party1 |
Party | First team/party info |
Party2 |
Party | Second team/party info |
ValueGrades |
Dictionary | Value grades by market type |
Picks |
Dictionary | Pick recommendations by type |
Restricted |
bool | Whether content is restricted |
Postponed |
bool | Whether game is postponed |
Live |
bool | Whether game is in progress |
Final |
bool | Whether game is final |
3. GET /v1/matches
Description: Retrieves matches with full sport, league, match details, recent matches, fixtures, players, and market data.
Query Parameters: Uses AppFilter
Response: IEnumerable<MatchResponse>
| Field | Type | Description |
|---|---|---|
SportImageUrl |
string | Sport icon URL |
Sport |
Sport | Full sport object |
League |
League | Full league object |
Match |
Match | Match details (see Match object below) |
MatchRecent |
MatchResponse | Previous match data |
MatchFixture |
MatchResponse | Next fixture data |
Players |
PlayersResponse | Player information |
Markets |
Markets | Betting market data |
Match Object Fields:
Id,Time,TimeRaw,MatchStatus,TimePeriodStatusPostponed,Suspended,Final,LiveTelevisionChannels,Location,WeatherParty1,Party2,Team1,Team2NumberInDay,EventNameUrl,UrlMatchup,UrlRecap,UrlBoxscoreLastPlay,LivePlays,Markets
4. GET /v1/matches/{matchId}
Description: Retrieves a single match by its ID with full details.
Path Parameters:
matchId(long) - The match identifier
Query Parameters: Uses AppFilter
Response: MatchResponse (same structure as /v1/matches)
5. GET /v1/matches/{matchId}/plays
Description: Retrieves play-by-play data for a specific match.
Path Parameters:
matchId(long) - The match identifier
Query Parameters: Uses AppFilter
Response: MatchResponse with play-by-play data populated
6. GET /v1/matches/{matchId}/plays/scoring
Description: Retrieves only scoring plays for a match (touchdowns, goals, runs, etc.).
Path Parameters:
matchId(long) - The match identifier
Query Parameters: Uses AppFilter
Response: MatchPlaysScoring
| Field | Type | Description |
|---|---|---|
MatchScoringPlays |
List | Flat list of all scoring plays |
MatchPeriods |
List | Scoring plays organized by period/possession |
MatchPlaysScoringItem Fields:
Key,CrawlerDataTypeId,MatchIdScoringTeamId,ScoringTeamName,ScoringTeamColorHex,ScoringTeamLogoUrlGamePeriodHeaderText,GamePeriodText,GamePlayTime,GamePlayTimeStringGamePlaysScoringHeader,GamePlaysScoringText,GamePlaysResultText,GamePlaysResultColorHexAwayTeam,AwayTeamShort,AwayTeamLogoUrl,AwayTeamColorHex,AwayTeamScoreHomeTeam,HomeTeamShort,HomeTeamLogoUrl,HomeTeamColorHex,HomeTeamScore
7. GET /v1/matches/resolvers/party
Description: Finds a match by specifying team/party names instead of match ID. Useful when you know the teams but not the match ID.
Query Parameters: Uses AppFilter
PartyName1(string) - First team namePartyName2(string) - Second team name- Plus other filters like
Date,LeagueId, etc.
Response: MatchResponse
8. GET /v1/matches/scores
Description: Retrieves match scores with period-by-period breakdown and live odds data.
Query Parameters: Uses AppFilter
Response: MatchScoresResponse
| Field | Type | Description |
|---|---|---|
Sport |
Sport | Sport information |
League |
League | League information |
Match |
Match | Match details |
MatchScoresList |
List | Score breakdown by period |
LiveOddsDataItems |
Dictionary | Live odds movements |
Markets |
Markets | Current market data |
9. GET /v1/matches/stats/{matchId}
Description: Retrieves comprehensive match statistics.
Path Parameters:
matchId(long) - The match identifier
Query Parameters: Uses AppFilter
Response: MatchStatsResponse
| Field | Type | Description |
|---|---|---|
Sport |
Sport | Sport information |
League |
League | League information |
Match |
Match | Match details |
StatTeams |
List | Team stat comparisons |
StatGroups |
List | Grouped boxscore statistics |
10. GET /v1/matches/{matchId}/stats/teams
Description: Retrieves team-level statistics for a specific match.
Path Parameters:
matchId(long) - The match identifier
Query Parameters: Uses AppFilter
Response: MatchStatsResponse (focused on team stats)
11. GET /v1/matches/league-season-match-periods
Description: Retrieves season-level statistics organized by match periods/quarters for league stat leaders.
Query Parameters: Uses AppFilter
LeagueId- Filter by league
Response: PlayersSeasonStatsResponse
| Field | Type | Description |
|---|---|---|
LeagueSeasonStats |
List | League stat leaders by category |
Common Query Parameters (AppFilter)
| Parameter | Type | Description |
|---|---|---|
DateEst |
string | Date in EST timezone |
Date |
DateTime | Specific date filter |
StartDate |
DateTime | Start of date range |
EndDate |
DateTime | End of date range |
LeagueId |
List |
Filter by league IDs |
SportId |
List |
Filter by sport IDs |
TeamId |
List |
Filter by team IDs |
MatchIds |
List |
Filter by match IDs |
PartyId |
List |
Filter by party IDs |
PartyName1 |
string | First party/team name |
PartyName2 |
string | Second party/team name |
Sport |
string | Sport name filter |
League |
string | League name filter |
GameId |
long | Specific game ID |
MatchId |
long | Specific match ID |
Limit |
int | Max results (default: 100) |
Live |
bool | Only live games |
OddsFormat |
enum | Odds display format |
Period |
enum | Game period filter |
Sort |
string | Sort order |
LogoWidth |
int | Logo image width |
LogoHeight |
int | Logo image height |
LogoType |
enum | Logo image type |
IncludeGrades |
bool | Include value grades |
IncludeGraphs |
bool | Include graph data |
Authentication
- v1/games: No authentication required (public)
- v2/games: User context optional (for personalized picks)
- All match endpoints: No authentication required
Examples
Get today's NFL games
GET /v1/matches?LeagueId=1&DateEst=2025-11-29
Get live games across all sports
GET /v2/games?Live=true
Get match by team names
GET /v1/matches/resolvers/party?PartyName1=Cowboys&PartyName2=Eagles&Date=2025-11-29
Get scoring plays for a match
GET /v1/matches/12345/plays/scoring