---
title: "Current Vegas lines for upcoming games (Growth+)"
method: GET
path: "/v1/{sport}/odds"
tags: ["Multi"]
---

# Current Vegas lines for upcoming games (Growth+)

`GET /v1/{sport}/odds`

## Request

- Base URL: `https://api.playcallerapp.com`
- URL: `https://api.playcallerapp.com/v1/{sport}/odds`
- Auth: API key in header `X-PlayCaller-Key`

Current spread, total, and moneyline odds for upcoming games, plus PlayCaller-computed implied point totals derived from moneylines. Sourced from TheOddsAPI (DraftKings + FanDuel), refreshed every 4 hours.

MMA (`ufc`) has no spread market — a combat sport has no point spread — so `spread` and `total` are always null for `ufc`; only `moneyline` is populated.

**Tier access:** Growth, Pro Insights, Syndicate Alpha

## Path parameters

- `sport` 'nfl' | 'nba' | 'mlb' | 'nhl' | 'cfb' | 'ufc', required

## Response `200`

Current odds for upcoming games

- object
  - `success` boolean
  - `endpoint` string
  - `sport` string
  - `count` integer
  - `data` object[]
    - `event_id` string
    - `home_team` string: For ufc, the first-listed fighter (no home/away significance)
    - `away_team` string: For ufc, the second-listed fighter
    - `commence_time` string, date-time
    - `spread` object, nullable
      - `home` number, nullable
      - `away` number, nullable
    - `total` number, nullable
    - `moneyline` object
      - `home` number, nullable
      - `away` number, nullable
    - `implied_total` object
      - `home` number, nullable
      - `away` number, nullable
    - `bookmaker` string
    - `fetched_at` string, date-time
  - `meta` ResponseMeta
    - `sport` string
    - `league` string: Present on multi-sport (ESPN-backed) endpoints; mirrors sport unless a sport has sub-leagues (e.g. soccer: epl/mls).
    - `tier` string
    - `calls_remaining_this_month` integer
    - `documentation_url` string, uri

## Other responses

- `400`: Invalid sport
- `401`: Missing or invalid API key
- `402`: Growth tier or higher required
- `429`: Rate limit or monthly quota exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/playcallerapp/apis/playcaller-data-api.md) · [All operations](https://skmtc.dev/playcallerapp/apis/playcaller-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/playcallerapp/apis/playcaller-data-api/revisions/100c0a3ffbfe?raw)
