OpenOddsAPI API Get started

Getting Started

Core concepts

The vocabulary shared by every endpoint: sports, markets, outcomes, formats and regions.

Sports and keys

Each sport has a stable lowercase key used in every URL. Sport keys never change, but availability can be paused — check active and re-list `/v1/sports` before assuming a sport is live.

SportKeyEvents cover
TennistennisATP and WTA matches
UFCufcIndividual UFC bouts
BoxingboxingProfessional boxing bouts
NFLnflRegular season and playoffs
GolfgolfPGA Tour tournaments

Markets and outcomes

A market is a betting proposition — moneyline, spread, total_points. An outcome is one result within it, with a price and, for point-based markets, a point line. Two favourites with a -2.5 point spread look like this:

JSON
{
  "market": "spread",
  "outcomes": [
    { "name": "Kansas City Chiefs", "price": -110, "point": -2.5 },
    { "name": "Buffalo Bills", "price": -110, "point": 2.5 }
  ]
}

point is null for non-point markets such as moneyline. The price value is always expressed in the format requested via odds_format (default american).

Odds formats

Request prices in american, decimal or fractional via the odds_format query parameter on the odds endpoint.

FormatValuesExample
americanpositive/negative integers-200, +150, -110
decimalstake-return multiplier1.50, 2.50, 1.91
fractionalprofit over stake1/2, 3/2, 10/11

The same prices in all three formats:

AmericanDecimalFractional
-2001.501/2
-1101.9110/11
+1502.503/2

Regions

Bookmaker availability differs by region. The regions parameter (us, uk, eu, au) selects which bookmakers are returned; multiple regions are comma-separated. The default is us.

IDs and timestamps

All IDs are stable strings prefixed by type: evt_ for events, odd_ for odds records, req_ for request tracing. Timestamps are ISO 8601 UTC — 2026-09-10T23:20:00Z. Treat them as opaque strings; compare with a UTC-aware date parser.

OpenOddsAPI API — Documentation v1Examples use illustrative data