8 SPORTS  ·  ONE API

The sports data API built for developers ballers.

Real-time scores, odds, stats, and intelligence across 8 sports. One unified schema, ~200ms REST round trips on cached and stored reads, a live WebSocket feed, and confidence scoring on every response.

No credit card. 1,000 req/day on the free plan (2,000 with GitHub).

curl, live EPL scoresbash
curl https://api.bigballsdata.com/v1/matches \
  -H "Authorization: Bearer bbs_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -G \
  --data-urlencode "league=epl" \
  --data-urlencode "status=live"

# Response (abbreviated):
{
  "data": [
    {
      "id": "m_abc123",
      "home": "Arsenal",
      "away": "Chelsea",
      "scores": { "value": { "home": 2, "away": 1 }, "confidence": 0.95 }
    }
  ],
  "meta": { "source": "official-league", "confidence": 0.95, "cached": false }
}
8 Sports837 Leagues132,000+ Matches16+ Sportsbooks60s Live OddsSee full coverage →
Football (Soccer)BasketballAmerican FootballBaseballIce HockeyCricketMMAF1

Discoverable by AI agents out of the box

Every endpoint is machine-readable. No custom integration work required.

import { BigBallSportsClient } from '@bigballsdata/sdk';
const client = new BigBallSportsClient('bbs_live_...');
const matches = await client.matches.list({
  sport: 'football'
});

Built for the way ballers actually work

Every API call returns the same envelope. Every field carries provenance. Every source has a rate-limit and a circuit breaker. No surprises.

One unified schema

Scores, odds, lineups, stats, events, every sport returns the same envelope. Integrate once; cover everything.

Real-time WebSocket feed

socket.io rooms by sport, league, and match. Sub-50ms delivery on Pro+ for live scores and odds movement.

Confidence on every response

Every field ships with a provenance score so your app can decide when to show caveats, no silently stale or partial data.

Free tier, no credit card

1,000 requests/day on the free plan. Sign up with GitHub to double it to 2,000. First request in under 30 seconds.

What data do you get?

One unified envelope across every sport. Pick a sport to see the fields, stats, and a real response.

Match fields

  • id
  • sport
  • league
  • home
  • away
  • kickoff_utc
  • status
  • score
  • linescore
  • attendance
  • broadcast
  • has_odds

Stat fields (mostly team-level)

  • shots
  • shots_on_target
  • possession_percent
  • passes
  • corners
  • offsides
  • fouls
  • saves
  • cards_yellow
  • cards_red
  • xg
  • progressive_passes
  • pressures
Example responsejson
{
  "data": [
    {
      "id": "bb_match_8h2k5p9q3xyz",
      "sport": "football",
      "league": "EPL",
      "home": {
        "name": "Arsenal",
        "short_name": "ARS",
        "logo_url": "https://cdn.bigballsdata.com/teams/ars.png"
      },
      "away": {
        "name": "Chelsea",
        "short_name": "CHE",
        "logo_url": "https://cdn.bigballsdata.com/teams/che.png"
      },
      "kickoff_utc": "2026-05-20T19:00:00Z",
      "status": "in_progress",
      "score": { "home": 2, "away": 1 },
      "linescore": null,
      "attendance": 60260,
      "broadcast": "Sky Sports Main Event",
      "has_odds": true
    }
  ],
  "pagination": { "total": 47, "limit": 1, "offset": 0 }
}
Try itbash
curl -H "x-api-key: YOUR_KEY" \
  "https://api.bigballsdata.com/v1/stored/matches?sport=football&limit=1"
World Cup 2026 archive · 48 teams · 72 Elo predictions · full tournament progression history

Intelligence layer

  • Formation history analysiscoming soon
  • Tournament progression probabilitieslive
  • Revenge factor / H2H history (/h2h)live
  • Schedule congestionbuilding now

More than data. Intelligence.

Raw scores and odds are table stakes. We also ship the derived signals you'd otherwise have to model yourself (edges, sims, form, splits, history) on the same unified envelope.

  • Value bet detection

    Elo-implied probability vs the market line. Edges surfaced on every prediction.

  • Player-prop value finder

    Player props where the empirical hit rate beats the de-vigged market line, across points, rebounds, assists, threes, and combos.

  • Tournament progression

    Monte Carlo Elo simulations: knockout-stage and championship probabilities for every team.

  • Form index

    Weighted recent results. Newer matches and higher-quality opponents count more.

  • ATS record with splits

    Against-the-spread records broken down by home / away, favorite / underdog, and line range.

  • Head-to-head history

    Full meeting history between two teams: record, last meetings, venue splits, revenge spots.

  • BTTS + O/U rates

    Both-teams-to-score and over/under hit rates by team, league, and recent window.

Built for the people actually shipping

Five audiences, one unified API, same response envelope. Pick your angle.

  • DFS Grinder

    Projections, ownership, ceiling, floor.

    Build optimizers without scraping ten sites every Sunday morning. One envelope, every slate.

    /v1/dfs, /v1/fantasy

  • Prediction Market Trader

    Event contract edge in one call.

    Probabilities, settlement signals, and market depth for Kalshi-style contracts. Stop reconciling four feeds.

    /v1/prediction-markets

  • Content Machine

    Recaps and previews on autopilot.

    Templated stat blurbs, narrative blocks, and headline-ready phrasing. Plug into a CMS, ship copy at scale.

    /v1/content

  • Card Shark

    Real odds, sharp moves, ATS splits.

    The data your bookie hopes you don't have. Value edges, line history, and contrarian signals on every market.

    /v1/matches, /v1/teams/:id/ats, intelligence layer

  • Second Screen

    Companion apps that move with the game.

    Real-time scores, plays, and lineups via a low-latency WebSocket (sub-50ms on Pro+). Built to survive Sunday afternoon kickoff load.

    /v1/matches/live, WebSocket /live

Next on the namespace map

Reserved paths, building now. Same canonical envelope when they land.
  • /v1/fantasyComing soon

    Season-long fantasy projections, rankings, waivers.

  • /v1/dfsComing soon

    Daily slates, salaries, projections, ownership.

  • /v1/prediction-marketsComing soon

    Event contract probabilities, settlement, depth.

  • /v1/contentComing soon

    Templated previews, recaps, editorial blocks.

How fresh is the data, exactly?

Every data type ships on its own cadence. We publish the exact intervals so you can size your cache and your confidence checks against the worst-case staleness, not a marketing approximation.

  • Real-time

    Live scores

    Every 15 seconds
    during live games
  • Real-time

    Odds

    Every 60 seconds
    Delta polling, only changed lines fetched
  • Real-time

    Standings

    After final whistle
  • Frequent

    Player stats

    Minutes after game ends
    Live player stats every 15s during games
  • Daily

    Rosters

    Checked daily
    updated when changes detected
  • Real-time

    Predictions

    After each result
  • Static

    Historical data

    Static

Cadences are upper bounds, most reads hit a warm cache and return faster. WebSocket subscribers receive score and odds changes the moment the upstream poll picks them up, with no additional poll-window delay. During live games, delta polling ensures only changed data is fetched, minimizing latency and API usage.

What we cover, sport by sport

One row per sport, one column per data type. We publish the honest status, no soft "partial" cells hiding a gap, no promise of data we don't ship.

SportScoresOddsPropsStandingsPlayer StatsInjuriesLineupsHistoricalPredictionsPlay-by-Play
Football (Soccer)🔜🔜🔜
Basketball (NBA + NCAAB)🔜
American Football (NFL + NCAAF)🔜🔜🔜
Baseball🔜🔜🔜🔜
Ice Hockey🔜
Cricket🔜🔜🔜🔜🔜🔜🔜
MMA🔜🔜🔜
Formula 1🔜🔜🔜🔜
Status
Real-time / live updates
Status
Fully covered
Status
Coming soon
Status
Not applicable

Cells marked "not applicable" are genuinely N/A, MMA fighters don't have lineups, Formula 1 doesn't have bookmaker lines on the public sportsbooks we normalize. "Coming soon" means the upstream exists and the data type will land once the sport clears our production bar.

Integrate in 3 lines

Use the official SDK or hit the REST API directly. Every response is the same envelope.

Node.js, @bigballsdata/sdktypescript
import { BigBallSportsClient } from '@bigballsdata/sdk';

const client = new BigBallSportsClient('bbs_live_...');

// Today's live Premier League matches with real-time scores + odds
const matches = await client.matches.list({ sport: 'football' });
for (const m of matches.data) {
  console.log(m.scores?.value, m.confidence);
}

Leagues we serve today

Five flagship leagues with end-to-end coverage on the free plan. More on the way as we validate each one against production traffic.

16+ sportsbooks, one normalized schema

Moneyline, spread, and totals across the major US and global books, returned in the same envelope as every other field. No per-bookmaker quirks to map.

  • Pinnacle
  • DraftKings
  • FanDuel
  • BetMGM
  • Bovada
  • Kalshi
  • Polymarket
  • Unibet
  • Matchbook
  • Bodog
  • BetOnline
  • LowVig
  • William Hill
  • Caesars
  • BetUS
  • MyBookie
  • + more

Bookmaker names are trademarks of their respective owners and are shown only to indicate which books we normalize. Big Balls Sports Data is not affiliated with, endorsed by, or sponsored by any of them.

Frequently asked

What is a sports data API?
A sports data API is an HTTP service that returns structured data about live games, scores, odds, lineups, and statistics in a machine-readable format. Developers use it to power scoreboards, fantasy apps, betting platforms, and analytics dashboards without scraping vendor sites or maintaining feed integrations directly.
How do I get real-time sports data?
Big Balls Sports Data exposes both REST and WebSocket surfaces. REST is best for polled reads of scores, odds, standings, and stats (~200ms typical round trip). The WebSocket feed at wss://api.bigballsdata.com/live pushes score updates, odds movement, and lineup confirmations as they happen (sub-50ms latency on the Pro plan), with rooms scoped by sport, league, and match.
What sports does Big Balls Sports Data cover?
Football (Soccer), EPL, La Liga, Bundesliga, Ligue 1, Serie A, plus NBA, MLB, NFL + NCAAF, and NHL, with end-to-end coverage on the free plan across scores, odds, lineups, stats, standings, and events. Additional leagues land as we validate each one against production traffic.
How much does a sports data API cost?
Big Balls Sports Data has a free tier at 1,000 req/day with no credit card required (2,000 if you sign up with GitHub). Paid plans add higher daily caps, real-time odds without delay, and webhook delivery. See the pricing page for current rates.

How we compare

Honest head-to-heads against the major sports data APIs. Where we win, where they win, and how to pick the right tool.

Big Balls Sports vs API-Sports

Unified schema, WebSocket feed, confidence scoring. Where we differ from the long-running multi-sport REST API.

Read comparison

Big Balls Sports vs The Odds API

We do more than odds. They do odds in extreme depth. When each tool wins.

Read comparison

Big Balls Sports vs SportsDataIO

Schema-first self-serve vs enterprise data feeds. Adoption flow, pricing, and feature deltas.

Read comparison

Big Balls Sports vs The Rundown

Full sports data vs betting-focused odds. When line-movement depth matters and when it does not.

Read comparison

Big Balls Sports vs Sportradar

Developer-first self-serve vs the industry incumbent. Pricing, licensing, and adoption flow compared.

Read comparison

Big Balls Sports vs Sportmonks

Multi-sport unified schema vs football-first developer API. Where coverage and schema design differ.

Read comparison

Big Balls Sports vs BallDontLie

Multi-sport platform vs NBA-only free hobby API. When each is the right pick.

Read comparison

Big Balls Sports vs football-data.org

Real-time scores, player data, and odds without stacking add-ons, plus every other sport under one schema.

Read comparison

Big Balls Sports vs API-Football

One key across every sport and spike-tolerant limits vs a deep, cheap, football-only daily cap.

Read comparison

Big Balls Sports vs ESPN API

Documented, versioned, supported endpoints vs undocumented ones that can break without notice.

Read comparison

Big Balls Sports vs OpticOdds

Odds plus the whole game on a self-serve free tier vs enterprise odds infrastructure priced by sales.

Read comparison

Big Balls Sports vs MySportsFeeds

A commercial-usable free tier with real-time scores vs per-league, non-commercial add-on math.

Read comparison

Big Balls Sports vs TheSportsDB

Real-time scores, odds, and Elo predictions under one structured schema, where we differ from the free crowdsourced database.

Read comparison

Big Balls Sports vs OddsJam

Odds plus the whole game on a self-serve free tier vs an enterprise odds API gated behind a sales call.

Read comparison

Price it at your scale

Drag the sliders to your real numbers. See the plan you'd need and what the same usage costs on a raw-data sports API.

10,000
1
3 sports

10,000 requests/day on Big Balls Sports Data. A full matchup page is 1 call here vs 8 raw calls per sport on BallDontLie.

Big Balls Sports Data

$99/mo

Growth plan · All sports, one subscription

BallDontLie

$119.97/mo

3 × GOAT

Save $20.97/mo($251.64/yr)

AND skip building the assembly layer.

  • Pre-assembled matchup responses (you call and join ~8 endpoints yourself)
  • Elo predictions and win probabilities
  • xG shot maps
  • Player headshots
  • Confirmed lineups with formations
  • Cross-sport unified schema (each sport is a separate integration AND subscription)

Request volume

1 Big Balls call = 8 raw BallDontLie calls to assemble the same matchup page — per sport. At your scale that's 10,000 vs 240,000 requests/day.

Raw BallDontLie pricing covers the data subscription only. The assembly layer, intelligence features, and cross-sport unification are engineering time you build and maintain.

BallDontLie price = raw data subscription only. Assembly layer, intelligence features, and cross-sport unification are not included at any tier. Pricing verified 2026-05-28. Priced per sport, rate-limited per minute. Each sport is a separate subscription.

Simple pricing. Pay only for what you use.

Upgrade when you need more. Downgrade any time.

Free

$0/ forever

Any sport

  • Any sport, current + most-recent season
  • 1,000 requests / day (2,000 with GitHub)
  • Scores, standings, stats

Solo

$19/ month

1 sport, your pick

  • 1 sport, your pick — see live depth below
  • All historical seasons joined to results
  • 10,000 requests / day
  • Change your sport once every 30 days
Most popular

Trio

$49/ month

3 sports, your pick

  • Any 3 sports, your pick — see live depth below
  • All historical seasons joined to results
  • 25,000 requests / day
  • Change your 3 sports (as one set) once every 30 days

Edge

$149/ month

All sports

  • Full stats depth for cricket, hockey, baseball, NFL, and NBA — soccer expanding
  • Match predictions and fair-price edges — expanding sport by sport
  • Play-by-play for hockey, NFL, and soccer — NBA shot-tracking coming online
  • Derived odds intelligence — consensus, fair price, divergence, and line movement
  • 100,000 requests / day

Pro

$299/ month

All sports

  • Everything in Edge
  • WebSocket / real-time push
  • Priority support + SLA
  • 200,000 requests / day
  • Licensed raw odds board (coming, once the redistribution license lands)

* Sustained high-volume usage may require an Enterprise plan. Contact us to discuss.

Enterprise

Custom/ contact sales

All sports

  • Every sport, full history
  • Bulk export, deep archive, odds intelligence, play-by-play
  • Custom volume, SLA, dedicated support