{"openapi":"3.2.0","info":{"title":"Fonbet Odds API","description":"Fonbet Greece odds as JSON: every sport, live and pre-match, in one file. Updated every few seconds.","version":"1.0.0"},"servers":[{"url":"https://fonbet.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"x-agent-commerce":{"catalog_url":"https://fonbet.jojapi.net/_jojapi/agent/plans","discovery_url":"https://fonbet.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/fonbet-odds","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/v1/data/{filename}":{"get":{"operationId":"get_v1_data_filename","summary":"Get odds data","description":"Returns one odds file inside an envelope: {\"company\", \"file\", \"updated_at\", \"data\"}. data is the bookmaker's own JSON, unchanged; updated_at is when the file was last refreshed (UTC). The same time is sent as the Last-Modified header — send it back as If-Modified-Since to get 304 Not Modified until the file changes. Request gzip: responses arrive about 6–10 times smaller.  Errors (body {\"detail\": \"…\"}): 400 invalid filename · 401 missing or invalid API key · 403 unknown file or a file of another bookmaker · 404 file temporarily unavailable · 429 too many requests (see Retry-After) · 500 file temporarily invalid.","responses":{"200":{"description":"Successful response with Fonbet odds JSON data.","content":{"application/json":{"examples":{"success":{"summary":"Fonbet odds data","description":"Sample Fonbet odds file response.","value":{"company":"fonbet","file":"site_livepre_fonbet.json","updated_at":"2026-09-26T20:02:31Z","data":{"sports":[{"id":1,"kind":"sport","name":"Football","alias":"football"},{"id":46065,"parentId":1,"kind":"segment","name":"UEFA Nations League. Division A. Group stage"}],"events":[{"id":67736383,"level":1,"sportId":46065,"team1":"Denmark","team2":"Wales","startTime":1790524800,"place":"line"}],"customFactors":[{"e":67736383,"factors":[{"f":921,"v":1.45},{"f":922,"v":4.6},{"f":923,"v":6.9}]}]}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"examples":{"unauthorized":{"value":{"detail":"Invalid or missing API key"}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"parameters":[{"name":"filename","in":"path","description":"Parameter filename: a filename returned by GET /v1/files, e.g. site_livepre_fonbet.json.","required":true,"schema":{"type":"string","example":"site_livepre_fonbet.json"}}]}},"/v1/files":{"get":{"operationId":"get_v1_files","summary":"List files","description":"Lists the odds files your subscription can read, sorted by name. Returns {\"company\", \"count\", \"files\"}. Call it first and request only the names it returns.","responses":{"200":{"description":"Successful response listing Fonbet odds files.","content":{"application/json":{"examples":{"success":{"summary":"Fonbet file list","description":"Available Fonbet odds files.","value":{"company":"fonbet","count":1,"files":["site_livepre_fonbet.json"]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"examples":{"unauthorized":{"value":{"detail":"Invalid or missing API key"}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}