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], expectedValueUpdatedAtexpectedValue 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[], firstSeenAtPaste 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
- Value Bets guide (EV formula, response format, limitations) — Odds-API.io docs, accessed 2 Nov 2026
- Arbitrage Bets guide (formula, response format, limitations) — Odds-API.io docs, accessed 2 Nov 2026
- Odds API Pricing (plans, WebSocket add-on, extra requests, payment) — Odds-API.io, accessed 2 Nov 2026
- Schedule Trigger node — n8n Docs, accessed 2 Nov 2026
- HTTP Request node — n8n Docs, accessed 2 Nov 2026
- Split Out node — n8n Docs, accessed 2 Nov 2026
- HTTP app: Make a request (v4) — Make Help Center, accessed 2 Nov 2026
- API key authentication type (placement in header or query string) — Make Help Center, accessed 2 Nov 2026
- Iterator module — Make Help Center, accessed 2 Nov 2026