{"openapi":"3.2.0","info":{"title":"Stoiximan Odds API","description":"Stoiximan (Betano Greece) odds as JSON: every in-play sport, pre-match soccer, basketball and tennis, plus 15 major soccer leagues. Updated every few seconds.","version":"1.0.0"},"servers":[{"url":"https://stoiximan.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"x-agent-commerce":{"catalog_url":"https://stoiximan.jojapi.net/_jojapi/agent/plans","discovery_url":"https://stoiximan.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/stoiximan-odds","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/v1/data/{filename}":{"get":{"operationId":"get_v1_data_filename","summary":"Fetch dataset JSON","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 parsed Stoiximan dataset JSON.","content":{"application/json":{"example":{"company":"stoiximan","file":"site_pregame_stoiximan_soccer.json","updated_at":"2026-09-26T20:02:10Z","data":{"data":{"blocks":[{"name":"International - Friendlies","events":[{"id":"92917069","name":"USA - Peru","leagueName":"Friendlies","regionName":"International","sportId":"FOOT","startTime":1790454600000,"betRadarId":73600382,"url":"/match-odds/usa-peru/92917069/","markets":[{"name":"Match Result","type":"MRES","selections":[{"name":"1","fullName":"USA","price":1.47},{"name":"X","fullName":"Draw","price":4.45},{"name":"2","fullName":"Peru","price":6.9}]}]}]}]}}}}}},"401":{"description":"Unauthorized or dataset access is not permitted.","content":{"application/json":{"example":{"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_live_stoiximan.json.","required":true,"schema":{"type":"string","example":"site_live_stoiximan.json"}}]}},"/v1/files":{"get":{"operationId":"get_v1_files","summary":"List available datasets","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 with available permitted Stoiximan dataset files.","content":{"application/json":{"example":{"company":"stoiximan","count":5,"files":["site_live_stoiximan.json","site_pregame_stoiximan_basketball.json","site_pregame_stoiximan_soccer.json","site_pregame_stoiximan_soccer_leagues.json","site_pregame_stoiximan_tennis.json"]}}}},"401":{"description":"Unauthorized when the subscription credentials or API key are missing or invalid.","content":{"application/json":{"example":{"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."}}}}