---
title: "Returns per-game team stats, score and status for every game on a date: live, scheduled and finished."
method: GET
path: "/api/v1/{sport}/stats"
tags: ["Player stats"]
---

# Returns per-game team stats, score and status for every game on a date: live, scheduled and finished.

`GET /api/v1/{sport}/stats`

## Request

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

Returns per-game team stats, score and status for every game on a date: live, scheduled and finished.

Covers the current US Eastern day's matches: live, scheduled and finished (a finished match stays for 24 hours from its start). Use the history endpoints for older games.

date is compared with each game's start time in US Eastern time.

score is null for a scheduled game. For soccer it never includes penalty shootout goals: soccerDetail carries regulation, extraTime, penalties and decidedBy.

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.

A teamStats pair the source did not measure is null or absent, never 0.

## Path parameters

- `sport` string, required

## Query parameters

- `date` string

## Response `200`

OK

- StatsResponse
  - `data` StatsGame[]
    - `eventId` string
    - `lastUpdated` string, nullable: Last time the score or state changed.
    - `name` string
    - `score` object, nullable: Null for a scheduled match (never a 0-0). Soccer: excludes shootout goals.
      - `away` number, double
      - `home` number, double
    - `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
    - `startTime` string, nullable
    - `status` ScoreStatus
      - `detail` string
      - `displayClock` string, nullable
      - `period` number, double, nullable
      - `state` string
    - `teamStats` object: A pair is null (or absent) when the source did not measure it, never a fake 0.
  - `meta` object
    - `date` string
    - `gameCount` number, double
    - `notice` string
    - `scheduledAndFinishedAsOf` string, nullable: When the scheduled and finished data was refreshed.
    - `sport` string
    - `timestamp` string, nullable: When the live data was refreshed.
  - `success` boolean

---

[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)
