What the live odds API returns
Each call returns events, markets and prices in one consistent JSON shape. An event carries the sport, the competition, the two sides, the score, the clock and a status. Each market under it lists selections with a decimal price, the implied probability behind that price, the margin applied to the whole market and a state that is either open or suspended.
Prices are recomputed every second while a match is in play. When the engine sees a dangerous incident, such as a goal, a card or a break of serve, the affected markets are suspended for a few seconds and then return with new numbers. Your frontend never shows a stale line as if it were current, because the state field tells it what to do.
The same feed lists upcoming events shortly before kickoff and follows them in play, so one integration serves the match from start to finish. Starter includes three sports of your choice with match markets, and Growth opens every sport in the engine, including CS2, plus micro-markets.
Endpoints and authentication
Every request goes to the base address https://realtimebets.com/api/v1 and carries one header, Authorization: Bearer rtb_sk_ followed by your secret key (X-Api-Key works too). Keys are created and revoked in the console, and each key is either a sandbox key or a production key, so a test key never reads the real-time feed.
- GET /api/v1/sports lists the sports your plan includes.
- GET /api/v1/events?sport=soccer&status=live returns matches in play right now.
- GET /api/v1/events/{event_id}/markets returns every market and price for one event.
- GET /api/v1/events/{event_id}/incidents returns goals, cards, points and other incidents in match order.
- The streaming endpoint at /api/v1/stream?event={event_id} pushes the full market set of one event once a second.
Responses are plain JSON with ISO 8601 timestamps in UTC. Errors use standard HTTP codes with a short machine code in the body, so retries and alerts are simple to write. The full reference with request and response bodies lives in the API documentation.
Prices from our own models
Many odds feeds collect lines from bookmakers and pass them on. That is useful for comparison, but it leaves you with no say over the number and nothing to show when a market is missing. RealTimeBets prices markets itself, with statistical models fitted to each sport.
Goals in soccer and ice hockey come from Poisson models that react to the clock and the score. Tennis uses a serve and hold model point by point. Basketball and American football use possession models that know how much time is left and who has the ball. Each model outputs a fair probability, and the engine then adds a margin to turn it into a price.
The margin is about 6 percent on every market, and it is published in the payload next to each price. Because the fair probability is in the payload too, your traders can see exactly how much margin sits on any line and compare it with their own view. The same engine generates the short-window markets described on the micro betting page.
| Provider | Published price | Self-serve key | Push feed | Own pricing | Micro-markets | Settlement |
|---|---|---|---|---|---|---|
| RealTimeBets | From $499/mo ($249/mo yearly) | Yes, sandbox at signup | Yes, every plan | Yes, model-based | Yes, Growth and up | Yes, signed webhooks on every plan |
| The Odds API | $30 to $249/mo, 500 free credits | Yes | No, polling | No, aggregated lines | No | No |
| SportsDataIO | Not published | Trial, then sales process | Not published | Not published | Not published | Not published |
| OpticOdds | Not published | No, sales form | Yes | Not published | Not published | Not published |
| Sportradar | Enterprise contracts | No, sales process | Not published | Trading services by contract | By contract | By contract |
Choose polling or push per screen
REST is the right tool for a page that loads once, a nightly report or a backfill. For a live screen it wastes requests and still shows prices that are a little old. That is why every plan includes streaming push alongside REST.
You open a server-sent events connection for one event and receive one message every second with the event, its score and clock, and the full market set. Each market carries its prices, probabilities and state. A connection lasts up to 60 seconds and then sends an end message, so your client simply reconnects, and because every push is complete there is nothing to stitch together.
Connection counts grow with the plan. Starter includes 2 streaming connections and 500,000 requests a month, Growth includes 10 connections and 5,000,000 requests, and Enterprise includes 50 connections with requests under fair use. Each stream connection counts as one request. Requests count usage in the billing period, so a busy weekend is visible in the console as it happens and never arrives as a surprise.
From sandbox key to production traffic
Signup takes an email, a password and a six digit code. The console then shows a sandbox key straight away. It runs on a feed delayed by 60 seconds, covers one sport, allows 1,000 requests over 7 days and marks every payload with "sandbox": true, so nothing built on it can be mistaken for live data.
That is enough to wire up your parser, render a board and test reconnects. When you are ready for live traffic, pick a plan at checkout and store your licence record: licence number, regulator and country. Production keys are issued for licensed use once that record is on file.
Odds comparison and media sites that show prices next to editorial content follow the same path. If you need the raw event data without prices, the sports data API page explains what the incident feed carries on its own.
How this odds API compares
There are cheap aggregated feeds and there are enterprise data houses, and most teams sit between the two. The table below sets out what each provider publishes. Where a provider does not publish something, we say so rather than guess.
The Odds API publishes clear prices from $30 to $249 a month and is a good fit for reading bookmaker lines through polling. It does not price markets itself, does not generate micro-markets and does not settle. SportsDataIO and OpticOdds keep pricing behind a sales process, and OpticOdds focuses on push feeds for large books. Sportradar sells official data and trading services on enterprise contracts.
RealTimeBets publishes every plan, issues a key at signup, prices and suspends markets with its own engine and settles the bets you record. If you plan to run a full book rather than a feed, read the sportsbook API page next.