GuidesAPI ReferenceRelease Notes
HomeLog InHome
Guides

Catalog API response: Stories

Field reference and example JSON for paginated Stories responses from the Catalog API.

Stories list responses use the pagination envelope and fields below. For the shared content model, geo-targeting, and extraInfo, see Response principles.

Stories-specific fields: isLive, pages[], titleImageUrl, htmlUrl. Stories do not have top-level subtitle, duration, videoRenditions, translatedDescriptions, or translatedSubtitles. pages[].videoRenditions appears when direct video access is enabled for your feed.

classDiagram
direction TB

class Story {
  string id
  string type
  string title
  string description
  number version
  string[] aspectRatios
  string status
  boolean isLive
  string createTime
  string updateTime
  Thumbnail[] thumbnails
  string titleImageUrl
  GeoTargeting geoTargeting
  StoryMetadata metadata
  string executionTimeType
  string htmlUrl
  Page[] pages
  object[] labels
  StoryExtraInfo extraInfo
  string defaultLanguage
  object translatedTitles
  string competitionId
  string publishMethod
  CreationSettings creationSettings
  StoryGame game
  number rating
}

class Thumbnail {
  string url
  string aspectRatio
}

class GeoTargeting {
  string[] includedGeos
  string[] excludedGeos
}

class ProviderRef {
  string provider
  string providerId
  number wscId
}

class StoryMetadata {
  ProviderRef competition
  ProviderRef[] competitions
  ProviderRef game
  ProviderRef team
  ProviderRef player
  ProviderRef round
  ProviderRef season
}

class Page {
  string id
  number index
  number duration
  Thumbnail[] thumbnails
  string createTime
  string updateTime
  PageMetadata metadata
  PageExtraInfo extraInfo
  VideoRendition[] videoRenditions
}

class VideoRendition {
  string url
  string fileType
  string aspectRatio
  number bitRate
  Resolution resolution
}

class Resolution {
  string level
  number height
  number width
}

class PageMetadata {
  ProviderRef competition
  ProviderRef[] competitions
  ProviderRef game
  ProviderRef team
  ProviderRef player
  ProviderRef round
  ProviderRef season
}

class PageExtraInfo {
  string homeTeam
  string awayTeam
  string propertyId
  string propertyName
  string gameId
  string teamId
  string playerId
  string roundId
  string seasonId
}

class StoryExtraInfo {
  string homeTeam
  string awayTeam
  string propertyId
  string propertyName
  string rating
  string isCurrentlyLive
  string activeLabels
  string gameId
  string teamId
  string playerId
  string roundId
  string seasonId
}

class CreationSettings {
  string creationTimePeriod
  string ruleName
  string storyType
}

class StoryGame {
  string gameDate
  string gameStatus
  string stadium
  GameParticipant[] participants
}

class GameParticipant {
  string name
  ProviderRef ids
  string type
  number score
}

Story --> Thumbnail : thumbnails 0..*
Story --> GeoTargeting : geoTargeting 1
Story --> StoryMetadata : metadata 1
Story --> Page : pages 0..*
Story --> StoryExtraInfo : extraInfo 1
Story --> CreationSettings : creationSettings 1
Story --> StoryGame : game 0..1
StoryGame --> GameParticipant : participants 0..*
GameParticipant --> ProviderRef : ids

StoryMetadata --> ProviderRef : entities
Page --> Thumbnail : thumbnails 0..*
Page --> PageMetadata : metadata 1
Page --> PageExtraInfo : extraInfo 1
Page --> VideoRendition : videoRenditions 0..*
VideoRendition --> Resolution : resolution
PageMetadata --> ProviderRef : entities

Response shape

List responses wrap stories in a pagination envelope. Each element of result is a Story object.

Pagination envelope

Property (dot notation)TypeExample
totalItemsnumber1
result[]array[ {...} ]

Story object properties

The following table lists properties on each story in result[], using dot notation for nested fields.

Property (dot notation)TypeExample
idstring697a1360b1559e82007800e4
typestringStory
titlestringExample story title
descriptionstringExample story description
versionnumber7
aspectRatios[]string[]["Vertical"]
statusstringActive
isLivebooleanfalse
createTimestring (ISO-8601)2026-01-28T13:47:12.03Z
updateTimestring (ISO-8601)2026-01-29T10:14:09.518Z
thumbnails[]object[][ {...} ]
thumbnails[].urlstringhttps://cdn.example.invalid/thumbnails/story_square.jpg
thumbnails[].aspectRatiostringSquare
titleImageUrlstring or nullnull
geoTargetingobject{...}
geoTargeting.includedGeosstring[] or nullnull
geoTargeting.excludedGeosstring[] or nullnull
metadataobject{...}
metadata.competitionobject or null{ "provider", "providerId", "wscId" }
metadata.competitions[]object[]same shape as metadata.competition
metadata.gameobject or null{ "provider", "providerId", "wscId" }
metadata.teamobject or null{ "provider", "providerId", "wscId" }
metadata.playerobject or null{ "provider", "providerId", "wscId" }
metadata.roundobject or null{ "provider", "providerId", "wscId" }
metadata.seasonobject or null{ "provider", "providerId", "wscId" }
executionTimeTypestringNone
htmlUrlstringhttps://example.invalid/stories/story_9f3c2a1b.html
pages[]object[][ {...} ]
pages[].idstring697a135cb1559e82007800e3
pages[].indexnumber0
pages[].durationnumber12.3123
pages[].createTimestring2026-01-28T13:47:08.341Z
pages[].updateTimestring2026-01-28T13:47:08.341Z
pages[].thumbnails[]object[][ {...} ]
pages[].thumbnails[].urlstringhttps://cdn.example.invalid/thumbnails/page_vertical.jpg
pages[].thumbnails[].aspectRatiostringVertical
pages[].metadataobject{...}
pages[].metadata.competitionobject or nullnull
pages[].metadata.competitionsobject[] or nullnull
pages[].metadata.gameobject or null{ "provider", "providerId", "wscId" }
pages[].metadata.teamobject or null{ "provider", "providerId", "wscId" }
pages[].metadata.playerobject or null{ "provider", "providerId", "wscId" }
pages[].metadata.roundobject or null{ "provider", "providerId", "wscId" }
pages[].metadata.seasonobject or null{ "provider", "providerId", "wscId" }
pages[].extraInfoobject{...}
pages[].extraInfo.homeTeamstringCharlotte Hornets
pages[].extraInfo.awayTeamstringSacramento Kings
pages[].extraInfo.propertyIdstringc81e728d9d4c2f636f067f89cc14862c
pages[].extraInfo.propertyNamestringNBA
pages[].extraInfo.gameIdstring1522500076
pages[].extraInfo.teamIdstring1610612758
pages[].extraInfo.playerIdstring1642928
pages[].extraInfo.roundIdstring6
pages[].extraInfo.seasonIdstring2025
pages[].videoRenditionsobject[]same shape as Moments and Videos videoRenditions
labels[]object[]{ "title", "identifier" }
extraInfoobject{...}
extraInfo.homeTeamstringCharlotte Hornets
extraInfo.awayTeamstringSacramento Kings
extraInfo.propertyIdstringc81e728d9d4c2f636f067f89cc14862c
extraInfo.propertyNamestringNBA
extraInfo.ratingstring3
extraInfo.isCurrentlyLivestringFalse
extraInfo.activeLabelsstring[]
extraInfo.gameIdstring1522500076
extraInfo.teamIdstring1610612758
extraInfo.playerIdstring1642928
extraInfo.roundIdstring6
extraInfo.seasonIdstring2025
defaultLanguagestring (Language)und
translatedTitlesobject{} or { "en": "...", "es": "..." }
competitionIdstring2
publishMethodstringMANUAL
creationSettingsobject{...}
creationSettings.creationTimePeriodstringNone
creationSettings.ruleNamestring or nullnull
creationSettings.storyTypestring or nullnull
gameobject or null{...}
game.gameDatestring2025-07-21T02:00:00
game.gameStatusstringEnded
game.stadiumstringThomas & Mack Center
game.participants[]array[ {...} ]
game.participants[].namestringCharlotte Hornets
game.participants[].idsobject{ "provider", "providerId", "wscId" }
game.participants[].ids.providerstring or nullNBAStatsFeeds
game.participants[].ids.providerIdstring or null1610612766
game.participants[].ids.wscIdnumber1004
game.participants[].typestringTeam
game.participants[].scorenumber83
ratingnumber3

Nested metadata.* entities have provider as null. A provider name appears only on game.participants[].ids.provider. Each entity object also has providerId and wscId.

executionTimeType is None when no workflow context is set. Stories are the only content type that carries another value (PreGame, InGame, PostGame).

htmlUrl is unique to your feed. Compare and cache by id, not by URL. See Response principles.

extraInfo is an open dictionary. Keys vary by sport. See Response principles.

Object keys in translatedTitles match the Language enum names (for example, en, es, en_US, or und for default). An empty object {} is valid when no translated titles are present.

Example JSON - doesn't contain all properties

{
  "totalItems": 1,
  "result": [
    {
      "id": "697a1360b1559e82007800e4",
      "type": "Story",
      "title": "Example story title",
      "description": "Example story description",
      "version": 7,
      "aspectRatios": ["Vertical"],
      "status": "Active",
      "isLive": false,
      "createTime": "2026-01-28T13:47:12.03Z",
      "updateTime": "2026-01-29T10:14:09.518Z",
      "thumbnails": [
        {
          "url": "https://cdn.example.invalid/thumbnails/square.jpg",
          "aspectRatio": "Square"
        },
        {
          "url": "https://cdn.example.invalid/thumbnails/twotothree.jpg",
          "aspectRatio": "TwoToThree"
        },
        {
          "url": "https://cdn.example.invalid/thumbnails/horizontal.jpg",
          "aspectRatio": "Horizontal"
        }
      ],
      "titleImageUrl": null,
      "geoTargeting": {
        "includedGeos": null,
        "excludedGeos": null
      },
      "metadata": {
        "competition": {
          "provider": null,
          "providerId": null,
          "wscId": 2
        },
        "competitions": [
          {
            "provider": null,
            "providerId": null,
            "wscId": 2
          }
        ],
        "game": {
          "provider": null,
          "providerId": "1522500076",
          "wscId": 104138149
        },
        "team": {
          "provider": null,
          "providerId": "1610612758",
          "wscId": 1026
        },
        "player": {
          "provider": null,
          "providerId": "1642928",
          "wscId": 9988274
        },
        "round": {
          "provider": null,
          "providerId": "6",
          "wscId": 0
        },
        "season": {
          "provider": null,
          "providerId": "2025",
          "wscId": 0
        }
      },
      "executionTimeType": "None",
      "htmlUrl": "https://example.invalid/stories/697a1360b1559e82007800e4.html",
      "pages": [
        {
          "id": "697a135cb1559e82007800e3",
          "index": 0,
          "duration": 12.3123,
          "thumbnails": [
            {
              "url": "https://cdn.example.invalid/thumbnails/page_vertical.jpg",
              "aspectRatio": "Vertical"
            }
          ],
          "createTime": "2026-01-28T13:47:08.341Z",
          "updateTime": "2026-01-28T13:47:08.341Z",
          "metadata": {
            "competition": null,
            "competitions": null,
            "game": {
              "provider": null,
              "providerId": "1522500076",
              "wscId": 104138149
            },
            "team": {
              "provider": null,
              "providerId": "1610612758",
              "wscId": 1026
            },
            "player": {
              "provider": null,
              "providerId": "1642928",
              "wscId": 9988274
            },
            "round": {
              "provider": null,
              "providerId": "6",
              "wscId": 0
            },
            "season": {
              "provider": null,
              "providerId": "2025",
              "wscId": 0
            }
          },
          "extraInfo": {
            "homeTeam": "Charlotte Hornets",
            "awayTeam": "Sacramento Kings",
            "propertyId": "c81e728d9d4c2f636f067f89cc14862c",
            "propertyName": "NBA",
            "gameId": "1522500076",
            "teamId": "1610612758",
            "playerId": "1642928",
            "roundId": "6",
            "seasonId": "2025"
          }
        }
      ],
      "labels": [],
      "extraInfo": {
        "homeTeam": "Charlotte Hornets",
        "awayTeam": "Sacramento Kings",
        "propertyId": "c81e728d9d4c2f636f067f89cc14862c",
        "propertyName": "NBA",
        "rating": "3",
        "isCurrentlyLive": "False",
        "activeLabels": "[]",
        "gameId": "1522500076",
        "teamId": "1610612758",
        "playerId": "1642928",
        "roundId": "6",
        "seasonId": "2025"
      },
      "defaultLanguage": "und",
      "translatedTitles": {},
      "competitionId": "2",
      "publishMethod": "MANUAL",
      "creationSettings": {
        "creationTimePeriod": "None",
        "ruleName": null,
        "storyType": null
      },
      "game": {
        "gameDate": "2025-07-21T02:00:00",
        "gameStatus": "Ended",
        "stadium": "Thomas & Mack Center",
        "participants": [
          {
            "name": "Charlotte Hornets",
            "ids": {
              "provider": "NBAStatsFeeds",
              "providerId": "1610612766",
              "wscId": 1004
            },
            "type": "Team",
            "score": 83
          },
          {
            "name": "Sacramento Kings",
            "ids": {
              "provider": "NBAStatsFeeds",
              "providerId": "1610612758",
              "wscId": 1026
            },
            "type": "Team",
            "score": 78
          }
        ]
      },
      "rating": 3
    }
  ]
}

Did this page help you?