---
title: "Returns live games for one sport with current score, period and status."
method: GET
path: "/api/v1/{sport}/scores/live"
tags: ["Live scores"]
---

# Returns live games for one sport with current score, period and status.

`GET /api/v1/{sport}/scores/live`

## Request

- Base URL: `https://api.owlsinsight.com`
- URL: `https://api.owlsinsight.com/api/v1/{sport}/scores/live`
- Auth: HTTP bearer

Returns live games for one sport with current score, period and status.

Score changes for games in play are also pushed on the scores-update WebSocket event, opt-in with scores in the subscription, using this endpoint's event ids. That event carries a lean view (status, teams, score); this endpoint has the full event.

An empty events array with hasScheduledGames true means games are scheduled but none has started.

NFL, NCAAF and NBA give the period in status.period and its label in status.detail: Q1 to Q4, Halftime (period 2), or OT (period 5 for every overtime; overtimes are not numbered). NHL gives P1 to P3, Intermission between periods (around the restart, status.period can already be the next period), OT (period 4 for every overtime) or SO (period 5). Owls Insight has no game clock for these sports, so status.displayClock is null. Soccer status.detail is the half (1st Half, 2nd Half) and the match minute is status.displayClock, e.g. 67 or 45+2. A phase without a label, soccer half-time included, reads Live with status.period null, as does college basketball. MLB gives the inning in status.period and status.detail (e.g. Top 7th); in extra innings status.detail reads Top Extra Inning, Bot Extra Inning, or Extra Inning when the half is unknown, with status.period null, because extra innings are not numbered. On /scores/live, a baseball linescore period 10 is every extra inning combined.

## Path parameters

- `sport` string, required

## Response `200`

OK

- SportScoresResponse: Response from GET /{sport}/scores/live (single sport).
  - `cached` boolean
  - `count` number, double
  - `events` ScoreEvent[]
    - `away` ScoreTeam
      - `homeAway` string
      - `linescores` object[]: Per-period scores. Quarters, sets, maps, or — for baseball — INNINGS. A side that never batted in a half-inning (walk-off, or the home team leading after the top of the 9th) simply has no entry for that period, so the two sides' arrays can differ in length.
        - `period` number, double
        - `score` number, double
      - `score` number, double
      - `team` object
        - `abbreviation` string
        - `displayName` string
        - `logoUrl` string
    - `baseballDetail` BaseballScoreDetail: Baseball-specific live detail. `inning`/`half` are present for live games only. `hits`/`errors` complete the R-H-E line — runs are `home.score`/`away.score`, and per-inning runs are `home.linescores`/`away.linescores`. Outs and runners on base are NOT available: the upstream source does not carry them.
      - `errors` object: Team errors.
        - `away` number, double
        - `home` number, double
      - `half` string: Half of the current inning. Live games only. Absent when the source does not say.
      - `hits` object: Team hits.
        - `away` number, double
        - `home` number, double
      - `inning` number, double: Current inning, 1-indexed. Live games only.
      - `pitcher` object: Pitcher the source currently lists for each side.
        - `away` string, nullable
        - `home` string, nullable
    - `genericTeamStats` object: Sport-specific aggregate team stats as a key-value map. For baseball this carries the box score (hits, errors, homeRuns, runsBattedIn, leftOnBase, walks, strikeouts, stolenBases, atBat, battingAverage, …).
    - `h2h` H2HData
      - `awayCountry` string
      - `awayRanking` number, double
      - `awaySlug` string
      - `headToHead` RecentGame[]
        - `awayTeam` string
        - `date` number, double
        - `homeSide` boolean
        - `homeTeam` string
        - `matchId` string
        - `result` string
        - `score` string
        - `surface` string
        - `tournament` string
      - `homeCountry` string
      - `homeRanking` number, double
      - `homeSlug` string
      - `lastGamesAway` RecentGame[]
        - `awayTeam` string
        - `date` number, double
        - `homeSide` boolean
        - `homeTeam` string
        - `matchId` string
        - `result` string
        - `score` string
        - `surface` string
        - `tournament` string
      - `lastGamesHome` RecentGame[]
        - `awayTeam` string
        - `date` number, double
        - `homeSide` boolean
        - `homeTeam` string
        - `matchId` string
        - `result` string
        - `score` string
        - `surface` string
        - `tournament` string
      - `surfaceFilter` string
    - `home` ScoreTeam
      - `homeAway` string
      - `linescores` object[]: Per-period scores. Quarters, sets, maps, or — for baseball — INNINGS. A side that never batted in a half-inning (walk-off, or the home team leading after the top of the 9th) simply has no entry for that period, so the two sides' arrays can differ in length.
        - `period` number, double
        - `score` number, double
      - `score` number, double
      - `team` object
        - `abbreviation` string
        - `displayName` string
        - `logoUrl` string
    - `id` string
    - `incidents` MatchIncident[]: Live match incidents — goals, cards, subs (soccer).
      - `assistPlayerName` string
      - `minute` number, double
      - `playerName` string
      - `playerOut` string
      - `teamSide` string
      - `type` string
    - `lastUpdated` string, nullable: Last time this event's CONTENT changed (score, status, linescores, …), not the poll time.
    - `league` string
    - `lineups` LineupsData
      - `away` PlayerLineup[]
        - `country` string
        - `jersey` number, double
        - `name` string
        - `playerId` string
        - `playerUrl` string
        - `rating` number, double
        - `starter` boolean
      - `home` PlayerLineup[]
        - `country` string
        - `jersey` number, double
        - `name` string
        - `playerId` string
        - `playerUrl` string
        - `rating` number, double
        - `starter` boolean
    - `matchStats` LiveMatchStats
      - `corners` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `fouls` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `freeKicks` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `goalkeeperSaves` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `offsides` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `passes` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `possession` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `redCards` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `shotsOnTarget` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `shotsTotal` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `tackles` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `throwIns` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
      - `yellowCards` HomeAway
        - `away` number, double, nullable
        - `home` number, double, nullable
    - `name` string
    - `soccerDetail` SoccerScoreDetail: Soccer result breakdown. `home.score`/`away.score` (and `score` on the stats endpoints) are the score of the match itself, after extra time when it was played, and NEVER include shootout goals; the shootout is only in `penalties`.
      - `decidedBy` string: How a finished match was decided. Absent while in play.
      - `extraTime` object: Score at the end of extra time. Only when extra time was played.
        - `away` number, double
        - `home` number, double
      - `penalties` object: Penalty shootout score. Only when a shootout was played.
        - `away` number, double
        - `home` number, double
      - `regulation` object: Score at the end of normal time.
        - `away` number, double
        - `home` number, double
    - `sourceMatchId` string: Upstream match id, for correlating with the stats endpoints.
    - `sport` string
    - `startTime` string, nullable: Null when the source did not supply a start time.
    - `status` ScoreStatus
      - `detail` string
      - `displayClock` string, nullable
      - `period` number, double, nullable
      - `state` string
    - `tennisDetail` TennisScoreDetail: Tennis-specific live detail (games within sets, current game points, serving).
      - `currentGameScore` object: Current game points (e.g. "40" vs "A"). Absent between games.
        - `away` string
        - `home` string
      - `currentSet` number, double: Current set number (1-indexed).
      - `serving` string: Which side is serving.
      - `sets` object[]: Games won by each player in each set, e.g. [{home:6,away:4},{home:3,away:2}].
        - `away` number, double
        - `home` number, double
  - `sport` string
  - `success` boolean
  - `timestamp` string

---

[API](https://skmtc.dev/owlsinsight/apis/owls-insight-api.md) · [All operations](https://skmtc.dev/owlsinsight/apis/owls-insight-api/llms.txt) · [OpenAPI document](https://skmtc.dev/owlsinsight/apis/owls-insight-api/revisions/76c1ea016ff1?raw)
