# Switch from The Odds API: a 10-minute first request

> Move a first The Odds API request to TheRundown: map sport, book and market IDs, swap authentication, and compare credits with actual returned data points.

Published 2026-10-13. Updated 2026-10-13. Canonical: https://therundown.io/blog/migrate-from-the-odds-api

Choose TheRundown when your application needs source-level odds joined to scores under a shared event ID, public self-serve plans and a path to WebSocket delivery. Keep The Odds API if its polling, coverage and fields already meet the workload. This guide gets one comparable request working; a production migration requires further validation.

The **ten-minute estimate** assumes an API key and a working shell. It covers a first response, not a complete application. This is a TheRundown-authored guide. Vendor documentation and prices were checked October 13, 2026.

## Minutes 0–2: define one comparable scope

Pick an upcoming NFL regular-season date, three main markets and three shared books. Avoid expanding to props, alternate lines or other leagues until the basic event mapping works. V4's upcoming/live scope and a dated TheRundown response are different: compare the same selected events, not the raw array lengths.

| Existing V4 input                 | TheRundown V2 input       | Check                                                |
| --------------------------------- | ------------------------- | ---------------------------------------------------- |
| `americanfootball_nfl`            | `sport_id=2`              | Regular season; preseason/playoffs have separate IDs |
| `basketball_nba` / `baseball_mlb` | `4` / `3`                 | Confirm season variant in the sport catalog          |
| `draftkings`, `fanduel`, `betmgm` | `affiliate_ids=19,23,22`  | Read the current affiliates catalog                  |
| `h2h`, `spreads`, `totals`        | `market_ids=1,2,3`        | This map covers US two-sided full-game main lines    |
| `apiKey` query parameter          | `X-TheRundown-Key` header | Keep the key on your server                          |

For soccer, regulation moneyline, draws and period markets, select the actual catalog market rather than extending the table by name. Read [sports](https://docs.therundown.io/reference/sports), [sources](https://docs.therundown.io/reference/sportsbooks) and [market IDs](https://docs.therundown.io/reference/markets).

## Minutes 2–5: make the first request

Set `THERUNDOWN_API_KEY` in your server environment. Choose a UTC date with upcoming NFL regular-season events; an empty slate is a valid response. A Free key permits the three books below for five-minute-delayed pre-match main lines. Eligible paid access is required for in-play data and broader scopes.

```bash
export EVENT_DATE=2026-10-18
curl --fail-with-body --silent --show-error \
  --dump-header response-headers.txt \
  --header "X-TheRundown-Key: $THERUNDOWN_API_KEY" \
  "https://therundown.io/api/v2/sports/2/events/$EVENT_DATE?market_ids=1,2,3&affiliate_ids=19,22,23&main_line=true&hide_closed=true" \
  --output events.json
```

The date is illustrative; change it for your test. Inspect the status and JSON before parsing prices. The header file records `X-Datapoints` without printing the request key. On Free, pace additional requests at no more than one per second. Use the [odds API integration page](/odds-api) for catalog/authentication checks and error handling.

## Minutes 5–8: map the response, not just the URL

| V4 field or structure             | TheRundown field or structure             | Migration rule                                             |
| --------------------------------- | ----------------------------------------- | ---------------------------------------------------------- |
| `id`                              | `event_id`                                | Build a provider-ID crosswalk; these are different IDs     |
| `commence_time`                   | `event_date`                              | Normalize time zone and compare kickoff                    |
| `home_team`, `away_team`          | `teams` with `team_id`                    | Match entities; do not use display names as permanent keys |
| `bookmakers → markets → outcomes` | `markets → participants → lines → prices` | Rewrite the iterator and preserve each source              |
| Outcome `point`                   | Line `value`                              | Keep the signed spread and participant identity together   |
| Outcome `price`                   | Price object's `price`                    | Confirm American versus decimal formats explicitly         |

TheRundown's moneyline price is a participant's unlabeled line; spread and total values belong to individual rungs. Two sides at opposite spread signs are distinct entries. A quote's `closed_at` is the closure signal, and a later empty string reopens that exact price. An old `updated_at` alone does not close it. The [sports odds parser](/sports-odds-api) shows the nested response and off-board handling.

## Minutes 8–10: measure two separate usage units

For a V4 current-odds request returning three markets in one region, the documented example costs **3 credits**. Credit cost is not the number of returned price rows. Record `x-requests-last` on the old integration.

For TheRundown, suppose the same ten selected games each return three two-sided markets from three books, plus an event and score, with no `live_game_state`. The illustrative count is **10 × [2 + (3 × 2 × 3)] = 200 data points**. Missing scores or prices change the count; `live_game_state` adds another score data point when returned. Record the actual `X-Datapoints`. Repeated snapshots bill returned records again.

These are separate workload calculations, not a fixed conversion factor. TheRundown paid plans have a fixed subscription fee and included points. Scope requests to the books and markets your application uses to conserve the allowance; narrower usage does not lower the base fee. See [metering](https://docs.therundown.io/rate-limits).

## Choose the plan and validate before cutover

The Odds API publishes a $30/month entry plan with 20,000 credits. TheRundown Starter is $49/month with a 60-second delay, Pro $149 with a 30-second delay and commercial display rights, and Ultra $399 with real-time REST/WebSocket. These are different packages and units; TheRundown is not the lower-priced entry plan. Free requires no card and has daily/monthly caps. [Compare the packages](/compare/the-odds-api) before changing an application that only needs scheduled polls.

Run both integrations on a bounded sample before directing production traffic to the new one. Compare kickoff, participant, market period, signed line, source, price format, open/closed state and effective freshness. Keep independent retry/rate-limit logic, preserve required links through their actual API fields, and verify your display rights. A returned source ID is not automatically a ready-made bet-slip link.

## Sources checked October 13, 2026

- [The Odds API V4 inputs, response and credit rules](https://the-odds-api.com/liveapi/guides/v4/)
- [The Odds API pricing](https://the-odds-api.com/)
- [TheRundown data model](https://docs.therundown.io/reference/data-model)
- [TheRundown event requests](https://docs.therundown.io/api-reference/v2/events)
- [TheRundown pricing and rights](/pricing/api)

## Questions

### Can I migrate a production integration in ten minutes?

Ten minutes is an estimated first-request exercise with a key and environment ready. A production cutover also needs event crosswalks, market and source checks, usage measurement, error handling and parallel validation.

### Is TheRundown a drop-in replacement for The Odds API V4?

No. Base URLs, authentication, event IDs, market nesting, date scopes and usage units differ. This guide maps a narrow main-line request; it does not provide a V4 compatibility endpoint.

### How many TheRundown data points equal one The Odds API credit?

There is no universal conversion. V4 credits depend on markets and regions; TheRundown usage depends on returned records. A worked example of ten fully priced games uses 200 data points without live_game_state, but actual X-Datapoints is authoritative.

### Which TheRundown plan should a polling application choose?

Check its freshness and rights requirements. Free odds are five-minute delayed, Starter has a 60-second delay and internal-use rights, Pro has a 30-second delay and commercial display rights, and Ultra includes real-time REST and WebSocket. Paid plans have fixed fees and included usage.
