Skip to content
Log in

Sports Odds API for Developers

Explore our private pre-match football data pilot. The hosted workspace and REST API are running; data access requires approval. Signup includes no data grants or credits.

View docs
REST APIWebSocket previewHistory previewPythonTypeScriptOpenAPI

Bring your odds stack together with one platform for
prices and context.

Use one format for fixtures and markets while keeping each source’s price, timestamp, and settlement context.

CANONICAL IDENTITY
fixture_idOne event. Connected sources.

One consistent schema. Work with stable fixture IDs and normalized markets. Keep the source identity behind every observation.

EXPLICIT PRICE STATES
activeActive · stale · suspended

Freshness you can see. Know when a price was observed, when it changed, and when it is no longer eligible to use.

SOURCE-NATIVE HISTORY
seen_tsOriginal time. Lasting context.

Every change has a story. Read the restricted history contract, including original timestamps and coverage gaps. History access requires separate approval.

HONEST COVERAGE
missing[]Clear reasons. Better decisions.

Nothing silently missing. Understand unavailable coverage with explicit reasons. Build around the data you actually have.

Bookmaker status

View all sources ↗
Bookmaker delays, player props and domains
BookmakerMax live delay (sec)Max pregame delay (main, sec)Max pregame delay (sec)Player propsDomain
Loading current server observations…

Observed maxima over the trailing 24 hours, refreshed every 10 minutes. ≤ marks an independently sampled detection-delay bound. Other numbers use provider-stamped change-to-receipt time. Main = full-time 1X2. Sampling means no eligible change has been measured yet; stopped sources are not retried. Live collection is not enabled. ✓ = verified player-prop support; ✕ = no verified support.

EXPLORE THE API

Different markets.
One language for your code.

Spend your time building the product. Get structured observations with clear units, traceable sources, and explicit coverage.

SYNTHETIC EXAMPLE
BUILT FOR THE FULL PICTURE

Understand the price.
Keep the context.

A single observation carries its identity, native unit, state, and timestamp. Your application gets more than a number.

Stable canonical identifiersSource-native prices and unitsExplicit state and observation time
See the complete contract
Price observationABRIDGED
{
  "key": {
    "source_id": 100,
    "fixture_id": 100000,
    "market_id": 1001,
    "outcome_id": 10011,
    "source_fixture_id": "example-fixture",
    "side": "quote",
    "depth": 0
  },
  "value": {
    "state": "active",
    "decimal_odds": "1.95000000",
    "native_unit": "decimal_odds"
  },
  "seen_ts": "2026-11-09T12:00:00Z"
}
Synthetic, abridged canonical observation. REST responses use data, missing and meta. No live connection or API key required.Understand coverage

REST for the first request

Hosted HTTPS API with account permissions, bounded pagination, and a free access check.

Explore REST

WebSocket protocol preview

An implemented protocol with separate stream permissions. Streaming is not enabled for new accounts.

Read the stream contract

Historical data preview

Documented ticks, snapshots and exports. History access and source-purpose approval are separate; no public rollout.

Read the history contract
BUILT FOR BUILDERS

A small first request.
A big head start.

Your language.
Your workflow.

Start with cURL, Python, or JavaScript. Use the same documented contract from your first request to your next integration.

Read the quick start Standard HTTP tools. No SDK installation or private checkout.
check-access.sh
#!/bin/sh
set -eu
: "${ODDSWIRE_API_KEY:?Load your own API key into the environment}"
case "$ODDSWIRE_API_KEY" in
  *[!A-Za-z0-9_-]*) echo 'Unexpected key format' >&2; exit 1 ;;
esac
# The header is read from stdin instead of being placed in curl's arguments.
printf 'header = "X-API-Key: %s"\n' "$ODDSWIRE_API_KEY" |
  curl --config - --silent --show-error --fail-with-body --max-time 10 \
    'https://api.oddswire.io/v1/account/entitlements'
Defaults to one free access check. Use your own private API key.Full example
CONNECTED, WITH CONTEXT

One view across markets.
Every source kept clear.

Connect sportsbook and prediction-market observations without losing what makes them different.

Current availability
SPORTSBOOKS

Odds, in their
native form.

Decimal prices with source, market, settlement, and state preserved.

Selected pre-match football fixtures
PREDICTION MARKETS

Probabilities,
with perspective.

Native probabilities remain distinct from decimal odds, with fee and settlement context.

Selected sports contracts
A FOCUSED FIRST CHAPTER

Football first.
Built to go further.

Selected pre-match regulation 1X2 fixtures. Customer coverage and source-use rights require separate review.

Regulation 1X2
Private pilot · No coverage entitlement with signup
MAKE IT YOURS

What will you build?

GUIDES & DATA

Work with odds confidently.

Start with the calculations, data conventions, and checks behind each comparison.

START BUILDING

Explore today.
Build what comes next.

Create a workspace, check your access, and use the free tools. Review current availability before planning a data integration.

OPEN DOCUMENTATION

Get to know the API.

Everything you need to understand the contract before writing your first integration.

  • REST and WebSocket references
  • Python and TypeScript guides
  • Coverage and credit semantics
Explore the docs
HOSTED WORKSPACE

Build with Oddswire.

Email/password signup and automatic workspace setup are live. Data permissions and credit allocation require separate approval.

  • Account-owned API keys
  • Authenticated API playground
  • Usage and source coverage
Signup grants no data or credits. Source-data access requires review.
GOOD QUESTIONS

A little more
clarity.

What is the Oddswire sports odds API?

Oddswire gives developers a consistent format for sportsbook odds and prediction-market observations. The contract includes fixture and market identifiers, native price units, timestamps, and reasons for missing coverage.

What can I build with Oddswire?

With separately approved data scope, the REST contract can support odds comparison and prediction-market analysis. History and line-movement integrations have additional release and permission limits. Read the coverage and settlement context before comparing observations from different sources. Oddswire does not place bets or access sportsbook accounts.

Which sports and markets are in the pilot?

The working pilot focuses on selected pre-match football regulation 1X2 markets. Retained data has been read through the hosted API under a founder-only internal review. This is not customer coverage or a guarantee of six-league availability. Check current availability and account-specific coverage.

Is the preview on this page live?

No. The interactive preview uses clearly labeled synthetic data to demonstrate the format and interface. It does not connect to a live feed or use a private API key. Account-specific coverage is available inside the authenticated workspace.

How do I get an API key?

Create an account with email/password, verify your email, and open the automatically created workspace. An owner or admin can create an account-owned API key. Signup and key creation provide no data grants or credit allocation. Source-data access requires separate review; a beta invitation matters only if one has been issued.

Do unsuccessful requests use credits?

Errors, conditional 304 responses, and account or control requests are free. A successfully delivered metered data response uses one credit, including an empty result. WebSocket messages do not consume REST credits. A client timeout can leave delivery and charging uncertain; check usage before retrying.

Turn fragmented odds into your next idea.
One platform. A clearer view.