---
title: "Get a football scoreboard"
method: GET
path: "/x/sports/{league}/games/{id}"
tags: ["Sports"]
---

# Get a football scoreboard

`GET /x/sports/{league}/games/{id}`

## Request

- Base URL: `https://xquik.com/api/v1`
- URL: `https://xquik.com/api/v1/x/sports/{league}/games/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
  - none

Returns 1 game's scoreboard. It has the teams, the score by period, the status & clock, down & distance, the venue & the latest play. Each request costs 1 credit.

## Path parameters

- `league` 'nfl' | 'ncaafb', required
- `id` string, required

## Query parameters

- `fields` string
- `omit` string

## Response `200`

The game's scoreboard

- FootballScoreboard: 1 game's scoreboard.
  - `id` string, required: The game ID from your request.
  - `league` 'nfl' | 'ncaafb', required: The league from your request.
  - `seasonId` string, nullable, required: X's ID for the season. NFL games have one.
  - `seasonType` string, nullable, required: The part of the season, such as RegularSeason.
  - `week` integer, nullable, required: The week of the season.
  - `startsAt` string, date-time, nullable, required: The kickoff time in UTC, or null when X sends none Xquik can read.
  - `venue` string, nullable, required: The stadium.
  - `status` string, nullable, required: X's game status, such as Scheduled, InProgress or Closed.
  - `clock` string, nullable, required: The game clock, as X writes it.
  - `quarter` integer, nullable, required: The current or last quarter.
  - `situation` object, nullable, required: Down & distance now, or null before kickoff.
    - `down` integer, nullable, required: The current down, from 1 to 4.
    - `yardsToGo` integer, nullable, required: The yards the offense needs now for a first down.
    - `yardline` integer, nullable, required: The ball's current yard line.
    - `yardlineTeamId` string, nullable, required: The team whose half the ball is in, a key of teams.
    - `possessionTeamId` string, nullable, required: The team with the ball, a key of teams.
  - `home` FootballSide, required: A team's side of a game & its points.
    - `teamId` string, nullable, required: The team, a key of teams.
    - `points` integer, nullable, required: The team's points so far.
    - `timeoutsLeft` integer, nullable, required: The timeouts the team has left.
  - `away` FootballSide, required: A team's side of a game & its points.
    - `teamId` string, nullable, required: The team, a key of teams.
    - `points` integer, nullable, required: The team's points so far.
    - `timeoutsLeft` integer, nullable, required: The timeouts the team has left.
  - `periods` FootballPeriod[], required: Points by period, in order.
    - `type` string, nullable, required: X's name for the period, such as Quarter.
    - `number` integer, nullable, required: The period's number, or null when X sends no digits.
    - `sequence` integer, nullable, required: The period's place in the game, from 1.
    - `homePoints` integer, nullable, required: The home team's points in the period.
    - `awayPoints` integer, nullable, required: The away team's points in the period.
  - `lastPlay` FootballPlay, required: A play, with its situation, steps & linked posts.
    - `id` string, nullable, required: X's ID for the play within the game.
    - `sequence` integer, nullable, required: The play's place in its drive, or null when X sends no digits.
    - `clock` string, nullable, required: The game clock when the play started, as HH:MM:SS.
    - `type` string, nullable, required: X's kind of play, such as Pass, Rush, Punt or Conversion.
    - `direction` string, nullable, required: Where the play went, such as Left or Middle.
    - `description` string, nullable, required: The play as the official play-by-play writes it.
    - `scoring` boolean, nullable, required: Whether the play scored points.
    - `homePoints` integer, nullable, required: The home team's points after the play.
    - `awayPoints` integer, nullable, required: The away team's points after the play.
    - `score` object, nullable, required: The points a scoring play added, or null.
      - `homePoints` integer, nullable, required: The home team's score once this scoring play counted.
      - `awayPoints` integer, nullable, required: The away team's score once this scoring play counted.
      - `points` integer, nullable, required: The points the play scored.
    - `start` object, nullable, required: Down & distance when the play started, or null.
      - `down` integer, nullable, required: The down, from 1 to 4.
      - `yardsToGo` integer, nullable, required: The yards needed for a first down.
      - `yardline` integer, nullable, required: The yard line of the ball.
      - `yardlineSide` string, nullable, required: Whose half the ball was in. Home or Away in NFL games, the team's alternateId in college games.
      - `possession` string, nullable, required: The team with the ball. Home or Away in NFL games, the team's alternateId in college games.
    - `onField` object, nullable, required: Flags X shows on the field for the play, or null.
      - `calledBack` boolean, nullable, required: Whether a penalty called the play back.
      - `penaltyOnField` boolean, nullable, required: Whether a flag was thrown.
      - `timeout` boolean, nullable, required: Whether a timeout followed the play.
      - `underReview` boolean, nullable, required: Whether officials were reviewing the play.
    - `details` FootballPlayDetail[], required: The play's steps, in order.
      - `sequence` integer, nullable, required: The step's place in the play, from 1.
      - `category` string, nullable, required: X's kind of step, such as Pass, Tackle or Penalty.
      - `description` string, nullable, required: What happened in the step.
      - `direction` string, nullable, required: The direction X gives for the step.
      - `yards` integer, nullable, required: The yards the step gained or lost.
      - `players` object[], required: The players in the step & their roles.
        - `playerId` string, nullable, required: The player, a key of players.
        - `playerRole` string, nullable, required: The player's role, such as Pass, Receive or Tackle.
      - `penalty` object, nullable, required: The penalty this step called, or null.
        - `description` string, nullable, required: The penalty's name.
        - `nextDown` string, nullable, required: What the penalty does to the down.
        - `result` string, nullable, required: Whether the penalty was accepted or declined.
        - `teamId` string, nullable, required: The penalized team, a key of teams.
        - `yards` integer, nullable, required: The penalty's yards.
    - `post` object, nullable, required: The post X links to the play, or null.
      - `id` string, required: The post's ID.
      - `username` string, nullable, required: The username of the post's author, when X sends it.
    - `videoPostId` string, nullable, required: The ID of a post with the play's video.
    - `videoReplyPostId` string, nullable, required: The ID of a reply with the play's video.
  - `teams` object, required: The teams this answer names, by team ID.
  - `players` object, required: The players this answer names, by player ID.

## Other responses

- `400`: Invalid input. A value past its maxLength gets this answer, & the message names the field & its limit.
- `401`: Unauthenticated
- `402`: Payment required. MPP reads include `WWW-Authenticate`. Authenticated reads include balances, plus checkout when the key can open it. A key that reads only gets the account page instead. A failed request never creates checkout. A caller on a plan gets top-up only, plus `credits_renew_at` when the plan renews. Guest keys offer top-up.
- `404`: Not found
- `424`: Dependency unavailable, unauthorized, or limited. Default v1 uses 502. Best-practice responses use 424 for transparent dependency failures. Search answers 424 `search_unavailable` when X fails the query itself, or when its filters matched none of the last 3,000 posts read. The message says how far back the search read.
- `429`: Too many requests right now. Each user gets 500 reads a second. Each minute allows 120 writes & 60 deletes. `x_api_rate_limited` means X limits this read for now. Neither answer costs anything. Wait for the seconds in `Retry-After`, then retry.
- `502`: Dependency unavailable, unauthorized, or limited. Default v1 uses 502. Best-practice responses use 424 for transparent dependency failures. Search answers 424 `search_unavailable` when X fails the query itself, or when its filters matched none of the last 3,000 posts read. The message says how far back the search read.
- `503`: Retry x_api_unavailable after Retry-After. With X-Xquik-Busy, retry until your deadline.

## Changes

> 68 revisions in range; 1 not diffed.

- **2026-10-23** `e29bc136a9cc`: 4 breaking
  - the `dashboard` response property const value changed from `/dashboard/account` to `/dashboard/billing` for the status `402`
  - the `dashboard` response property const value changed from `/dashboard/account` to `/dashboard/billing` for the status `402`
  - the `dashboard` response property const value changed from `/dashboard/account` to `/dashboard/billing` for the status `402`
  - the `next_step` response property const value changed from `Ask the user to top up at /dashboard/account. This key cannot open checkout.` to `Ask the user to top up at /dashboard/billing. This key cannot open checkout.` for the status `402`
- **2026-10-22** `d94eba2599ff`: 1 info
  - added the required property `teams/additionalProperties/record` to the response with the `200` status
- **2026-10-22** `5840cd7e39fd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/xquik-dev/apis/xquik-api/changes/x/sports/:league/games/:id/get.md)

---

[API](https://skmtc.dev/xquik-dev/apis/xquik-api.md) - [All operations](https://skmtc.dev/xquik-dev/apis/xquik-api/llms.txt) - [OpenAPI document](https://skmtc.dev/xquik-dev/apis/xquik-api/revisions/4b2c5d75d99b?raw)
