[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"api-page:novibet-odds":3},{"status":4,"api":5,"seo":177},"success",{"blocked":6,"description":7,"about":8,"stats":9,"name":11,"title":12,"slug":13,"logo":14,"created_at":15,"agent":16,"user":28,"endpoint_groups":32,"faqs":101,"features":126,"periodic_plans":127,"payasyougo_plans":175,"releases":176,"last_updated":18},false,"Novibet Greece odds as JSON: every in-play sport, esports included, and pre-match soccer, basketball and tennis with Sportradar match ids. Updated every few seconds.","Live and pre-match odds from Novibet, served as JSON exactly as Novibet publishes them — every market, line and id, unchanged.\n\nFiles (4)\n\n- site_live_novibet.json — Every live event, one bet view per sport (betViewKey, e.g. SOCCER_MATCH), grouped by competition; live stats in liveData\n- site_pregame_novibet_soccer.json — Pre-match soccer: match result, goals over/under, double chance, first-half result, BTTS, corners\n- site_pregame_novibet_basketball.json — Pre-match basketball (moneyline, handicap, totals)\n- site_pregame_novibet_tennis.json — Pre-match tennis\n\nFreshness: live files about every 2–5 s, pre-match about every 6–10 s.\nOdds: Decimal (price, plus the display string oddsText).\nCross-bookmaker id: Sportradar match id: sportradarMatchId (pre-match), liveData.sportradarMatchId (live).\n\nHow to use it\n\n1. GET /v1/files lists the files your subscription can read.\n2. GET /v1/data/{filename} returns {\"company\", \"file\", \"updated_at\", \"data\"}; data is Novibet's own JSON.\n3. Poll with If-Modified-Since (send back the Last-Modified header): you get 304 Not Modified until the file changes. Request gzip — responses arrive about 6–10 times smaller.\n\nUp to 10 requests per second per file at the origin; your plan's quota is set on this listing.\n\nDocumentation: field map, real samples and a tested Python parser for match-result odds — https://arbplay.app/api/novibet-odds-api · full reference — https://arbplay.app/api/docs\n\nArbPlay is independent and not affiliated with or endorsed by Novibet or its operator. Informational use; the API does not place bets.",{"score":10},"1.86","Novibet Odds","Novibet Odds API","novibet-odds","https://cdn.jojapi.com/api/16c599ab-b917-489e-b696-37015b4db755","2026-09-11 09:05:58",{"enabled":17,"closed":18,"request_enabled":17,"catalog_url":19,"discovery_url":20,"directory_url":21,"rails":22,"networks":25,"docs":27},true,null,"https://novibet.jojapi.net/_jojapi/agent/plans","https://novibet.jojapi.net/.well-known/x402","https://agents.jojapi.net/apis/novibet-odds",[23,24],"x402","mpp",[26],"eip155:8453","https://docs.jojapi.com/consumers/agents",{"nick":29,"name":30,"verified":17,"website":31},"arbplay","ArbPlay","https://arbplay.app",[33],{"endpoints":34,"name":100,"description":58,"ungrouped":17,"open":6},[35,77],{"blocked":6,"hidden":6,"agent_price":36,"credits":18,"flexible_credits_description":18,"consumptions":37,"description":38,"method":39,"name":40,"url_path":41,"root_url":42,"parameters":43,"responses":60,"result_stats":18},0.01,[],"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.","GET","Get file data","/v1/data/{filename}","https://novibet.jojapi.net",{"url":44,"header":45,"post":52,"body":53,"path":54},[],[46],{"key":47,"is_auth":17,"example":48,"example_disabled":17,"example_type":49,"name":50,"description":48,"required":17,"always_error":51},"X-JoJAPI-Key","You must log in to get API key","string","JoJ API Key","Please log in to get API key",[],[],[55],{"key":56,"example":57,"example_disabled":6,"example_type":49,"value_type":49,"enum_values":18,"name":58,"description":59,"required":17},"filename","site_pregame_novibet_tennis.json","","Parameter filename: a filename returned by GET /v1/files, e.g. site_pregame_novibet_tennis.json.",[61,69],{"status":62,"status_code":63,"description":58,"schema":18,"examples":64,"example":68},"200",200,[65],{"name":4,"summary":66,"description":67,"example":68},"Odds data file response","JSON odds data returned for the requested file.","{\"company\":\"novibet\",\"file\":\"site_pregame_novibet_soccer.json\",\"updated_at\":\"2026-09-26T20:02:33Z\",\"data\":[{\"betViews\":[{\"betViewKey\":\"SOCCER_MATCH\",\"items\":[{\"eventBetContextId\":48269323,\"competitionCaption\":\"Club Friendlies\",\"regionCaption\":\"World\",\"startDateTime\":\"2026-09-26T20:30:00+00:00\",\"sportradarMatchId\":74967988,\"path\":\"matches\\/atletico-nacional-chapecoense-sc\",\"additionalCaptions\":{\"competitor1\":\"Atletico Nacional\",\"competitor2\":\"Chapecoense SC\"},\"markets\":[{\"betTypeSysname\":\"SOCCER_MATCH_RESULT\",\"betItems\":[{\"code\":\"1\",\"price\":2.15},{\"code\":\"X\",\"price\":3.8},{\"code\":\"2\",\"price\":2.65}]}]}]}]}]}",{"status":70,"status_code":71,"description":72,"schema":18,"examples":73,"example":76},"401",401,"Missing or invalid API key",[74],{"name":75,"summary":58,"description":58,"example":76},"unauthorized","{\"detail\":\"Invalid or missing API key\"}",{"blocked":6,"hidden":6,"agent_price":36,"credits":18,"flexible_credits_description":18,"consumptions":78,"description":79,"method":39,"name":80,"url_path":81,"root_url":42,"parameters":82,"responses":89,"result_stats":18},[],"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.","List files","/v1/files",{"url":83,"header":84,"post":86,"body":87,"path":88},[],[85],{"key":47,"is_auth":17,"example":48,"example_disabled":17,"example_type":49,"name":50,"description":48,"required":17,"always_error":51},[],[],[],[90,97],{"status":62,"status_code":63,"description":91,"schema":18,"examples":92,"example":96},"Available odds data files",[93],{"name":4,"summary":94,"description":95,"example":96},"Available files","List of available odds JSON files.","{\"company\":\"novibet\",\"count\":4,\"files\":[\"site_live_novibet.json\",\"site_pregame_novibet_basketball.json\",\"site_pregame_novibet_soccer.json\",\"site_pregame_novibet_tennis.json\"]}",{"status":70,"status_code":71,"description":72,"schema":18,"examples":98,"example":76},[99],{"name":75,"summary":58,"description":58,"example":76},"Ungrouped Endpoints",[102,105,108,111,114,117,120,123],{"question":103,"answer":104},"What does this API provide?","Novibet Greece odds as JSON: one live file covering every in-play sport (esports included), plus pre-match soccer, basketball and tennis, with Sportradar match ids. Call GET /v1/files, then GET /v1/data/{filename}.",{"question":106,"answer":107},"How do I authenticate?","Use your JoJ API key in X-JoJAPI-Key: YOUR_API_KEY. Authorization: Bearer YOUR_API_KEY also works.",{"question":109,"answer":110},"Which datasets can I download?","site_live_novibet.json plus site_pregame_novibet_soccer.json, site_pregame_novibet_basketball.json, and site_pregame_novibet_tennis.json.",{"question":112,"answer":113},"How fresh is the data?","Live files refresh about every 2–5 seconds and pre-match files about every 6–10 seconds. Each response's updated_at (also sent as the Last-Modified header) shows when the file last changed. No guaranteed SLA.",{"question":115,"answer":116},"What is the rate limit?","See Pricing for plan limits. The origin may return 429 above 10 requests per second.",{"question":118,"answer":119},"Is this an official Novibet API?","No. It aggregates publicly displayed Novibet odds and is not affiliated with or endorsed by Novibet or Logflex MT Holding Limited.",{"question":121,"answer":122},"Can I place bets through this API?","No. Informational and analytical use only. It does not place bets.",{"question":124,"answer":125},"What does a successful response look like?","A JSON envelope with company (\"novibet\"), file, updated_at and data. updated_at is when the file was last refreshed (UTC) and is also sent as the Last-Modified header — send it back as If-Modified-Since to get 304 Not Modified until the file changes. data is Novibet's own JSON, unchanged. Request gzip: responses arrive about 6–10 times smaller. List valid filenames with GET /v1/files.",[],[128,145,155,165],{"type":129,"slug":130,"blocked":6,"period":131,"currency":132,"pricing":133,"rate_limit":137,"objects":138,"name":143,"display_name":143,"features":144},"periodic","ekidnsuazjbc37ix0hy9mupz","1 MONTH","usd",{"price":134,"credits":134,"past_due_timeout_num":135,"past_due_timeout_type":136},0,3,"DAY",{"max_requests":18,"time_window":18},[139],{"id":140,"name":141,"slug":142,"quota":63,"tiers":18},"n45ce32a7","Requests","requests","Basic",[],{"type":129,"slug":146,"blocked":6,"period":131,"currency":132,"pricing":147,"rate_limit":149,"objects":150,"name":153,"display_name":153,"features":154},"i8t79m2uyxgwnooy3v2cfepd",{"price":148,"credits":134,"past_due_timeout_num":135,"past_due_timeout_type":136},29,{"max_requests":18,"time_window":18},[151],{"id":140,"name":141,"slug":142,"quota":152,"tiers":18},250000,"Pro",[],{"type":129,"slug":156,"blocked":6,"period":131,"currency":132,"pricing":157,"rate_limit":159,"objects":160,"name":163,"display_name":163,"features":164},"8edzc7i9vrk28vr2qycgzfdl",{"price":158,"credits":134,"past_due_timeout_num":135,"past_due_timeout_type":136},89,{"max_requests":18,"time_window":18},[161],{"id":140,"name":141,"slug":142,"quota":162,"tiers":18},1500000,"Ultra",[],{"type":129,"slug":166,"blocked":6,"period":131,"currency":132,"pricing":167,"rate_limit":169,"objects":170,"name":173,"display_name":173,"features":174},"khw80ymvkzi5hsfqqo7d00oz",{"price":168,"credits":134,"past_due_timeout_num":135,"past_due_timeout_type":136},249,{"max_requests":18,"time_window":18},[171],{"id":140,"name":141,"slug":142,"quota":172,"tiers":18},5000000,"Mega",[],[],[],{"canonical":178,"page_title":179,"meta":180},"https://jojapi.com/hub/api/novibet-odds","Novibet Odds API Documentation & Playground - JoJ API",{"description":7,"keywords":181},"API,API Documentation,API Playground,Plans & Pricing,Novibet Odds,arbplay"]