---
title: "Returns historical public betting percentages for archived NBA games: the share of tickets on each side of the spread and of the total. NBA only; no moneyline and no handle or money percentage is held."
method: GET
path: "/api/v1/history/public-betting"
tags: ["Historical data"]
---

# Returns historical public betting percentages for archived NBA games: the share of tickets on each side of the spread and of the total. NBA only; no moneyline and no handle or money percentage is held.

`GET /api/v1/history/public-betting`

## Request

- Base URL: `https://api.owlsinsight.com`
- URL: `https://api.owlsinsight.com/api/v1/history/public-betting`
- Auth: HTTP bearer

Returns historical public betting percentages for archived NBA games: the share of tickets on each side of the spread and of the total. NBA only; no moneyline and no handle or money percentage is held.

Historical endpoints share a per-key in-flight limit that is lower than the general concurrent-request limit. A request beyond it returns 429 with a Retry-After header giving the delay in seconds; wait that long and resend.

503 with a Retry-After header means the archive could not serve that request: the query was too expensive to run in one request, or the archive read path was busy. Wait the indicated seconds before resending; if it repeats, narrow the request with the filters this endpoint accepts.

Page one event at a time with limit and offset and stop when a page comes back shorter than limit. Do not fan out one request per book or market in parallel.

Either eventId or sport is required, and sport alone must be narrowed with startDate.

Only NBA games carry rows; any other sport returns an empty list. Live handle and ticket splits for every covered sport are on /api/v1/{sport}/splits.

## Query parameters

- `eventId` string
- `sport` string
- `startDate` string
- `endDate` string
- `limit` string
- `offset` string

## Response `200`

OK

- PublicBettingResponse
  - `data` object
    - `betting` PublicBettingRow[]
      - `awayTeam` string
      - `eventId` string
      - `gameDate` string
      - `homeTeam` string
      - `sport` string
      - `spread` object
        - `awayPct` number, double, nullable
        - `homePct` number, double, nullable
      - `total` object
        - `overPct` number, double, nullable
        - `underPct` number, double, nullable
    - `pagination` object
      - `hasMore` boolean
      - `limit` number, double
      - `offset` number, double
      - `total` number, double
  - `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)
