---
title: "Multi-book line shopping for one match (sport-agnostic)"
method: GET
path: "/v1/games/{id}/books"
tags: ["nerd"]
---

# Multi-book line shopping for one match (sport-agnostic)

`GET /v1/games/{id}/books`

## Request

- Base URL: `https://api.bigballsdata.com`
- URL: `https://api.bigballsdata.com/v1/games/{id}/books`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Every sportsbook with current lines on this match across moneyline +
spread + total, joined to books_reference for display name and logo.
Books sorted by display_name. 30s Redis cache. Empty `books: []` (not
404) when the match exists but has no odds rows.
Legacy alias: `GET /v1/nerd/games/{id}/books` (sunset 2026-09-01).
**Edge plan or higher**: odds access starts at Edge; Free / Solo / Trio
receive a 403 naming the tier and linking the docs and pricing pages.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `view` 'nerd'

## Response `200`

ok

- object

## Other responses

- `400`: invalid game_id
- `403`: plan_required (Edge or higher)
- `404`: match not found

---

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