---
title: "Returns every game on the schedule for a calendar day in your time zone, across NFL, college football, MLB, NBA, WNBA, NHL, tennis, soccer and UFC: start time, status, score and clock, both sides, and Kalshi win prices."
method: GET
path: "/api/v1/schedule"
tags: ["Schedule and results"]
---

# Returns every game on the schedule for a calendar day in your time zone, across NFL, college football, MLB, NBA, WNBA, NHL, tennis, soccer and UFC: start time, status, score and clock, both sides, and Kalshi win prices.

`GET /api/v1/schedule`

## Request

- Base URL: `https://api.owlsinsight.com`
- URL: `https://api.owlsinsight.com/api/v1/schedule`
- Auth: HTTP bearer

Returns every game on the schedule for a calendar day in your time zone, across NFL, college football, MLB, NBA, WNBA, NHL, tennis, soccer and UFC: start time, status, score and clock, both sides, and Kalshi win prices.

status is one of scheduled, in_progress, delayed, final, postponed, cancelled, time_tbd, unconfirmed. unconfirmed means the scheduled start passed long ago and no live data confirms the game started or ended, or live data for a game in progress stopped updating for more than 10 minutes.

eventId is the matching /odds eventId when the game was found there, otherwise null.

winPrice is the Kalshi price to buy that side (0 to 1), so the two sides can add to a little over 1. It is null once the market closes, and null when the market is too thin to price (the asks add up past 1.15, or 1.20 with a draw).

meta.status is no-data (nothing built for the range), stale (built more than 3 minutes ago, the schedule not refreshed for 5 minutes, or live scores more than 90 seconds old while a game has started and not finished), partial (the range reaches outside buildWindow, which runs from three UTC days back to nine UTC days ahead, a day in range was not built, or the schedule list behind the build was cut short), or ok, checked in that order.

## Query parameters

- `date` string
- `tz` string
- `days` string
- `sport` string

## Response `200`

OK

- DayScheduleResponse: Response from GET /api/v1/schedule. `games` are in start order (larger volume first among games starting together).
  - `count` number, double
  - `date` string: The day asked for (or today in `tz`), YYYY-MM-DD.
  - `days` number, double
  - `games` DayScheduleGame[]
    - `competition` string, nullable: Tennis tournament or UFC event name; null elsewhere.
    - `competitors` DayScheduleCompetitor[]: Always two entries; see {@link DayScheduleCompetitor} for the order.
      - `code` string
      - `name` string
      - `score` number, double, nullable: Null before the game has a score.
      - `sets` number[]: Tennis only: games won in each set, in set order.
      - `short` string
      - `side` string, nullable
      - `winPrice` number, double, nullable: Kalshi price to buy this side to win, 0 to 1, so the two sides can add to a little over 1. Null once the market closes, and null when the market is too thin to price.
      - `winner` boolean, nullable: Set once the game is final; null before then, and on a level final score.
    - `drawPrice` number, double, nullable: Soccer only: Kalshi price for the draw.
    - `eventId` string, nullable: The game's eventId on /api/v1/{sport}/odds when it was found there, else null.
    - `id` string: Stable for the life of the game, even when it is rescheduled.
    - `kalshiEventTicker` string, nullable
    - `league` string
    - `liveUpdatedAt` string, nullable: When this game's live data (status, score, clock) was last read; null before it has any.
    - `round` string, nullable: Tennis round, playoff "Game N", or UFC weight class; null when none.
    - `sport` string
    - `startCheck` DayScheduleStartCheck: The game's start time compared with independent sources.
      - `differsByMinutes` number, double, nullable: The larger of the two gaps below, in minutes; null when neither differs.
      - `flashscore` string: How an independent source's start time compares with the schedule's.
      - `flashscoreMinutes` number, double, nullable: Minutes between this start and the scores feed's start, when they differ.
      - `sportsbooks` string: How an independent source's start time compares with the schedule's.
      - `sportsbooksMinutes` number, double, nullable: Minutes between this start and the sportsbooks' start, when they differ.
    - `startTime` string: Scheduled start, ISO 8601 UTC.
    - `status` string: A game's state on the day schedule. Open: a new value must not break a reader. - `unconfirmed`: the scheduled start passed long ago and no live data confirms the game started or ended, or live data for a game in progress stopped updating for more than 10 minutes. - `time_tbd`: the start time is not set yet.
    - `statusDetail` string, nullable: Clock or result detail: "Q2 8:12", "Top 5th", "45'", "Final/OT", "KO/TKO R1 3:58".
    - `updatedAt` string
    - `volume` number, double: Kalshi volume across the game's winner markets, in contracts. Games starting together are ordered by it.
  - `meta` DayScheduleMeta: Freshness of a day-schedule answer. `status`, first match wins: - `no-data`: nothing built for the range. - `stale`: built more than 3 minutes ago, the schedule not refreshed for 5 minutes, or live scores more than 90 seconds old while a game has started and not finished. - `partial`: the range reaches outside `buildWindow`, a day in range was not built, or the list behind the build was cut short. - `ok`.
    - `ageSeconds` number, double, nullable: Seconds since `cacheTimestamp`.
    - `buildWindow` DayScheduleBuildWindow: The days the schedule is built for: three UTC days back to nine ahead.
      - `from` string
      - `to` string
    - `cacheTimestamp` string, nullable: Build time of the least recently built day in range; null when none is known.
    - `liveAgeSeconds` number, double, nullable: Seconds since live data (scores, clocks) was last read in full.
    - `source` string: Where the schedule comes from, currently "kalshi".
    - `status` string
    - `timestamp` string
    - `window` DayScheduleWindow: A UTC instant range `[start, end)`.
      - `end` string
      - `start` string
  - `sports` string[]: The sports asked for (all nine by default).
  - `success` boolean
  - `tz` 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)
