Every book on the market,
resolved to one line.
OddsAgg aggregates live prices from 50+ bookmakers, exchanges and prediction markets, normalises them into a single schema, and returns the consensus price, the arbitrage and the divergence. Over REST and WebSocket, in under a second.
- Feed status
- All feeds healthy
- Updates today
- 3,041,882
- p99 delivery
- 412ms
Aggregation is the easy part. Knowing what the number means is the product.
Fifty feeds in four different shapes, normalised into one schema, priced against each other, and delivered before the market moves on.
Consensus pricing
Rather than another wall of raw prices, every market carries a single consensus line: where the market actually sits. See instantly whether a book is pricing above or below it, and by how much.
- Bookmakers, exchanges and prediction markets analysed separately so different pricing models don't distort the line
- Every consensus price carries a confidence score from source count, recency and historic reliability
- Deviation per book, expressed in both decimal and implied probability
Arbitrage detection
Prices are monitored continuously across every connected book. When a discrepancy opens a window where backing all outcomes locks in profit regardless of result, it surfaces the moment it appears.
- Exact profit margin and proportional stake allocation per outcome
- Confidence rating derived from data quality and staleness
- Pushed to the WebSocket feed in real time, before the market corrects
Prediction market divergence
Bookmakers price to manage liability and margin. Prediction markets price on crowd-sourced probability backed by real capital. When the two disagree, one of them knows something.
- Continuous comparison of bookmaker consensus against prediction market pricing
- Configurable divergence thresholds per sport and market type
- Flagged discrepancies surfaced alongside historic convergence data
Sub-second delivery
Pull on demand over REST, or subscribe and receive only what changed. Binary delta updates keep payloads small so your systems stay in step without re-fetching the world.
- Channel-based WebSocket subscriptions by sport, event or market
- Binary deltas instead of full snapshots on every tick
- Queue-backed pipeline that absorbs load through backpressure rather than dropping data
Built to be integrated in an afternoon.
Authenticate with a bearer token, call one endpoint, and get a normalised book. Pull it on a schedule, or hold a socket open and let it push.
curl https://api.oddsagg.com/v1/odds?genre=tennis&perPage=25 \
-H "Authorization: Bearer $ODDSAGG_API_KEY"
{
"status": "success",
"data": {
"meta": {
"total": 103,
"page": 1,
"perPage": 25,
"countsByGenre": { "all": 103, "football": 45, "tennis": 58 }
},
"contests": [
{
"contestId": 4001,
"name": "Grand Slam Final",
"runDate": "2026-05-15T18:00:00Z",
"lastUpdate": "2026-05-14T17:45:00Z",
"sportbookId": 1,
"genre": "tennis",
"status": { "auto": 1, "manual": 1 },
"participants": [
{
"participantId": 7001,
"name": "Player A",
"odd": 1.90,
"previousOdd": 1.85,
"lastUpdate": "2026-05-14T17:30:00Z",
"status": 1
}
]
}
]
},
"error": null
}One envelope, always
Every response carries status, data and error. Success and failure have the same shape, so your client has one path to write and one path to test.
Predictable by design
camelCase fields, ISO-8601 timestamps, arrays that map straight into a render, and pagination plus aggregate counts consolidated into a single meta object.
Deltas, not snapshots
Subscribe once and receive only what moved. previousOdd ships alongside every price, so movement is renderable without holding your own history.
Four kinds of source. One interface.
Each provider exposes data its own way. That is their problem, handled at ingest, behind a single unified interface. New sources are added without touching the core platform or your integration.
- Football
- Tennis
- Basketball
- American Football
- Baseball
- Ice Hockey
- Horse Racing
- Cricket
- Golf
- MMA
- Boxing
- Rugby Union
- Rugby League
- Snooker
- Darts
- Table Tennis
- Volleyball
- Handball
- Esports
- Cycling
- Motorsport
- Athletics
- Politics
- Entertainment
- + more on request
Infrastructure you can put in front of money.
Over 80 services in production on Kubernetes, shipped through automated CI/CD with staged rollout and automatic rollback.
- Auto-scaling
- Capacity is provisioned within seconds under load and scaled back when it passes. Unhealthy instances are replaced without anyone being paged.
- No dropped ticks
- A queue-backed pipeline absorbs spikes through backpressure rather than shedding data, with at-least-once delivery and dedupe before persistence.
- Observed end to end
- Every service, queue and feed is monitored, with centralised logging that traces a single price from ingest through to your socket.
- Locked down
- Bearer auth with role-based access control, per-key metering, network policies, non-root containers and full audit logging.
Three tiers. Priced on what you pull.
Usage is metered per API key, so consumption is visible and billing is straightforward. Tell us the shape of your workload and we will quote against it.
Pro
For single-product teams and independent operators.
- REST access to odds and consensus pricing
- Core sports coverage
- Arbitrage feed, polled
- 10 req/s, 1 API key
- Email support
Business
For platforms running live pricing in production.
- Everything in Pro
- WebSocket streaming with binary deltas
- Full sport and market coverage
- Real-time arbitrage and divergence alerts
- 100 req/s, 5 API keys, 99.9% uptime target
- Shared Slack channel
Enterprise
For operators who need the raw firehose and a contract behind it.
- Everything in Business
- Unmetered throughput and custom rate limits
- Historical odds movement archive
- Custom feed integrations on request
- Dedicated infrastructure and SLA
- Named engineering contact
Volume, historical archive access and custom feed integrations are quoted per engagement. Enterprise agreements include a dedicated environment and an SLA.
Start with a key, not a sales call.
Tell us what you are building and we will get you onto live data quickly. If the fit is not there, we will say so rather than book a discovery call.
- 01Tell us the workload
Sports, markets, whether you need streaming, and rough volume. Two minutes.
- 02Sandbox key, same week
A scoped key against live data with the full schema and documentation, so you can integrate before committing.
- 03Quote against actual usage
Once you know what you are really pulling, we price it. No guessing up front, no per-seat surprises.