Pred-Data Get odds data

Hands-on tutorial

No-code odds automation with n8n or Make

Build a no-code workflow that pulls value bets or arbitrage opportunities from Odds-API.io on a schedule, filters them and logs them to Google Sheets, in n8n or Make.

Last updated: · Written and reviewed by Ken Lin

Partner link Partner link — we may earn a commission. See our affiliate disclosure.

Quick answer

You can poll Odds-API.io from n8n or Make without writing code: a schedule trigger, one HTTP request with your key as the apiKey query parameter, a filter and a Google Sheets step. Use the /value-bets or /arbitrage-bets endpoint so the API does the maths [1] [2].

What you need

What you need: An n8n or Make account, a Google Sheet, and an Odds-API.io key (paid plans from £49/month) [3].

Get a key: Odds-API.io Partner link

Partner link — we may earn a commission. See our affiliate disclosure.

Code status: Not tested end to end: this setup follows the vendors' current documentation (checked 3 November 2026), but we did not run it with a live key. Check field names against your first real response.

1. Pick an interval that fits your rate limit

Value bets are recalculated every 5 seconds, but the docs advise matching your polling interval to your rate limit, not to their refresh rate [1]. Every plan includes 5,000 requests per hour [3]; one request every 15 minutes uses 4 per hour.

2. The n8n workflow

Use a Schedule Trigger (minutes interval) [4], then an HTTP Request node with Generic credentials → Query Auth, name apiKey [5]. /value-bets needs a bookmaker; includeEventDetails=true adds team names [1]. If the response array comes through as a single item, add a Split Out node [6].

Schedule Trigger      every 15 minutes
  -> HTTP Request     GET https://api.odds-api.io/v3/value-bets
                      Authentication: Generic > Query Auth  (name: apiKey, value: your key)
                      Query: bookmaker=Bet365, sport=football, includeEventDetails=true
  -> Split Out        (only if the array arrives as one item)
  -> Filter           {{ $json.expectedValue }} >= 0.03
  -> Google Sheets    Append row: event.home, event.away, betSide, expectedValue,
                      bookmakerOdds[betSide], expectedValueUpdatedAt

expectedValue is a fraction (0.0523 = 5.23%); check any row with the Expected value (+EV) calculator.

3. The same idea in Make

In Make, the HTTP app's Make a request module (v4) stores the key in a keychain; choose API key placement In the query string and parameter name apiKey [7] [8]. An Iterator turns the returned array into one bundle per opportunity [9]. /arbitrage-bets requires bookmakers and accepts minProfit in percent [2].

[Schedule: every 15 min]
  -> HTTP > Make a request
       URL     https://api.odds-api.io/v3/arbitrage-bets
       Auth    API key keychain: placement = In the query string, parameter name = apiKey
       Query   bookmakers=Bet365,SingBet   minProfit=1   includeEventDetails=true
       Parse response: Yes
  -> Iterator           Array = the response body
  -> Filter             profitMargin >= 1
  -> Google Sheets > Add a row   event.home, event.away, market.name, market.hdp,
                                 profitMargin, legs[], firstSeenAt

Paste any row into the Arbitrage calculator to verify the Arbitrage margin.

4. Test before you schedule

Run the workflow once manually, confirm the fields you map exist in the real response, then publish it. Arbitrage rows disappear as soon as a price moves or the match starts, so treat a sheet as a log, not a to-do list [2].

Frequently asked questions

Can I use the free tier?

New free keys are paused. If you have an existing free key it allows 100 requests an hour, capped at 500 a day, so poll slowly.

Why put the key in credentials, not the URL?

Both n8n credentials and Make keychains keep the key out of the visible module settings and exported scenarios, and make rotation easier.

Can the workflow place bets?

No. Odds-API.io only provides data; this workflow only reads and logs it.

About this guide

Pred-Data publishes independent, source-linked explainers about prediction markets and the AI tools used around them. Every factual claim on this page links to a primary or reputable secondary source, checked on the date shown above. We do not run a trading venue, take bets, or give personal advice.

Author: Ken Lin · Corrections: if you spot an error, we review it and date-stamp the fix.

Affiliate disclosure

Some links on this site (marked “Partner link”) may be affiliate links: if you sign up through them we may earn a commission at no extra cost to you. Partner links use rel="sponsored nofollow" and never change our assessment. Platform links in our comparison tables are plain, non-affiliate links to official sites.

Sources

  1. Value Bets guide (EV formula, response format, limitations) — Odds-API.io docs, accessed 2 Nov 2026
  2. Arbitrage Bets guide (formula, response format, limitations) — Odds-API.io docs, accessed 2 Nov 2026
  3. Odds API Pricing (plans, WebSocket add-on, extra requests, payment) — Odds-API.io, accessed 2 Nov 2026
  4. Schedule Trigger node — n8n Docs, accessed 2 Nov 2026
  5. HTTP Request node — n8n Docs, accessed 2 Nov 2026
  6. Split Out node — n8n Docs, accessed 2 Nov 2026
  7. HTTP app: Make a request (v4) — Make Help Center, accessed 2 Nov 2026
  8. API key authentication type (placement in header or query string) — Make Help Center, accessed 2 Nov 2026
  9. Iterator module — Make Help Center, accessed 2 Nov 2026