Sports Data API

One sports data API for the whole picture: live scores and play-by-play, rosters and injuries, player stats, standings and schedules, plus odds and player props — all normalized to canonical IDs in a single JSON shape.

Overview

The MoneyLine sports data API is a single feed for everything happening across a league — not just the betting markets. Scores and play-by-play, team rosters, injury reports, per-player stats, standings, and schedules all come back through one API, in one consistent JSON shape, keyed to the same canonical event and league IDs.

Because the same eventId, leagueId, teamId, and playerId thread through every endpoint, you join data without a normalization layer of your own. Pull today's slate, drill into a game's play-by-play, attach the box-score stat lines, and line those up against live odds and player props — all from one provider, no per-source adapters.

Coverage spans the major US leagues, and the same call patterns work whether you are powering a scoreboard, a fantasy tool, a research notebook, or a betting product. A free tier covers both personal and commercial use, with every endpoint included — odds and props on top of the core stats feed.

Get started

  1. 1

    Create a free account

    Sign up and grab an API key from the dashboard — no credit card for the free tier.

  2. 2

    Call an endpoint

    Pass the key as x-api-key and hit /v1/events/today to get the day's games with canonical IDs.

  3. 3

    Join via canonical IDs

    Use the eventId, teamId, and playerId in each response to pull stats, odds, and props that line up.

Key features

Scores & play-by-play

Live and final scores plus play-by-play, so you can drive scoreboards and recaps from one feed.

Rosters & injuries

Current team rosters and injury status, joined to canonical teamId and playerId.

Player stats

Per-player box-score stat lines and game logs across every covered sport.

Standings & schedules

League standings and full schedules, including today's slate and upcoming games.

Odds & player props

Moneyline, spread, total, and player-prop markets on the same canonical events.

One normalized JSON

Every endpoint shares one schema and one set of IDs — no per-source special casing.

Supported leagues

NFLNBAMLBNHLNCAAFNCAAB

Supported sportsbooks

DraftKingsFanDuelBetMGMCaesarsESPN BETFanaticsHard Rock BetBetRiversPinnaclebet365 (US)BovadaBetOnline.ag

Example request

GET /v1/events/today — today's games with canonical IDs

Request

curl -H "x-api-key: $ML_API_KEY" \
  "https://mlapi.bet/v1/events/today?league=nba"

Response

{
  "success": true,
  "data": [
    {
      "eventId": "nba-ev-512204",
      "leagueId": "nba",
      "status": "scheduled",
      "homeTeamName": "Boston Celtics",
      "awayTeamName": "Los Angeles Lakers",
      "startTime": "2026-06-01T23:30:00Z"
    }
  ],
  "meta": { "count": 1, "page": 1 }
}

What the API covers

Data typeWhat you get
Scores & play-by-playLive and final scores plus play-by-play for each event
Teams & rostersTeam metadata and current rosters, keyed to canonical teamId
InjuriesPlayer injury status joined to canonical playerId
Player statsBox-score stat lines and game logs per player
Standings & schedulesLeague standings and full schedules, including today's slate
Odds & player propsMoneyline, spread, total, and player-prop markets per event

Use cases

Scoreboards & recaps

Drive live scoreboards, play-by-play feeds, and game recaps from one normalized source.

Fantasy & research tools

Pull rosters, injuries, and player stats keyed to stable IDs for lineup and projection tools.

Betting products

Attach odds and player props to the same canonical events your stats already use.

Model pipelines

Ingest one JSON contract for scores, stats, and odds instead of maintaining scrapers per source.

Schedule & standings widgets

Power embeddable schedule, standings, and slate rails with paginated responses.

Latency & performance

FAQ

What is a sports data API?

A sports data API delivers sports information — scores, play-by-play, rosters, injuries, player stats, standings, schedules, and odds — as structured JSON your app can consume, instead of scraping each source yourself.

What kinds of data does it cover?

Live and final scores with play-by-play, team rosters and injuries, per-player stats and game logs, standings and schedules, plus odds and player-prop markets — all in one feed.

Which sports and leagues are covered?

NFL, NBA, MLB, NHL, NCAAF, and NCAAB, each with scores, stats, schedules, and betting markets.

How does it differ from a pure odds API?

An odds API returns only betting lines. This sports data API returns the full picture — scores, stats, rosters, injuries, standings, and schedules — with odds and player props included on the same canonical events.

How are the different data types joined?

Every endpoint shares canonical eventId, leagueId, teamId, and playerId values, so you can join scores, stats, odds, and props without building a normalization layer.

Is there a free tier?

Yes — the free tier covers both personal and commercial use with every endpoint included. Paid plans add throughput, not features.

How do I get today's games?

Call /v1/events/today with an optional league filter to get the day's slate, then use each canonical eventId to pull stats, odds, and player props.

What format does the API return?

A single normalized JSON shape across every endpoint, with camelCase fields like eventId and leagueId and paginated responses under a meta object.

Related

Pricing

Free

$0/mo

1K credits/mo

Starter

$29/mo

150K credits/mo

Pro

$149/mo

1.5M credits/mo

Business

$299/mo

5M credits/mo

Enterprise

Custom

Unlimited credits/mo

View full pricing →

Start building in minutes

Free tier to start, one API key, normalized responses across every league and sportsbook.