---
title: "The odds board as it stood at an instant"
method: GET
path: "/v1/as-of/odds"
tags: ["as-of"]
---

# The odds board as it stood at an instant

`GET /v1/as-of/odds`

## Request

- Base URL: `https://api.bigballsdata.com`
- URL: `https://api.bigballsdata.com/v1/as-of/odds`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

The board as it was actually observed at `as_of`, one row per market, sportsbook and participant, each carrying the `observed_at` instant it was recorded and whether that was before kickoff.

NEVER AN EMPTY 200 FOR A PERIOD WE DID NOT OBSERVE. An `as_of` outside the observed windows is a 422 naming the floor, the ceiling and any gaps, because an empty list cannot be told apart from "no market was offered" and would let a backtest run across a window we have no record of. An in-coverage read that finds nothing IS a 200 with an empty list, and that is a different claim: it means no market was observed at that instant.

COVERAGE IS SHALLOW ON THIS RELATION AND IS NOT THE SAME AS THE PROP ARCHIVE'S. Call `/v1/as-of/coverage?relation=odds` before relying on a period. Depth differs per relation and per sport, and the two are never blended into one number.

## Query parameters

- `as_of` string, date-time, required
- `match_id` string, uuid, required

## Response `200`

ok. `{ data, meta }`. `meta.as_of_floor` and `meta.as_of_ceiling` bound what was observed; `meta.empty_means` states what an empty `data` means on an in-coverage read.

## Other responses

- `400`: invalid or missing as_of/match_id
- `403`: plan_required (Edge or higher)
- `404`: no match with that id
- `422`: unprocessable: no point-in-time record exists for that instant. The body names as_of_floor, as_of_ceiling and gaps, and suggested_fix points at /v1/as-of/coverage.
- `503`: the coverage windows are still being built

---

[API](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api.md) · [All operations](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/revisions/31fb54ac414e?raw)
