StoryStats

Getting started

Quickstart

Make your first request against the StoryStats API after your account is created.

1. Use your API key

Create a StoryStats account to get dashboard access and an API key. Enterprise teams can still book a demo to map custom coverage, throughput, and account requirements.

2. List today's games

First, discover which games are scheduled. The games endpoint returns IDs you'll use to fetch stories.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.balldontlie.io/stories/nba/games?date=2026-04-12&timezone=America/New_York"

3. Request a story

Pick a game ID from the response and fetch a story for it. Choose an audience (betting or stats) and a tone (editorial or humor).

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.balldontlie.io/stories/nba/games/18448014/pregame?audience=betting&tone=editorial"

4. Read the response

Every story exposes a tweet-length content string plus entity_tags you can use to cross-reference the BallDontLie sport APIs.

{
  "game": { "id": 18448014 },
  "story": {
    "id": 192769,
    "created_at": "2026-04-13T02:36:38.657Z",
    "content": "PHX turned OKC -7.5 into a rout, ripping a 65-47 run from Q1 into Q2 and cruising to a 135-103 win. Ryan Dunn scored 20, Branden Carlson had 26 for OKC, and Aaron Wiggins finished with 3 on a 17.5-pt line as the Thunder were buried.",
    "entity_tags": {
      "teams": [
        { "id": 21, "name": "Oklahoma City Thunder", "abbreviation": "OKC" },
        { "id": 24, "name": "Phoenix Suns", "abbreviation": "PHX" }
      ],
      "players": [
        { "id": 1028025723, "name": "Ryan Dunn" },
        { "id": 1028218679, "name": "Branden Carlson", "team": "OKC" },
        { "id": 17896078, "name": "Aaron Wiggins", "team": "OKC" }
      ]
    }
  }
}

5. Explore the reference

That's it. Head into the APIs to see the available endpoints, query parameters, and response schemas for the shared games and stories interface.