Odds & Betting API

Live

Real-time sports betting odds from 5 major sportsbooks (DraftKings, FanDuel, PrizePicks, Underdog Fantasy, Dabble). Includes player props, game markets (spreads, moneylines, totals), line movement tracking, and cross-sportsbook comparison. Data updates automatically every 5 minutes with intelligent caching for optimal performance.

Base URL

https://api.cappersapi.com/v1/odds

Key Features

5-Minute Updates

Odds automatically refresh every 5 minutes

Smart Caching

5-minute cache for optimal performance

Line Movement Tracking

Historical odds with opening/current lines

Cross-Sportsbook Comparison

Find best lines across all books instantly

Supported Sportsbooks

DraftKings

FanDuel

PrizePicks

Underdog Fantasy

Dabble

Endpoints

GET/v1/oddsFree

Get all odds with comprehensive filtering and pagination (5-min cache)

Parameters

NameTypeRequiredDescription
sportstringNoFilter by sport (nba, nfl, mlb, nhl)
sportsbookstringNoFilter by sportsbook (draftkings, fanduel, prizepicks, underdog, dabble)
playerstringNoSearch player name (partial match)
prop_typestringNoFilter by prop type (points, rebounds, assists, etc.)
teamstringNoFilter by team name
game_datestringNoFilter by game date (YYYY-MM-DD)
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 50, max: 500)
GET/v1/odds/player/:nameFree

Get all odds for a specific player, grouped by prop type

Parameters

NameTypeRequiredDescription
namestringYesPlayer name (URL encoded, e.g., "LeBron%20James")
sportsbookstringNoFilter by sportsbook slug
GET/v1/odds/compare/:player/:propFree

Compare odds across all sportsbooks for a specific player prop. Find best lines.

Parameters

NameTypeRequiredDescription
playerstringYesPlayer name (URL encoded)
propstringYesProp type slug (points, rebounds, assists, etc.)
GET/v1/odds/line-movementFree

Track line movements over time. See opening lines, current lines, and movement direction.

Parameters

NameTypeRequiredDescription
playerstringYesPlayer name
prop_typestringYesProp type slug (points, rebounds, etc.)
hoursintegerNoLookback period in hours (default: 24, max: 168)
GET/v1/odds/sportsbooksFree

List all available sportsbooks with active odds counts

GET/v1/odds/sportsbooks/sportsFree

List all available sports

GET/v1/odds/gamesFree

Get games schedule (filtered by sport and date)

Parameters

NameTypeRequiredDescription
sportstringNoFilter by sport slug (nba, nfl, mlb, nhl)
datestringNoFilter by date (YYYY-MM-DD)
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 50, max: 200)
GET/v1/odds/infoFree

Get odds service overview and supported sportsbooks/sports

Available Prop Types

NBA

pointsreboundsassiststhreesstealsblocksturnoverspra

NFL

passing_yardsrushing_yardsreceiving_yardstouchdownsreceptionsinterceptions

Game Markets

moneylinespreadtotal

Code Examples

javascript

const response = await fetch(
  'https://api.cappersapi.com/v1/odds?sport=nba&sportsbook=draftkings',
  {
    headers: {
      'Authorization': 'Bearer cap_your_api_key'
    }
  }
);

const { data, cache_info } = await response.json();
console.log(data[0]); // Current NBA odds from DraftKings
console.log(cache_info); // Cache status and expiry

python

import requests

response = requests.get(
    'https://api.cappersapi.com/v1/odds',
    params={'sport': 'nba', 'sportsbook': 'draftkings'},
    headers={'Authorization': 'Bearer cap_your_api_key'}
)

data = response.json()
print(data['data'][0])  # Current NBA odds
print(data['cache_info'])  # Cache info

curl

curl -X GET "https://api.cappersapi.com/v1/odds?sport=nba&sportsbook=draftkings" \
  -H "Authorization: Bearer cap_your_api_key"

Response Example

GET /v1/odds/player/LeBron%20James
{
  "player_name": "LeBron James",
  "total_props": 15,
  "prop_types": 5,
  "props": {
    "Points": [
      {
        "sportsbook_name": "DraftKings",
        "line_value": 25.5,
        "over_odds": -110,
        "under_odds": -110,
        "game_time": "2026-01-28T02:00:00Z"
      },
      {
        "sportsbook_name": "FanDuel",
        "line_value": 26.0,
        "over_odds": -115,
        "under_odds": -105,
        "game_time": "2026-01-28T02:00:00Z"
      }
    ],
    "Rebounds": [...],
    "Assists": [...]
  },
  "cache_info": {
    "cached": true,
    "timestamp": "2026-01-27T21:30:00Z",
    "expires_in_seconds": 245
  }
}

Caching & Updates

How It Works

Automatic Scraping: Odds are fetched from all sportsbooks every 5 minutes

5-Minute Cache: API responses are cached for 5 minutes for optimal performance

Always Current: Only active/current odds are returned (old odds kept for line tracking)

Line History: Previous odds are retained with timestamps for movement analysis

All responses include cache_info showing whether data was cached and when it expires.