arbplay

Greek Bookmaker Odds API

The ArbPlay Odds HTTP API serves live and pre-match odds from seven Greek bookmakers — Stoiximan, Novibet, Fonbet, Superbet, Elabet, OPAP (Allwyn) and Bwin — as JSON over HTTPS. Each file is the bookmaker's own data, rewritten about every 1–3 seconds live and 4–7 pre-match. Subscribe on RapidAPI, Zyla or JoJ API, or ask for a direct key.

Coverage: seven bookmakers compared

Refresh is shown as live / pre-match. The horizon is roughly how far ahead each bookmaker's pre-match soccer files reach.

BookmakerFilesLivePre-match soccer horizonRefreshBetradar idStructure
Stoiximan5Every sport, one fileabout 7 days≈1⁠–⁠3 s / ≈4⁠–⁠7 sYesStore keyed by id / blocks
Novibet4Every sport, one fileabout 5 days≈1⁠–⁠3 s / ≈4⁠–⁠7 sYesBet views
Fonbet1Every sport, live + pre-match in one fileCombined file≈1⁠–⁠3 sNoNumeric factor ids
Superbet6Soccer, basketball, tennisabout 6 days≈1⁠–⁠3 s / ≈4⁠–⁠7 sYesEvent list
Elabet6Soccer, basketball, tennisabout 9 days≈1⁠–⁠3 s / ≈4⁠–⁠7 sNoLinked tables
OPAP (Allwyn)6Soccer, basketball, tennisabout 2 weeks≈1⁠–⁠3 s / ≈4⁠–⁠7 sYes (every event)Events → outcomes
Bwin6Soccer, basketball, tennisabout 2 weeks≈1⁠–⁠3 s / ≈4⁠–⁠7 sYesFixtures

How the API works

Base URL https://api.arbplay.app. Two read-only endpoints:

  • GET /v1/files — the files your key can read: {"company", "count", "files"}
  • GET /v1/data/{filename} — one file inside an envelope; data is the bookmaker's JSON, unchanged
{
  "company": "novibet",
  "file": "site_pregame_novibet_soccer.json",
  "updated_at": "2026-09-26T20:02:33Z",
  "data": [
    "… Novibet's own JSON, unchanged …"
  ]
}

updated_at is when the file was last written. The same time is sent as Last-Modified; send it back as If-Modified-Since and you get 304 Not Modified until the file changes. Full reference: API docs.

Quick start

# 1. which files can this key read?
curl -sS --compressed -H "X-API-Key: YOUR_API_KEY" \
  https://api.arbplay.app/v1/files

# 2. download one file (JSON envelope: company, file, updated_at, data)
curl -sS --compressed -H "X-API-Key: YOUR_API_KEY" \
  https://api.arbplay.app/v1/data/site_live_stoiximan.json -o site_live_stoiximan.json

Python and Node examples, error codes and rate limits are in the docs; each bookmaker page has a tested parser.

Get API access

Every bookmaker is a separate listing on three marketplaces. Subscribe there and call the marketplace's gateway with its key; plans and quotas are set on each listing.

Need several bookmakers, higher limits or a direct X-API-Key for https://api.arbplay.app? Contact ArbPlay. How direct keys, bundles, trial keys and rate limits work: Odds API FAQ.

Freshness

  • Live files: rewritten about every 1–3 s. Pre-match files: about every 4–7 s.
  • Poll with If-Modified-Since and request gzip (curl --compressed); the largest file, Superbet pre-match soccer, is around 200 MB uncompressed.

Raw bookmaker JSON, and matching events across bookmakers

The API does not normalize anything: each file is exactly what the bookmaker publishes, so a Stoiximan file and a Bwin file look nothing alike. That keeps every market and field the bookmaker has, and it means your parser is per bookmaker. Each bookmaker page has a field map, a real trimmed sample and a tested Python function for match-result odds.

To line the same match up across bookmakers, join on the Betradar (Sportradar) match id where it exists — Stoiximan, Novibet, Superbet, OPAP and Bwin carry it — and fall back to team names plus start time for Elabet, Fonbet and events without the id.

Samples, OpenAPI and agent-readable sources

Frequently asked questions

What is the ArbPlay Odds HTTP API?

A read-only JSON API at https://api.arbplay.app that serves the odds of seven Greek bookmakers — Stoiximan, Novibet, Fonbet, Superbet, Elabet, OPAP (Allwyn) and Bwin — as each bookmaker publishes them. It has two endpoints: GET /v1/files lists the files your key can read and GET /v1/data/{filename} returns one file.

Which bookmakers and sports are covered?

Seven Greek bookmakers. Stoiximan and Novibet have one live file with every in-play sport plus pre-match soccer, basketball and tennis, and Stoiximan adds a file for 15 major soccer leagues; Fonbet has one file with every sport, live and pre-match; Superbet, Elabet, OPAP and Bwin have live and pre-match files for soccer, basketball and tennis.

How fresh is the data?

During active hours live files are rewritten about every 1 to 3 seconds and pre-match files about every 4 to 7 seconds. Every response carries updated_at and Last-Modified, and If-Modified-Since returns 304 when nothing changed.

Is the data normalized across bookmakers?

No. Each file is the bookmaker's own JSON, served unchanged, so every bookmaker has its own structure. Each bookmaker page has a field map, a real sample and a tested Python function that extracts match-result odds.

How do I match the same event across bookmakers?

Stoiximan, Novibet, Superbet, OPAP and Bwin carry a Betradar (Sportradar) match id, so you can join on it. For Elabet and Fonbet, and events without the id, match on team names and start time.

How do I get an API key?

Subscribe to a bookmaker's listing on RapidAPI, Zyla API Hub or JoJ API and call it with that marketplace's key; plans and quotas are set on each listing. For a direct key to api.arbplay.app, contact ArbPlay.

api.arbplay.app is the Odds HTTP API. It is separate from the ArbPlay app's own endpoints under arbplay.app/api/* (sign-in, the arbitrage feed), which are not a public API.
ArbPlay is independent and not affiliated with or endorsed by any of these bookmakers or their operators. Odds are collected from publicly available bookmaker odds and served unchanged for informational use; ArbPlay does not place bets. 21+.

Need an API key?

Subscribe on a marketplace, or contact us for a direct key