{"openapi":"3.1.0","info":{"title":"DexRay API","version":"1.0.0","description":"NFL games, cross-book odds, consensus edges, Polymarket microstructure, sharp-wallet grading and model lines once released (from Week 1: 2h after the house trades them, amendment A3). Auth: `Authorization: Bearer clk_live_…` ($49/mo, keys at /account). 10,000 requests/day; usage in x-requests-used / x-requests-remaining."},"servers":[{"url":"http://localhost:3000/api/v1"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"clk_live_…"}}},"paths":{"/signals":{"get":{"summary":"Cross-game signals desk for the current (or a given) week, ranked by EV — every row is returned, with released:false rows carrying no model fields until this key unlocks it (available_at, amendment A3)","security":[{"apiKey":[]}],"parameters":[{"name":"season","in":"query","schema":{"type":"integer"},"example":2026},{"name":"week","in":"query","schema":{"type":"integer"},"example":1},{"name":"market","in":"query","schema":{"type":"string"},"example":"player_reception_yds"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games":{"get":{"summary":"All upcoming games with consensus, Polymarket and weather summary","security":[{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games/{key}":{"get":{"summary":"Full game bundle: schedule, matchup, injuries, similar games + odds","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"2026_01_BUF_HOU"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games/{key}/odds":{"get":{"summary":"Cross-book odds, consensus, props, line history","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"2026_01_BUF_HOU"},{"name":"market","in":"query","schema":{"type":"string"},"example":"spreads"},{"name":"book","in":"query","schema":{"type":"string"},"example":"pinnacle"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games/{key}/polymarket":{"get":{"summary":"Polymarket markets, price history, order book, recent trades","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"2026_01_BUF_HOU"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games/{key}/sharps":{"get":{"summary":"Positions of skill-graded wallets in this game","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"2026_01_BUF_HOU"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games/{key}/model":{"get":{"summary":"Model prop lines with CDF ladder — every line is returned once any one of them has unlocked, with released:false rows carrying no model fields until this key's available_at passes (amendment A3); 425 only while every line in the game is still unreleased","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"2026_01_BUF_HOU"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/games/{key}/similar":{"get":{"summary":"Historically similar games with ATS/total records","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"2026_01_BUF_HOU"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games":{"get":{"summary":"All upcoming college football games with consensus summary","security":[{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games/{key}":{"get":{"summary":"Full CFB game bundle + odds","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"cfb-2c288580da16"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games/{key}/odds":{"get":{"summary":"CFB cross-book odds, consensus, 30-min close history","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"cfb-2c288580da16"},{"name":"market","in":"query","schema":{"type":"string"},"example":"spreads"},{"name":"book","in":"query","schema":{"type":"string"},"example":"draftkings"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games/{key}/polymarket":{"get":{"summary":"Polymarket CFB markets and microstructure","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"cfb-2c288580da16"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games/{key}/sharps":{"get":{"summary":"Graded-wallet positions in this CFB game","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"cfb-2c288580da16"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games/{key}/model":{"get":{"summary":"CFB model lines — 404 until a college model is registered","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"cfb-2c288580da16"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/cfb/games/{key}/similar":{"get":{"summary":"Similar past CFB games (lands with schedule history)","security":[{"apiKey":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"cfb-2c288580da16"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/players":{"get":{"summary":"Player index","security":[{"apiKey":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"team","in":"query","schema":{"type":"string"}},{"name":"position","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/players/{gsis}":{"get":{"summary":"Player card: bio, weekly/season stats, NGS, snaps, injury, PFF","security":[{"apiKey":[]}],"parameters":[{"name":"gsis","in":"path","required":true,"schema":{"type":"string"},"example":"00-0036322"}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}},"/injuries":{"get":{"summary":"League-wide current injury report","security":[{"apiKey":[]}],"parameters":[{"name":"team","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or revoked key"},"403":{"description":"No active API subscription"},"404":{"description":"Not found"},"425":{"description":"Not yet released (available_at in body; model only)"},"429":{"description":"Daily limit reached"}}}}}}