Item types
The generic envelope and the NBA content definitions.
Use both definitionKey and definitionVersion to select a renderer. The envelope stays generic; the definition controls content. A definition in the schema need not appear in the samples or be enabled for your feed.
The listed samples contain Player Performance version 2. Portland contains the nine original NBA types at version 1. Run Momentum is a later definition, with no public example. Team Performance version 2 and Four Factors version 2 also have no public examples. The served OpenAPI item union covers fewer variants than the NBA schema; this inventory comes from the schema itself.
Generic snapshot
| Field | Required | Type / values | Constraints |
|---|---|---|---|
fixtureId | Yes | string | minLength: 1 |
feedKey | Yes | string | pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
snapshotAt | Yes | string | format: date-time |
items | Yes | array of contentItem |
The snapshot, item, entity and asset objects reject additional properties. The generic content object is open; the NBA definition supplies its fields. The API validates published envelopes against the generic schema; the NBA schema is the integration’s typed reference.
contentItem
| Field | Required | Type / values | Constraints |
|---|---|---|---|
id | Yes | string | minLength: 1 |
fixtureId | Yes | string | minLength: 1 |
definitionKey | Yes | string | pattern: ^[a-z0-9]+(?:[.-][a-z0-9-]+)+$ |
definitionVersion | Yes | integer | minimum: 1 |
revision | Yes | integer | minimum: 1 |
effectiveAt | Yes | string | format: date-time |
asOf | Yes | string | format: date-time |
publishedAt | Yes | string | format: date-time |
entities | Yes | array of entity | |
content | Yes | object | |
assets | Yes | array of asset |
Complete generic schema
{
"type": "object",
"required": [
"id",
"fixtureId",
"definitionKey",
"definitionVersion",
"revision",
"effectiveAt",
"asOf",
"publishedAt",
"entities",
"content",
"assets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"fixtureId": {
"type": "string",
"minLength": 1
},
"definitionKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.-][a-z0-9-]+)+$"
},
"definitionVersion": {
"type": "integer",
"minimum": 1
},
"revision": {
"type": "integer",
"minimum": 1
},
"effectiveAt": {
"type": "string",
"format": "date-time"
},
"asOf": {
"type": "string",
"format": "date-time"
},
"publishedAt": {
"type": "string",
"format": "date-time"
},
"entities": {
"type": "array",
"items": {
"$ref": "#/$defs/entity"
}
},
"content": {
"type": "object"
},
"assets": {
"type": "array",
"items": {
"$ref": "#/$defs/asset"
}
}
},
"additionalProperties": false
}entity
| Field | Required | Type / values | Constraints |
|---|---|---|---|
id | Yes | string | minLength: 1 |
kind | Yes | string | minLength: 1 |
displayName | Yes | string | minLength: 1 |
Complete generic schema
{
"type": "object",
"required": [
"id",
"kind",
"displayName"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"kind": {
"type": "string",
"minLength": 1
},
"displayName": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}asset
| Field | Required | Type / values | Constraints |
|---|---|---|---|
id | Yes | string | minLength: 1 |
kind | Yes | string | minLength: 1 |
href | Yes | string | format: uri-reference |
mediaType | Yes | string | minLength: 1 |
altText | Yes | string | minLength: 1 |
Complete generic schema
{
"type": "object",
"required": [
"id",
"kind",
"href",
"mediaType",
"altText"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"kind": {
"type": "string",
"minLength": 1
},
"href": {
"type": "string",
"format": "uri-reference"
},
"mediaType": {
"type": "string",
"minLength": 1
},
"altText": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}fixtureIndex
| Field | Required | Type / values | Constraints |
|---|---|---|---|
fixtures | Yes | array of object |
Complete generic schema
{
"description": "Response of GET /v1/fixtures. Each entry names a fixture and the feed keys it serves; an integration view defines the entry's descriptive fields.",
"type": "object",
"required": [
"fixtures"
],
"properties": {
"fixtures": {
"type": "array",
"items": {
"type": "object",
"required": [
"fixtureId",
"feeds"
],
"properties": {
"fixtureId": {
"type": "string",
"minLength": 1
},
"feeds": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
}
}
}
}
}
},
"additionalProperties": false
}NBA definition versions and real items
nba.initial-game-entry-summary (version 1)
Content shape: initialGameEntryContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
supportingContext | Yes | array of string | maxItems: 3 |
gameState | Yes | gameState |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.initial-game-entry-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/initialGameEntryContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-initial-game-entry",
"fixtureId": "0022501147",
"definitionKey": "nba.initial-game-entry-summary",
"definitionVersion": 1,
"revision": 14,
"effectiveAt": "2026-04-07T01:15:55.000Z",
"asOf": "2026-04-07T03:45:45Z",
"publishedAt": "2026-04-07T03:46:05.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"headline": "Denver seizes control of overtime",
"summary": "The Nuggets lead 135–128 with 2:01 left in OT after Jamal Murray's drive extends the gap to seven.",
"supportingContext": [
"Nikola Jokić has 35 points and 13 assists."
],
"gameState": {
"period": 5,
"periodLabel": "OT1",
"clock": "PT02M01.00S",
"awayTeamId": "1610612757",
"awayScore": 128,
"homeTeamId": "1610612743",
"homeScore": 135
}
},
"assets": []
}nba.post-game-summary (version 1)
Content shape: postGameContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
supportingContext | Yes | array of string | maxItems: 3 |
finalScore | Yes | score |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.post-game-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/postGameContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-post-game",
"fixtureId": "0022501147",
"definitionKey": "nba.post-game-summary",
"definitionVersion": 1,
"revision": 1,
"effectiveAt": "2026-04-07T03:48:44Z",
"asOf": "2026-04-07T03:48:44Z",
"publishedAt": "2026-04-07T03:48:54.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
},
{
"id": "203999",
"kind": "player",
"displayName": "Nikola Jokić"
},
{
"id": "1641739",
"kind": "player",
"displayName": "Toumani Camara"
}
],
"content": {
"headline": "Nuggets finish the comeback in overtime",
"summary": "Denver erased a 16-point fourth-quarter deficit and won the extra period 12–7 to beat Portland 137–132. Nikola Jokić finished with 35 points, 14 rebounds and 13 assists.",
"supportingContext": [
"Toumani Camara scored 30 as Portland made 25 of 52 threes.",
"Denver outscored Portland 66–32 in the paint and 30–15 on second chances.",
"Jokić and Matisse Thybulle each recorded five steals."
],
"finalScore": {
"awayTeamId": "1610612757",
"awayScore": 132,
"homeTeamId": "1610612743",
"homeScore": 137,
"periodsPlayed": 5
}
},
"assets": []
}nba.pre-game-summary (version 1)
Content shape: preGameContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
supportingContext | Yes | array of string | maxItems: 3 |
scheduledTipoff | Yes | string | format: date-time |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.pre-game-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/preGameContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-pre-game",
"fixtureId": "0022501147",
"definitionKey": "nba.pre-game-summary",
"definitionVersion": 1,
"revision": 2,
"effectiveAt": "2026-04-06T01:00:00Z",
"asOf": "2026-04-05T23:59:59Z",
"publishedAt": "2026-04-06T23:00:10.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"headline": "Can Portland's volume crack Denver's efficiency?",
"summary": "Portland's 42.2 three-point attempts per game test a Denver team making 39.6% from deep. Extra possessions are the Trail Blazers' clearest counterweight.",
"supportingContext": [
"Denver averages 121.6 points; Portland averages 115.4.",
"Portland averages 18.5 second-chance points.",
"Jokić enters at 27.9 points, 12.9 rebounds and 10.9 assists per game."
],
"scheduledTipoff": "2026-04-07T01:00:00Z"
},
"assets": []
}nba.timeout-quarter-halftime-summary (version 1)
Content shape: breakContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
keyTakeaways | Yes | array of string | minItems: 1 |
whatToWatchNext | Yes | string | minLength: 1 |
break | Yes | break | |
gameState | Yes | gameState |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.timeout-quarter-halftime-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/breakContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-break-a746",
"fixtureId": "0022501147",
"definitionKey": "nba.timeout-quarter-halftime-summary",
"definitionVersion": 1,
"revision": 1,
"effectiveAt": "2026-04-07T03:42:44Z",
"asOf": "2026-04-07T03:42:44Z",
"publishedAt": "2026-04-07T03:42:54.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"headline": "Denver protects a five-point OT lead",
"keyTakeaways": [
"The Nuggets lead 133–128 with 2:11 left in overtime.",
"Portland has not scored since cutting Denver's lead to 131–128."
],
"whatToWatchNext": "Portland needs a stop and a clean scoring possession immediately.",
"break": {
"kind": "timeout",
"period": 5,
"clock": "PT02M11.00S"
},
"gameState": {
"period": 5,
"periodLabel": "OT1",
"clock": "PT02M11.00S",
"awayTeamId": "1610612757",
"awayScore": 128,
"homeTeamId": "1610612743",
"homeScore": 133
}
},
"assets": []
}nba.player-performance-summary (version 1)
Content shape: playerPerformanceContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
playerId | Yes | string | minLength: 1 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statistic | |
seasonAverages | Yes | array of statistic | |
recentGames | Yes | array of recentPerformance | |
comparisons | Yes | array of statistic | |
shotChartAssetId | No | string | minLength: 1 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.player-performance-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/playerPerformanceContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-player-203999",
"fixtureId": "0022501147",
"definitionKey": "nba.player-performance-summary",
"definitionVersion": 1,
"revision": 3,
"effectiveAt": "2026-04-07T02:55:55.000Z",
"asOf": "2026-04-07T03:46:46Z",
"publishedAt": "2026-04-07T03:47:05.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
},
{
"id": "203999",
"kind": "player",
"displayName": "Nikola Jokić"
},
{
"id": "1610612759",
"kind": "team",
"displayName": "San Antonio Spurs"
},
{
"id": "1610612762",
"kind": "team",
"displayName": "Utah Jazz"
},
{
"id": "1610612744",
"kind": "team",
"displayName": "Golden State Warriors"
}
],
"content": {
"summary": "Jokić has 35 points, 12 rebounds and 13 assists with Denver in control late in overtime.",
"playerId": "203999",
"gameState": {
"period": 5,
"periodLabel": "OT1",
"clock": "PT01M26.00S",
"awayTeamId": "1610612757",
"awayScore": 130,
"homeTeamId": "1610612743",
"homeScore": 137
},
"gameStatistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 35,
"displayValue": "35"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 12,
"displayValue": "12"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 13,
"displayValue": "13"
}
]
},
{
"key": "steals",
"label": "Steals",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 5,
"displayValue": "5"
}
]
},
{
"key": "blocks",
"label": "Blocks",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 2,
"displayValue": "2"
}
]
},
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 1,
"displayValue": "1"
}
]
},
{
"key": "threePointersAttempted",
"label": "Three-pointers attempted",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 5,
"displayValue": "5"
}
]
}
],
"seasonAverages": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Season average",
"entityId": "203999",
"scope": "seasonAverage",
"value": 27.9,
"displayValue": "27.9"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Season average",
"entityId": "203999",
"scope": "seasonAverage",
"value": 10.9,
"displayValue": "10.9"
}
]
}
],
"recentGames": [
{
"fixtureId": "0022501130",
"fixtureDate": "2026-04-04",
"opponentEntityId": "1610612759",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 40,
"displayValue": "40"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 8,
"displayValue": "8"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 13,
"displayValue": "13"
}
]
}
]
},
{
"fixtureId": "0022501112",
"fixtureDate": "2026-04-01",
"opponentEntityId": "1610612762",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 15,
"displayValue": "15"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 17,
"displayValue": "17"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 12,
"displayValue": "12"
}
]
}
]
},
{
"fixtureId": "0022501090",
"fixtureDate": "2026-03-29",
"opponentEntityId": "1610612744",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 25,
"displayValue": "25"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 15,
"displayValue": "15"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Game",
"entityId": "203999",
"scope": "recentGame",
"value": 8,
"displayValue": "8"
}
]
}
]
}
],
"comparisons": [
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "203999",
"scope": "currentGame",
"value": 13,
"displayValue": "13"
},
{
"label": "Season average",
"entityId": "203999",
"scope": "seasonAverage",
"value": 10.9,
"displayValue": "10.9"
}
]
}
]
},
"assets": []
}nba.player-performance-summary (version 2)
Content shape: playerPerformanceContentV2.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
statLine | Yes | string | minLength: 1 |
playerId | Yes | string | minLength: 1 |
actionNumber | Yes | integer | minimum: 0 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statisticV2 | |
seasonAverages | Yes | array of statisticV2 | |
recentGames | Yes | array of recentPerformanceV2 | |
comparisons | Yes | array of statisticV2 | |
shotChartAssetId | No | string | minLength: 1 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.player-performance-summary"
},
"definitionVersion": {
"const": 2
},
"content": {
"$ref": "#/$defs/playerPerformanceContentV2"
}
}
}
]
}Real item from fixture 0042500405
{
"id": "0042500405-player-1642844-774",
"fixtureId": "0042500405",
"definitionKey": "nba.player-performance-summary",
"definitionVersion": 2,
"revision": 1,
"effectiveAt": "2026-06-14T03:27:56Z",
"asOf": "2026-06-14T03:27:56Z",
"publishedAt": "2026-06-14T03:27:56Z",
"entities": [
{
"id": "1642844",
"kind": "player",
"displayName": "Dylan Harper"
},
{
"id": "1610612752",
"kind": "team",
"displayName": "New York Knicks"
},
{
"id": "1610612759",
"kind": "team",
"displayName": "San Antonio Spurs"
}
],
"content": {
"headline": "Harper misses both free throws with 8.5 seconds left",
"summary": "Dylan Harper misses two free throws with 8.5 seconds left and San Antonio down 93-90, and OG Anunoby's rebound gives New York the ball. Harper has 25 points, the most for the Spurs tonight.",
"statLine": "25 PTS · 3-6 FT",
"playerId": "1642844",
"actionNumber": 774,
"gameState": {
"period": 4,
"periodLabel": "Q4",
"clock": "PT00M08.50S",
"awayTeamId": "1610612752",
"awayScore": 93,
"homeTeamId": "1610612759",
"homeScore": 90
},
"gameStatistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Current game",
"entityId": "1642844",
"scope": "currentGame",
"value": 25,
"displayValue": "25"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1642844",
"scope": "currentGame",
"value": 5,
"displayValue": "5"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1642844",
"scope": "currentGame",
"value": 4,
"displayValue": "4"
}
]
},
{
"key": "freeThrowsMade",
"label": "Free throws made",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1642844",
"scope": "currentGame",
"value": 3,
"displayValue": "3"
}
]
},
{
"key": "freeThrowsAttempted",
"label": "Free throws attempted",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1642844",
"scope": "currentGame",
"value": 6,
"displayValue": "6"
}
]
}
],
"seasonAverages": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "2026 playoff average (22 games)",
"entityId": "1642844",
"scope": "postseasonAverage",
"value": 13.6,
"displayValue": "13.6"
},
{
"label": "2025-26 regular season average (69 games)",
"entityId": "1642844",
"scope": "seasonAverage",
"value": 11.8,
"displayValue": "11.8"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "2026 playoff average (22 games)",
"entityId": "1642844",
"scope": "postseasonAverage",
"value": 5.6,
"displayValue": "5.6"
},
{
"label": "2025-26 regular season average (69 games)",
"entityId": "1642844",
"scope": "seasonAverage",
"value": 3.4,
"displayValue": "3.4"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "2026 playoff average (22 games)",
"entityId": "1642844",
"scope": "postseasonAverage",
"value": 2.6,
"displayValue": "2.6"
},
{
"label": "2025-26 regular season average (69 games)",
"entityId": "1642844",
"scope": "seasonAverage",
"value": 3.9,
"displayValue": "3.9"
}
]
}
],
"recentGames": [
{
"fixtureDate": "2026-06-10",
"opponentEntityId": "1610612752",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 21,
"displayValue": "21"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 4,
"displayValue": "4"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 3,
"displayValue": "3"
}
]
},
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 3,
"displayValue": "3"
}
]
}
]
},
{
"fixtureDate": "2026-06-08",
"opponentEntityId": "1610612752",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 13,
"displayValue": "13"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 9,
"displayValue": "9"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 4,
"displayValue": "4"
}
]
},
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 1,
"displayValue": "1"
}
]
}
]
},
{
"fixtureDate": "2026-06-05",
"opponentEntityId": "1610612752",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 15,
"displayValue": "15"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 6,
"displayValue": "6"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 3,
"displayValue": "3"
}
]
},
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 0,
"displayValue": "0"
}
]
}
]
},
{
"fixtureDate": "2026-06-03",
"opponentEntityId": "1610612752",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 16,
"displayValue": "16"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 8,
"displayValue": "8"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 1,
"displayValue": "1"
}
]
},
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 1,
"displayValue": "1"
}
]
}
]
},
{
"fixtureDate": "2026-05-30",
"opponentEntityId": "1610612760",
"statistics": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 12,
"displayValue": "12"
}
]
},
{
"key": "rebounds",
"label": "Rebounds",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 7,
"displayValue": "7"
}
]
},
{
"key": "assists",
"label": "Assists",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 3,
"displayValue": "3"
}
]
},
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Recent game",
"entityId": "1642844",
"scope": "recentGame",
"value": 2,
"displayValue": "2"
}
]
}
]
}
],
"comparisons": [
{
"key": "points",
"label": "Points",
"unit": "points",
"values": [
{
"label": "Current game",
"entityId": "1642844",
"scope": "currentGame",
"value": 25,
"displayValue": "25"
},
{
"label": "2026 playoff high",
"entityId": "1642844",
"scope": "postseasonHigh",
"value": 27,
"displayValue": "27"
},
{
"label": "Career playoff high",
"entityId": "1642844",
"scope": "careerPlayoffHigh",
"value": 27,
"displayValue": "27"
},
{
"label": "2025-26 regular season high",
"entityId": "1642844",
"scope": "seasonHigh",
"value": 24,
"displayValue": "24"
},
{
"label": "Career high (regular season)",
"entityId": "1642844",
"scope": "careerHigh",
"value": 24,
"displayValue": "24"
}
]
}
]
},
"assets": []
}nba.team-performance-summary (version 1)
Content shape: teamPerformanceContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
teamId | Yes | string | minLength: 1 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statistic | |
seasonAverages | Yes | array of statistic | |
comparisons | Yes | array of statistic | |
shotChartAssetId | No | string | minLength: 1 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.team-performance-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/teamPerformanceContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-team-1610612757-three-point-volume",
"fixtureId": "0022501147",
"definitionKey": "nba.team-performance-summary",
"definitionVersion": 1,
"revision": 5,
"effectiveAt": "2026-04-07T01:35:55.000Z",
"asOf": "2026-04-07T03:40:24Z",
"publishedAt": "2026-04-07T03:41:07.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"summary": "Portland's 25th three is a franchise game high, according to the NBA alert feed, and accounts for 75 of its first 128 points.",
"teamId": "1610612757",
"gameState": {
"period": 5,
"periodLabel": "OT1",
"clock": "PT03M04.00S",
"awayTeamId": "1610612757",
"awayScore": 128,
"homeTeamId": "1610612743",
"homeScore": 131
},
"gameStatistics": [
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1610612757",
"scope": "currentGame",
"value": 25,
"displayValue": "25"
}
]
},
{
"key": "threePointersAttempted",
"label": "Three-pointers attempted",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1610612757",
"scope": "currentGame",
"value": 51,
"displayValue": "51"
}
]
},
{
"key": "threePointPercentage",
"label": "Three-point percentage",
"unit": "percent",
"values": [
{
"label": "Current game",
"entityId": "1610612757",
"scope": "currentGame",
"value": 49.01960784313725,
"displayValue": "49.0%"
}
]
}
],
"seasonAverages": [
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Season average",
"entityId": "1610612757",
"scope": "seasonAverage",
"value": 14.4,
"displayValue": "14.4"
}
]
},
{
"key": "threePointPercentage",
"label": "Three-point percentage",
"unit": "percent",
"values": [
{
"label": "Season average",
"entityId": "1610612757",
"scope": "seasonAverage",
"value": 34.1,
"displayValue": "34.1%"
}
]
}
],
"comparisons": [
{
"key": "threePointersMade",
"label": "Three-pointers made",
"unit": "count",
"values": [
{
"label": "Current game",
"entityId": "1610612757",
"scope": "currentGame",
"value": 25,
"displayValue": "25"
},
{
"label": "Season average",
"entityId": "1610612757",
"scope": "seasonAverage",
"value": 14.4,
"displayValue": "14.4"
}
]
}
],
"shotChartAssetId": "0022501147-team-1610612757-three-point-volume-shot-chart-r5"
},
"assets": [
{
"id": "0022501147-team-1610612757-three-point-volume-shot-chart-r5",
"kind": "shot-chart",
"href": "../assets/0022501147-team-1610612757-three-point-volume-shot-chart-r5.svg",
"mediaType": "image/svg+xml",
"altText": "Portland three-point shot chart. 25 makes and 26 misses through the stated checkpoint."
}
]
}nba.team-performance-summary (version 2)
Content shape: teamPerformanceContentV2.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
teamId | Yes | string | minLength: 1 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statistic | |
seasonAverages | Yes | array of statistic | |
comparisons | Yes | array of statistic | |
shotChartAssetId | No | string | minLength: 1 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.team-performance-summary"
},
"definitionVersion": {
"const": 2
},
"content": {
"$ref": "#/$defs/teamPerformanceContentV2"
}
}
}
]
}No item in the public fixtures demonstrates this definition version. Its schema is shown here.
nba.four-factors (version 1)
Content shape: fourFactorsContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
descriptor | Yes | string | minLength: 1 |
focusFactorKey | Yes | "effectiveFieldGoalPercentage", "turnoverPercentage", "offensiveReboundPercentage", "freeThrowRate" | |
gameState | Yes | gameState | |
factors | Yes | array of statistic | minItems: 4; maxItems: 4 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.four-factors"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/fourFactorsContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-four-factors-q4",
"fixtureId": "0022501147",
"definitionKey": "nba.four-factors",
"definitionVersion": 1,
"revision": 1,
"effectiveAt": "2026-04-07T03:34:24Z",
"asOf": "2026-04-07T03:34:24Z",
"publishedAt": "2026-04-07T03:34:35.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"summary": "Free-throw rate is the widest Four Factors gap: Portland leads 33.7% to 23.4%.",
"descriptor": "Four Factors compare shooting efficiency, ball security, offensive rebounding and free-throw pressure.",
"focusFactorKey": "freeThrowRate",
"gameState": {
"period": 4,
"periodLabel": "Q4",
"clock": "PT00M00.00S",
"awayTeamId": "1610612757",
"awayScore": 125,
"homeTeamId": "1610612743",
"homeScore": 125
},
"factors": [
{
"key": "effectiveFieldGoalPercentage",
"label": "Effective field-goal percentage",
"unit": "percent",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 61.4,
"displayValue": "61.4%"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 56.4,
"displayValue": "56.4%"
}
]
},
{
"key": "turnoverPercentage",
"label": "Turnover percentage",
"unit": "percent",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 16.5,
"displayValue": "16.5%"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 12.4,
"displayValue": "12.4%"
}
]
},
{
"key": "offensiveReboundPercentage",
"label": "Offensive-rebound percentage",
"unit": "percent",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 39.6,
"displayValue": "39.6%"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 43.5,
"displayValue": "43.5%"
}
]
},
{
"key": "freeThrowRate",
"label": "Free-throw rate",
"unit": "percent",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 33.7,
"displayValue": "33.7%"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 23.4,
"displayValue": "23.4%"
}
]
}
]
},
"assets": []
}nba.four-factors (version 2)
Content shape: fourFactorsContentV2.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
descriptor | Yes | string | minLength: 1 |
focusFactorKey | Yes | "effectiveFieldGoalPercentage", "turnoverPercentage", "offensiveReboundPercentage", "freeThrowRate" | |
gameState | Yes | gameState | |
factors | Yes | array of statistic | minItems: 2; maxItems: 4 |
unavailableFactorKeys | Yes | array of "effectiveFieldGoalPercentage", "turnoverPercentage", "offensiveReboundPercentage", "freeThrowRate" | maxItems: 2 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.four-factors"
},
"definitionVersion": {
"const": 2
},
"content": {
"$ref": "#/$defs/fourFactorsContentV2"
}
}
}
]
}No item in the public fixtures demonstrates this definition version. Its schema is shown here.
nba.point-breakdown (version 1)
Content shape: pointBreakdownContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
descriptor | Yes | string | minLength: 1 |
focusCategoryKey | Yes | "fastBreakPoints", "pointsInPaint", "pointsOffTurnovers", "secondChancePoints" | |
gameState | Yes | gameState | |
categories | Yes | array of statistic | minItems: 4; maxItems: 4 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.point-breakdown"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/pointBreakdownContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-point-breakdown-q4",
"fixtureId": "0022501147",
"definitionKey": "nba.point-breakdown",
"definitionVersion": 1,
"revision": 1,
"effectiveAt": "2026-04-07T03:34:24Z",
"asOf": "2026-04-07T03:34:24Z",
"publishedAt": "2026-04-07T03:34:36.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"summary": "Denver's 62–28 edge in points in the paint is the largest scoring-source gap.",
"descriptor": "Points Breakdown compares fast-break, paint, off-turnover and second-chance scoring; categories can overlap.",
"focusCategoryKey": "pointsInPaint",
"gameState": {
"period": 4,
"periodLabel": "Q4",
"clock": "PT00M00.00S",
"awayTeamId": "1610612757",
"awayScore": 125,
"homeTeamId": "1610612743",
"homeScore": 125
},
"categories": [
{
"key": "fastBreakPoints",
"label": "Fast-break points",
"unit": "points",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 16,
"displayValue": "16"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 13,
"displayValue": "13"
}
]
},
{
"key": "pointsInPaint",
"label": "Points in the paint",
"unit": "points",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 28,
"displayValue": "28"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 62,
"displayValue": "62"
}
]
},
{
"key": "pointsOffTurnovers",
"label": "Points off turnovers",
"unit": "points",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 16,
"displayValue": "16"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 18,
"displayValue": "18"
}
]
},
{
"key": "secondChancePoints",
"label": "Second-chance points",
"unit": "points",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 15,
"displayValue": "15"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 30,
"displayValue": "30"
}
]
}
]
},
"assets": []
}nba.defensive-summary (version 1)
Content shape: defensiveContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
focusStatisticKeys | Yes | array of "offensiveRebounds", "defensiveRebounds", "turnovers", "blocks", "steals" | minItems: 1; uniqueItems: true |
gameState | Yes | gameState | |
statistics | Yes | array of statistic | minItems: 5; maxItems: 5 |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.defensive-summary"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/defensiveContent"
}
}
}
]
}Real item from fixture 0022501147
{
"id": "0022501147-defensive-q4",
"fixtureId": "0022501147",
"definitionKey": "nba.defensive-summary",
"definitionVersion": 1,
"revision": 1,
"effectiveAt": "2026-04-07T03:34:24Z",
"asOf": "2026-04-07T03:34:24Z",
"publishedAt": "2026-04-07T03:34:37.000Z",
"entities": [
{
"id": "1610612757",
"kind": "team",
"displayName": "Portland Trail Blazers"
},
{
"id": "1610612743",
"kind": "team",
"displayName": "Denver Nuggets"
}
],
"content": {
"summary": "The largest defensive-breakdown gap is offensive rebounds: Portland 11, Denver 17.",
"focusStatisticKeys": [
"offensiveRebounds"
],
"gameState": {
"period": 4,
"periodLabel": "Q4",
"clock": "PT00M00.00S",
"awayTeamId": "1610612757",
"awayScore": 125,
"homeTeamId": "1610612743",
"homeScore": 125
},
"statistics": [
{
"key": "offensiveRebounds",
"label": "Offensive rebounds",
"unit": "count",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 11,
"displayValue": "11"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 17,
"displayValue": "17"
}
]
},
{
"key": "defensiveRebounds",
"label": "Defensive rebounds",
"unit": "count",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 25,
"displayValue": "25"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 25,
"displayValue": "25"
}
]
},
{
"key": "turnovers",
"label": "Turnovers forced",
"unit": "count",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 12,
"displayValue": "12"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 16,
"displayValue": "16"
}
]
},
{
"key": "blocks",
"label": "Blocks",
"unit": "count",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 5,
"displayValue": "5"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 5,
"displayValue": "5"
}
]
},
{
"key": "steals",
"label": "Steals",
"unit": "count",
"values": [
{
"label": "Portland Trail Blazers",
"entityId": "1610612757",
"scope": "currentGame",
"value": 8,
"displayValue": "8"
},
{
"label": "Denver Nuggets",
"entityId": "1610612743",
"scope": "currentGame",
"value": 10,
"displayValue": "10"
}
]
}
]
},
"assets": []
}nba.run-momentum (version 1)
Content shape: runMomentumContent.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
teamId | Yes | string | minLength: 1 |
actionNumber | Yes | integer | minimum: 0 |
run | Yes | object | |
contributors | Yes | array of object | maxItems: 4 |
turnoversForced | Yes | integer | minimum: 0 |
pointsOffTurnovers | Yes | integer | minimum: 0 |
answersItemId | No | string | minLength: 1 |
gameState | Yes | gameState |
Complete item schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/contentItem"
},
{
"type": "object",
"properties": {
"definitionKey": {
"const": "nba.run-momentum"
},
"definitionVersion": {
"const": 1
},
"content": {
"$ref": "#/$defs/runMomentumContent"
}
}
}
]
}No item in the public fixtures demonstrates this definition version. Its schema is shown here.
NBA shared structures
References in the tables link here. Complete excerpts retain composition, required fields, bounds and additional-property rules.
statisticValue
| Field | Required | Type / values | Constraints |
|---|---|---|---|
label | Yes | string | minLength: 1 |
entityId | Yes | string | minLength: 1 |
scope | Yes | "currentGame", "seasonAverage", "recentGame" | |
value | Yes | one of: number / string / boolean | |
displayValue | Yes | string |
Complete schema
{
"type": "object",
"required": [
"label",
"entityId",
"scope",
"value",
"displayValue"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
},
"entityId": {
"type": "string",
"minLength": 1
},
"scope": {
"enum": [
"currentGame",
"seasonAverage",
"recentGame"
]
},
"value": {
"oneOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "boolean"
}
]
},
"displayValue": {
"type": "string"
}
},
"additionalProperties": false
}statistic
| Field | Required | Type / values | Constraints |
|---|---|---|---|
key | Yes | string | pattern: ^[a-z][A-Za-z0-9]*$ |
label | Yes | string | minLength: 1 |
unit | Yes | "count", "points", "percent" | |
values | Yes | array of statisticValue | minItems: 1 |
Complete schema
{
"type": "object",
"required": [
"key",
"label",
"unit",
"values"
],
"properties": {
"key": {
"type": "string",
"pattern": "^[a-z][A-Za-z0-9]*$"
},
"label": {
"type": "string",
"minLength": 1
},
"unit": {
"enum": [
"count",
"points",
"percent"
]
},
"values": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/statisticValue"
}
}
},
"additionalProperties": false
}statisticValueV2
Version 2 statistic value: the version 1 shape with a wider scope set. seasonAverage and seasonHigh cover the regular season, postseasonAverage and postseasonHigh this postseason, lastSeasonAverage the previous regular season, careerHigh regular-season games and careerPlayoffHigh playoff games; averages and highs are before the current game.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
label | Yes | string | minLength: 1 |
entityId | Yes | string | minLength: 1 |
scope | Yes | "currentGame", "seasonAverage", "postseasonAverage", "lastSeasonAverage", "recentGame", "seasonHigh", "postseasonHigh", "careerHigh", "careerPlayoffHigh" | |
value | Yes | one of: number / string / boolean | |
displayValue | Yes | string |
Complete schema
{
"description": "Version 2 statistic value: the version 1 shape with a wider scope set. seasonAverage and seasonHigh cover the regular season, postseasonAverage and postseasonHigh this postseason, lastSeasonAverage the previous regular season, careerHigh regular-season games and careerPlayoffHigh playoff games; averages and highs are before the current game.",
"type": "object",
"required": [
"label",
"entityId",
"scope",
"value",
"displayValue"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
},
"entityId": {
"type": "string",
"minLength": 1
},
"scope": {
"enum": [
"currentGame",
"seasonAverage",
"postseasonAverage",
"lastSeasonAverage",
"recentGame",
"seasonHigh",
"postseasonHigh",
"careerHigh",
"careerPlayoffHigh"
]
},
"value": {
"oneOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "boolean"
}
]
},
"displayValue": {
"type": "string"
}
},
"additionalProperties": false
}statisticV2
| Field | Required | Type / values | Constraints |
|---|---|---|---|
key | Yes | string | pattern: ^[a-z][A-Za-z0-9]*$ |
label | Yes | string | minLength: 1 |
unit | Yes | "count", "points", "percent" | |
values | Yes | array of statisticValueV2 | minItems: 1 |
Complete schema
{
"type": "object",
"required": [
"key",
"label",
"unit",
"values"
],
"properties": {
"key": {
"type": "string",
"pattern": "^[a-z][A-Za-z0-9]*$"
},
"label": {
"type": "string",
"minLength": 1
},
"unit": {
"enum": [
"count",
"points",
"percent"
]
},
"values": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/statisticValueV2"
}
}
},
"additionalProperties": false
}gameState
| Field | Required | Type / values | Constraints |
|---|---|---|---|
period | Yes | integer | minimum: 1 |
periodLabel | Yes | string | minLength: 1 |
clock | Yes | string | minLength: 1 |
awayTeamId | Yes | string | minLength: 1 |
awayScore | Yes | integer | minimum: 0 |
homeTeamId | Yes | string | minLength: 1 |
homeScore | Yes | integer | minimum: 0 |
Complete schema
{
"type": "object",
"required": [
"period",
"periodLabel",
"clock",
"awayTeamId",
"awayScore",
"homeTeamId",
"homeScore"
],
"properties": {
"period": {
"type": "integer",
"minimum": 1
},
"periodLabel": {
"type": "string",
"minLength": 1
},
"clock": {
"type": "string",
"minLength": 1
},
"awayTeamId": {
"type": "string",
"minLength": 1
},
"awayScore": {
"type": "integer",
"minimum": 0
},
"homeTeamId": {
"type": "string",
"minLength": 1
},
"homeScore": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}recentPerformance
| Field | Required | Type / values | Constraints |
|---|---|---|---|
fixtureId | Yes | string | minLength: 1 |
fixtureDate | Yes | string | format: date |
opponentEntityId | Yes | string | minLength: 1 |
statistics | Yes | array of statistic |
Complete schema
{
"type": "object",
"required": [
"fixtureId",
"fixtureDate",
"opponentEntityId",
"statistics"
],
"properties": {
"fixtureId": {
"type": "string",
"minLength": 1
},
"fixtureDate": {
"type": "string",
"format": "date"
},
"opponentEntityId": {
"type": "string",
"minLength": 1
},
"statistics": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
}
},
"additionalProperties": false
}recentPerformanceV2
Version 2 recent game. fixtureId is present only when the recent game's NBA game ID is known.
| Field | Required | Type / values | Constraints |
|---|---|---|---|
fixtureId | No | string | minLength: 1 |
fixtureDate | Yes | string | format: date |
opponentEntityId | Yes | string | minLength: 1 |
statistics | Yes | array of statisticV2 |
Complete schema
{
"description": "Version 2 recent game. fixtureId is present only when the recent game's NBA game ID is known.",
"type": "object",
"required": [
"fixtureDate",
"opponentEntityId",
"statistics"
],
"properties": {
"fixtureId": {
"type": "string",
"minLength": 1
},
"fixtureDate": {
"type": "string",
"format": "date"
},
"opponentEntityId": {
"type": "string",
"minLength": 1
},
"statistics": {
"type": "array",
"items": {
"$ref": "#/$defs/statisticV2"
}
}
},
"additionalProperties": false
}score
| Field | Required | Type / values | Constraints |
|---|---|---|---|
awayTeamId | Yes | string | minLength: 1 |
awayScore | Yes | integer | minimum: 0 |
homeTeamId | Yes | string | minLength: 1 |
homeScore | Yes | integer | minimum: 0 |
periodsPlayed | Yes | integer | minimum: 1 |
Complete schema
{
"type": "object",
"required": [
"awayTeamId",
"awayScore",
"homeTeamId",
"homeScore",
"periodsPlayed"
],
"properties": {
"awayTeamId": {
"type": "string",
"minLength": 1
},
"awayScore": {
"type": "integer",
"minimum": 0
},
"homeTeamId": {
"type": "string",
"minLength": 1
},
"homeScore": {
"type": "integer",
"minimum": 0
},
"periodsPlayed": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}break
| Field | Required | Type / values | Constraints |
|---|---|---|---|
kind | Yes | "timeout", "quarter", "halftime", "overtime" | |
period | Yes | integer | minimum: 1 |
clock | Yes | string | minLength: 1 |
Complete schema
{
"type": "object",
"required": [
"kind",
"period",
"clock"
],
"properties": {
"kind": {
"enum": [
"timeout",
"quarter",
"halftime",
"overtime"
]
},
"period": {
"type": "integer",
"minimum": 1
},
"clock": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}initialGameEntryContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
supportingContext | Yes | array of string | maxItems: 3 |
gameState | Yes | gameState |
Complete schema
{
"type": "object",
"required": [
"headline",
"summary",
"supportingContext",
"gameState"
],
"properties": {
"headline": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"supportingContext": {
"type": "array",
"maxItems": 3,
"items": {
"type": "string",
"minLength": 1
}
},
"gameState": {
"$ref": "#/$defs/gameState"
}
},
"additionalProperties": false
}postGameContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
supportingContext | Yes | array of string | maxItems: 3 |
finalScore | Yes | score |
Complete schema
{
"type": "object",
"required": [
"headline",
"summary",
"supportingContext",
"finalScore"
],
"properties": {
"headline": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"supportingContext": {
"type": "array",
"maxItems": 3,
"items": {
"type": "string",
"minLength": 1
}
},
"finalScore": {
"$ref": "#/$defs/score"
}
},
"additionalProperties": false
}preGameContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
supportingContext | Yes | array of string | maxItems: 3 |
scheduledTipoff | Yes | string | format: date-time |
Complete schema
{
"type": "object",
"required": [
"headline",
"summary",
"supportingContext",
"scheduledTipoff"
],
"properties": {
"headline": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"supportingContext": {
"type": "array",
"maxItems": 3,
"items": {
"type": "string",
"minLength": 1
}
},
"scheduledTipoff": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}breakContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
keyTakeaways | Yes | array of string | minItems: 1 |
whatToWatchNext | Yes | string | minLength: 1 |
break | Yes | break | |
gameState | Yes | gameState |
Complete schema
{
"type": "object",
"required": [
"headline",
"keyTakeaways",
"whatToWatchNext",
"break",
"gameState"
],
"properties": {
"headline": {
"type": "string",
"minLength": 1
},
"keyTakeaways": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"whatToWatchNext": {
"type": "string",
"minLength": 1
},
"break": {
"$ref": "#/$defs/break"
},
"gameState": {
"$ref": "#/$defs/gameState"
}
},
"additionalProperties": false
}playerPerformanceContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
playerId | Yes | string | minLength: 1 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statistic | |
seasonAverages | Yes | array of statistic | |
recentGames | Yes | array of recentPerformance | |
comparisons | Yes | array of statistic | |
shotChartAssetId | No | string | minLength: 1 |
Complete schema
{
"type": "object",
"required": [
"summary",
"playerId",
"gameState",
"gameStatistics",
"seasonAverages",
"recentGames",
"comparisons"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"playerId": {
"type": "string",
"minLength": 1
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"gameStatistics": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"seasonAverages": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"recentGames": {
"type": "array",
"items": {
"$ref": "#/$defs/recentPerformance"
}
},
"comparisons": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"shotChartAssetId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}playerPerformanceContentV2
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
statLine | Yes | string | minLength: 1 |
playerId | Yes | string | minLength: 1 |
actionNumber | Yes | integer | minimum: 0 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statisticV2 | |
seasonAverages | Yes | array of statisticV2 | |
recentGames | Yes | array of recentPerformanceV2 | |
comparisons | Yes | array of statisticV2 | |
shotChartAssetId | No | string | minLength: 1 |
Complete schema
{
"type": "object",
"required": [
"headline",
"summary",
"statLine",
"playerId",
"actionNumber",
"gameState",
"gameStatistics",
"seasonAverages",
"recentGames",
"comparisons"
],
"properties": {
"headline": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"statLine": {
"type": "string",
"minLength": 1
},
"playerId": {
"type": "string",
"minLength": 1
},
"actionNumber": {
"type": "integer",
"minimum": 0
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"gameStatistics": {
"type": "array",
"items": {
"$ref": "#/$defs/statisticV2"
}
},
"seasonAverages": {
"type": "array",
"items": {
"$ref": "#/$defs/statisticV2"
}
},
"recentGames": {
"type": "array",
"items": {
"$ref": "#/$defs/recentPerformanceV2"
}
},
"comparisons": {
"type": "array",
"items": {
"$ref": "#/$defs/statisticV2"
}
},
"shotChartAssetId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}teamPerformanceContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
teamId | Yes | string | minLength: 1 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statistic | |
seasonAverages | Yes | array of statistic | |
comparisons | Yes | array of statistic | |
shotChartAssetId | No | string | minLength: 1 |
Complete schema
{
"type": "object",
"required": [
"summary",
"teamId",
"gameState",
"gameStatistics",
"seasonAverages",
"comparisons"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"teamId": {
"type": "string",
"minLength": 1
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"gameStatistics": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"seasonAverages": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"comparisons": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"shotChartAssetId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}teamPerformanceContentV2
| Field | Required | Type / values | Constraints |
|---|---|---|---|
headline | Yes | string | minLength: 1 |
summary | Yes | string | minLength: 1 |
teamId | Yes | string | minLength: 1 |
gameState | Yes | gameState | |
gameStatistics | Yes | array of statistic | |
seasonAverages | Yes | array of statistic | |
comparisons | Yes | array of statistic | |
shotChartAssetId | No | string | minLength: 1 |
Complete schema
{
"type": "object",
"required": [
"headline",
"summary",
"teamId",
"gameState",
"gameStatistics",
"seasonAverages",
"comparisons"
],
"properties": {
"headline": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"teamId": {
"type": "string",
"minLength": 1
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"gameStatistics": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"seasonAverages": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"comparisons": {
"type": "array",
"items": {
"$ref": "#/$defs/statistic"
}
},
"shotChartAssetId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}fourFactorsContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
descriptor | Yes | string | minLength: 1 |
focusFactorKey | Yes | "effectiveFieldGoalPercentage", "turnoverPercentage", "offensiveReboundPercentage", "freeThrowRate" | |
gameState | Yes | gameState | |
factors | Yes | array of statistic | minItems: 4; maxItems: 4 |
Complete schema
{
"type": "object",
"required": [
"summary",
"descriptor",
"focusFactorKey",
"gameState",
"factors"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"descriptor": {
"type": "string",
"minLength": 1
},
"focusFactorKey": {
"enum": [
"effectiveFieldGoalPercentage",
"turnoverPercentage",
"offensiveReboundPercentage",
"freeThrowRate"
]
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"factors": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"$ref": "#/$defs/statistic"
}
}
},
"additionalProperties": false
}fourFactorsContentV2
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
descriptor | Yes | string | minLength: 1 |
focusFactorKey | Yes | "effectiveFieldGoalPercentage", "turnoverPercentage", "offensiveReboundPercentage", "freeThrowRate" | |
gameState | Yes | gameState | |
factors | Yes | array of statistic | minItems: 2; maxItems: 4 |
unavailableFactorKeys | Yes | array of "effectiveFieldGoalPercentage", "turnoverPercentage", "offensiveReboundPercentage", "freeThrowRate" | maxItems: 2 |
Complete schema
{
"type": "object",
"required": [
"summary",
"descriptor",
"focusFactorKey",
"gameState",
"factors",
"unavailableFactorKeys"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"descriptor": {
"type": "string",
"minLength": 1
},
"focusFactorKey": {
"enum": [
"effectiveFieldGoalPercentage",
"turnoverPercentage",
"offensiveReboundPercentage",
"freeThrowRate"
]
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"factors": {
"type": "array",
"minItems": 2,
"maxItems": 4,
"items": {
"$ref": "#/$defs/statistic"
}
},
"unavailableFactorKeys": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"effectiveFieldGoalPercentage",
"turnoverPercentage",
"offensiveReboundPercentage",
"freeThrowRate"
]
}
}
},
"additionalProperties": false
}pointBreakdownContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
descriptor | Yes | string | minLength: 1 |
focusCategoryKey | Yes | "fastBreakPoints", "pointsInPaint", "pointsOffTurnovers", "secondChancePoints" | |
gameState | Yes | gameState | |
categories | Yes | array of statistic | minItems: 4; maxItems: 4 |
Complete schema
{
"type": "object",
"required": [
"summary",
"descriptor",
"focusCategoryKey",
"gameState",
"categories"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"descriptor": {
"type": "string",
"minLength": 1
},
"focusCategoryKey": {
"enum": [
"fastBreakPoints",
"pointsInPaint",
"pointsOffTurnovers",
"secondChancePoints"
]
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"categories": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"$ref": "#/$defs/statistic"
}
}
},
"additionalProperties": false
}defensiveContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
focusStatisticKeys | Yes | array of "offensiveRebounds", "defensiveRebounds", "turnovers", "blocks", "steals" | minItems: 1; uniqueItems: true |
gameState | Yes | gameState | |
statistics | Yes | array of statistic | minItems: 5; maxItems: 5 |
Complete schema
{
"type": "object",
"required": [
"summary",
"focusStatisticKeys",
"gameState",
"statistics"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"focusStatisticKeys": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"enum": [
"offensiveRebounds",
"defensiveRebounds",
"turnovers",
"blocks",
"steals"
]
}
},
"gameState": {
"$ref": "#/$defs/gameState"
},
"statistics": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"$ref": "#/$defs/statistic"
}
}
},
"additionalProperties": false
}runScore
| Field | Required | Type / values | Constraints |
|---|---|---|---|
away | Yes | integer | minimum: 0 |
home | Yes | integer | minimum: 0 |
Complete schema
{
"type": "object",
"required": [
"away",
"home"
],
"properties": {
"away": {
"type": "integer",
"minimum": 0
},
"home": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}runMomentumContent
| Field | Required | Type / values | Constraints |
|---|---|---|---|
summary | Yes | string | minLength: 1 |
teamId | Yes | string | minLength: 1 |
actionNumber | Yes | integer | minimum: 0 |
run | Yes | object | |
contributors | Yes | array of object | maxItems: 4 |
turnoversForced | Yes | integer | minimum: 0 |
pointsOffTurnovers | Yes | integer | minimum: 0 |
answersItemId | No | string | minLength: 1 |
gameState | Yes | gameState |
Complete schema
{
"type": "object",
"required": [
"summary",
"teamId",
"actionNumber",
"run",
"contributors",
"turnoversForced",
"pointsOffTurnovers",
"gameState"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"teamId": {
"type": "string",
"minLength": 1
},
"actionNumber": {
"type": "integer",
"minimum": 0
},
"run": {
"type": "object",
"required": [
"teamId",
"pointsFor",
"pointsAgainst",
"unanswered",
"startActionNumber",
"lastActionNumber",
"startScore",
"endScore",
"periods"
],
"properties": {
"teamId": {
"type": "string",
"minLength": 1
},
"pointsFor": {
"type": "integer",
"minimum": 1
},
"pointsAgainst": {
"type": "integer",
"minimum": 0
},
"unanswered": {
"type": "boolean"
},
"startActionNumber": {
"type": "integer",
"minimum": 0
},
"lastActionNumber": {
"type": "integer",
"minimum": 0
},
"startScore": {
"$ref": "#/$defs/runScore"
},
"endScore": {
"$ref": "#/$defs/runScore"
},
"periods": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 1
}
}
},
"additionalProperties": false
},
"contributors": {
"type": "array",
"maxItems": 4,
"items": {
"type": "object",
"required": [
"playerId",
"points",
"assists",
"steals"
],
"properties": {
"playerId": {
"type": "string",
"minLength": 1
},
"points": {
"type": "integer",
"minimum": 0
},
"assists": {
"type": "integer",
"minimum": 0
},
"steals": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
},
"turnoversForced": {
"type": "integer",
"minimum": 0
},
"pointsOffTurnovers": {
"type": "integer",
"minimum": 0
},
"answersItemId": {
"type": "string",
"minLength": 1
},
"gameState": {
"$ref": "#/$defs/gameState"
}
},
"additionalProperties": false
}playerPerformanceItemVersions
Complete schema
{
"oneOf": [
{
"$ref": "#/$defs/playerPerformanceItem"
},
{
"$ref": "#/$defs/playerPerformanceItemV2"
}
]
}teamPerformanceItemVersions
Complete schema
{
"oneOf": [
{
"$ref": "#/$defs/teamPerformanceItem"
},
{
"$ref": "#/$defs/teamPerformanceItemV2"
}
]
}fourFactorsItemVersions
Complete schema
{
"oneOf": [
{
"$ref": "#/$defs/fourFactorsItem"
},
{
"$ref": "#/$defs/fourFactorsItemV2"
}
]
}nbaContentItem
Complete schema
{
"oneOf": [
{
"$ref": "#/$defs/initialGameEntryItem"
},
{
"$ref": "#/$defs/postGameItem"
},
{
"$ref": "#/$defs/preGameItem"
},
{
"$ref": "#/$defs/breakItem"
},
{
"$ref": "#/$defs/playerPerformanceItemVersions"
},
{
"$ref": "#/$defs/teamPerformanceItemVersions"
},
{
"$ref": "#/$defs/fourFactorsItemVersions"
},
{
"$ref": "#/$defs/pointBreakdownItem"
},
{
"$ref": "#/$defs/defensiveItem"
},
{
"$ref": "#/$defs/runMomentumItem"
}
]
}team
| Field | Required | Type / values | Constraints |
|---|---|---|---|
id | Yes | string | minLength: 1 |
name | Yes | string | minLength: 1 |
tricode | Yes | string | pattern: ^[A-Z]{3}$ |
Complete schema
{
"type": "object",
"required": [
"id",
"name",
"tricode"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"tricode": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"additionalProperties": false
}fixtureIndexEntry
| Field | Required | Type / values | Constraints |
|---|---|---|---|
fixtureId | Yes | string | minLength: 1 |
key | Yes | string | pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
label | Yes | one of: string / null | description: Tells games between the same teams apart, for example Finals Game 1; null when the sample game has none. |
date | Yes | string | format: date |
seasonType | Yes | "Regular Season", "Playoffs" | |
awayTeam | Yes | team | |
homeTeam | Yes | team | |
firstEventAt | Yes | string | format: date-time |
feeds | Yes | array of string | minItems: 1; uniqueItems: true |
itemCount | Yes | integer | minimum: 0 |
Complete schema
{
"type": "object",
"required": [
"fixtureId",
"key",
"label",
"date",
"seasonType",
"awayTeam",
"homeTeam",
"firstEventAt",
"feeds",
"itemCount"
],
"properties": {
"fixtureId": {
"type": "string",
"minLength": 1
},
"key": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"label": {
"description": "Tells games between the same teams apart, for example Finals Game 1; null when the sample game has none.",
"oneOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"date": {
"type": "string",
"format": "date"
},
"seasonType": {
"enum": [
"Regular Season",
"Playoffs"
]
},
"awayTeam": {
"$ref": "#/$defs/team"
},
"homeTeam": {
"$ref": "#/$defs/team"
},
"firstEventAt": {
"type": "string",
"format": "date-time"
},
"feeds": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
}
},
"itemCount": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}fixtureIndex
Complete schema
{
"allOf": [
{
"$ref": "content-feed.schema.json#/$defs/fixtureIndex"
},
{
"type": "object",
"properties": {
"fixtures": {
"type": "array",
"items": {
"$ref": "#/$defs/fixtureIndexEntry"
}
}
}
}
]
}