OddsLine API

OddsLine's model produces fair-value probabilities for every upcoming match, built from historical results and scorelines rather than calibrated against bookmaker odds. The API returns that output in a single request, so you can use it as a baseline inside your own betting system, spreadsheet, or AI workflow.

It returns probabilities, not picks.

Endpoint

A single GET endpoint returns model reads for every upcoming match in one response.

GET https://api.oddsline.io/v1/get-model-reads

Pass exclude=scoreline_matrix to drop the 15×15 scoreline matrix from each match when you only need the summary probabilities. This cuts payload size by roughly 85 to 90%.

GET https://api.oddsline.io/v1/get-model-reads?exclude=scoreline_matrix

Authentication

Pass your API key as a bearer token. Keys are issued to Pro subscribers.

curl https://api.oddsline.io/v1/get-model-reads \
  -H "Authorization: Bearer <API_KEY>"

Example response

{
  "data": [
    {
      "league": "Premier League",
      "home_team": "Arsenal",
      "away_team": "Chelsea",
      "commence_time": "2026-08-24T14:00:00Z",
      "model": {
        "home_prob": 0.52,
        "draw_prob": 0.26,
        "away_prob": 0.22,
        "home_elo_minus_away_elo": 84.3
      },
      "poisson": {
        "home_attack": 1.34,
        "away_attack": 1.05,
        "home_defence": 0.87,
        "away_defence": 1.02,
        "scoreline_matrix": [ [0.03, 0.05, ...], ... ]
      },
      "markets": {
        "over_1_5": 0.78,
        "under_1_5": 0.22,
        "over_2_5": 0.52,
        "under_2_5": 0.48,
        "over_3_5": 0.29,
        "under_3_5": 0.71,
        "btts_yes": 0.55,
        "btts_no": 0.45
      },
      "computed_at": "2026-08-24T06:00:00Z"
    }
  ],
  "meta": {
    "count": 42,
    "credit": { "used": 3, "limit": 300 }
  }
}

Rate limiting

  • 300 requests per month on Pro plans. Every response carries your current usage in meta.credit.
  • A short per-second cooldown prevents bursts.
  • Usage resets each billing cycle.
401

Invalid or revoked key.

403

Pro subscription required.

429

Burst cooldown ({ "error": "rate_limited" }) or monthly quota exceeded ({ "error": "Monthly rate limit exceeded", "limit": 300 }).

Field reference

League & team names

The same names you see in your OddsLine dashboard. You can also confirm current values directly from the response itself.

Scoreline matrix

poisson.scoreline_matrix is a 15×15 array. The outer index is home goals (0–14) and the inner index is away goals (0–14), so scoreline_matrix[2][1] is the probability of a 2–1 scoreline.

Attack & defence ratings

poisson.home_attack / poisson.away_attack and poisson.home_defence / poisson.away_defence are relative to the league average (1.0). For attack, above 1.0 means more goals scored than average, below 1.0 means fewer. For defence, above 1.0 means fewer goals conceded than average, below 1.0 means more.

home_elo_minus_away_elo

The home team's Elo minus the away team's, already adjusted for home advantage. Elo is on the standard 400-point scale.

Timestamps

ISO 8601 in UTC (e.g. 2026-08-24T14:00:00Z).

Get a key

API access requires an active Pro subscription. The free trial covers in-app analysis only.

See pricing