{"openapi":"3.0.3","info":{"title":"ODDS.LAND Sportsbook API","version":"1.0.0","description":"Public OpenAPI contract for the ODDS.LAND sportsbook catalog, market depth, live state, quote checks, SGM pricing, cashout quotes, and settlement evidence helpers.","contact":{"name":"ODDS.LAND","email":"hello@odds.land"}},"servers":[{"url":"https://api.odds.land","description":"Production"},{"url":"http://127.0.0.1:4100","description":"Local development"}],"tags":[{"name":"Operations","description":"Public health, readiness, and service metadata."},{"name":"Product","description":"Sportsbook catalog, events, market depth, tabs, live state, and odds history."},{"name":"Contract","description":"Feature discovery and published product coverage for client capability checks."},{"name":"Quotes","description":"Bet validation, quote, SGM, and cashout checks. These routes do not write bets."},{"name":"Settlement","description":"Settlement evidence and settlement preview helpers. These routes do not mutate wallets."},{"name":"Account","description":"Authenticated API identity, policy, and usage."},{"name":"Assets","description":"Public static flags, team logos, and category artwork used by sportsbook clients."}],"security":[{"bearerAuth":[]}],"paths":{"/healthz":{"get":{"tags":["Operations"],"operationId":"getHealth","summary":"Process health","description":"Public process health check. Use this for lightweight uptime probes.","security":[],"responses":{"200":{"description":"Service process is running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/readyz":{"get":{"tags":["Operations"],"operationId":"getReadiness","summary":"Readiness","description":"Public readiness check for source and published-state health.","security":[],"responses":{"200":{"description":"Service is ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Readiness"}}}},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/openapi.json":{"get":{"tags":["Operations"],"operationId":"getOpenApi","summary":"OpenAPI document","description":"Public OpenAPI JSON document for this service.","security":[],"responses":{"200":{"description":"OpenAPI document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/llms.txt":{"get":{"tags":["Operations"],"operationId":"getLlmsTxt","summary":"AI agent guide","description":"Concise machine-readable setup guide with links to the API contract and documentation.","security":[],"responses":{"200":{"description":"LLM-friendly Markdown guide.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v1/healthz":{"get":{"tags":["Operations"],"operationId":"getV1Health","summary":"Process health","security":[],"responses":{"200":{"description":"Service process is running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/v1/readyz":{"get":{"tags":["Operations"],"operationId":"getV1Readiness","summary":"Readiness","security":[],"responses":{"200":{"description":"Service is ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Readiness"}}}},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/openapi.json":{"get":{"tags":["Operations"],"operationId":"getV1OpenApi","summary":"OpenAPI document","security":[],"responses":{"200":{"description":"OpenAPI document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/source":{"get":{"tags":["Operations"],"operationId":"getSourceStatus","summary":"Source status","description":"Returns configured source health, coverage, and operational metadata.","responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/features":{"get":{"tags":["Contract"],"operationId":"getFeatures","summary":"Feature compatibility","description":"Returns supported quote and settlement capabilities. Same-game multi compatibility is exact: clients must use only published same_game_multi outcomes for a supported event.","responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturesEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/coverage":{"get":{"tags":["Contract"],"operationId":"getCoverage","summary":"Published coverage","description":"Returns the current published event and market coverage, same-game multi candidate counts, and source SLA state. This route never fetches providers.","parameters":[{"name":"detail","in":"query","schema":{"type":"string","enum":["full","summary"],"default":"full"},"description":"Use summary for the compact commercial capability and freshness view."}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverageEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/results":{"get":{"tags":["Settlement"],"operationId":"listResults","summary":"Final results","description":"Returns retained, source-reported final results from published live observations. A reported final is evidence, not an instruction to mutate a customer ledger.","parameters":[{"$ref":"#/components/parameters/SportKey"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResultsEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/results/{id}":{"get":{"tags":["Settlement"],"operationId":"getResult","summary":"Final result","description":"Returns one retained result with compact score/statistics evidence and the input required for settlement evaluation when the published event link is available.","parameters":[{"$ref":"#/components/parameters/EventId"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResultEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/sports":{"get":{"tags":["Product"],"operationId":"listSports","summary":"List sports","description":"Returns available sports with event counts, live counts, quoteable market counts, and display metadata.","parameters":[],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SportsEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/lobby":{"get":{"tags":["Product"],"operationId":"getSportsbookLobby","summary":"Sportsbook lobby","description":"Returns grouped sportsbook lobby sections for home, live, trending, starting-soon, all-events, and outrights views.","parameters":[{"$ref":"#/components/parameters/SportKey"},{"$ref":"#/components/parameters/RegionKey"},{"$ref":"#/components/parameters/CompetitionKey"},{"$ref":"#/components/parameters/LeagueKey"},{"$ref":"#/components/parameters/Scope"},{"$ref":"#/components/parameters/View"},{"$ref":"#/components/parameters/Search"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/MaxEvents"},{"$ref":"#/components/parameters/MaxCompetitions"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/IncludeDisabled"},{"$ref":"#/components/parameters/QuoteableOnly"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LobbyEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events":{"get":{"tags":["Product"],"operationId":"listEvents","summary":"List events","description":"Returns filtered sportsbook events with canonical ids, display metadata, score/live state, limits, and main market data.","parameters":[{"$ref":"#/components/parameters/SportKey"},{"$ref":"#/components/parameters/RegionKey"},{"$ref":"#/components/parameters/CompetitionKey"},{"$ref":"#/components/parameters/LeagueKey"},{"$ref":"#/components/parameters/Status"},{"$ref":"#/components/parameters/Scope"},{"$ref":"#/components/parameters/Search"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/IncludeDisabled"},{"$ref":"#/components/parameters/QuoteableOnly"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}":{"get":{"tags":["Product"],"operationId":"getEvent","summary":"Event details","description":"Returns one canonical event with display metadata, status, score/live state, limits, and navigation metadata.","parameters":[{"$ref":"#/components/parameters/EventId"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/IncludeDisabled"},{"$ref":"#/components/parameters/QuoteableOnly"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}/markets":{"get":{"tags":["Product"],"operationId":"getEventMarkets","summary":"Event market depth","description":"Returns one page of market depth for an event, including status, outcomes, prices, and settlement references.","parameters":[{"$ref":"#/components/parameters/EventId"},{"$ref":"#/components/parameters/Group"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/IncludeDisabled"},{"$ref":"#/components/parameters/QuoteableOnly"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketPageEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}/market-tabs":{"get":{"tags":["Product"],"operationId":"getEventMarketTabs","summary":"Event market tabs","description":"Returns the available market tab structure for an event.","parameters":[{"$ref":"#/components/parameters/EventId"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/IncludeDisabled"},{"$ref":"#/components/parameters/IncludePages"},{"$ref":"#/components/parameters/QuoteableOnly"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketTabsEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}/tabs/{tab}":{"get":{"tags":["Product"],"operationId":"getEventMarketsByTab","summary":"Event market depth by tab","description":"Returns market depth for one event tab, such as main, goals, players, corners, cards, combos, periods, or same_game_multi.","parameters":[{"$ref":"#/components/parameters/EventId"},{"$ref":"#/components/parameters/TabPath"},{"$ref":"#/components/parameters/Group"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/IncludeDisabled"},{"$ref":"#/components/parameters/QuoteableOnly"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketPageEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}/live":{"get":{"tags":["Product"],"operationId":"getEventLive","summary":"Event live state","description":"Returns fast live state for an event, including score, clock, period, statistics, incidents, lineups, and player stats when available.","parameters":[{"$ref":"#/components/parameters/EventId"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}/odds-history":{"get":{"tags":["Product"],"operationId":"getEventOddsHistory","summary":"Event odds history","description":"Returns recent odds-history points for an event.","parameters":[{"$ref":"#/components/parameters/EventId"},{"name":"hours","in":"query","schema":{"type":"integer","minimum":1,"maximum":4320,"default":24}},{"name":"intervalMinutes","in":"query","schema":{"type":"integer","minimum":1,"maximum":1440,"default":5}}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OddsHistoryEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/product/events/{id}/settlement-pack":{"get":{"tags":["Product"],"operationId":"getEventSettlementPack","summary":"Event settlement pack","description":"Returns settlement evidence for an event, including final-score scope, period score support, incidents, statistics, source evidence, and review signals.","parameters":[{"$ref":"#/components/parameters/EventId"},{"$ref":"#/components/parameters/IncludeDisabled"}],"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementPackEnvelope"}}}},"304":{"description":"The tenant-specific representation has not changed. This response is still metered.","headers":{"ETag":{"schema":{"type":"string"}},"X-Request-ID":{"schema":{"type":"string"}},"X-Usage-Class":{"schema":{"type":"string"}},"X-Usage-Units":{"schema":{"type":"integer"}},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=1"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/bets/validate":{"post":{"tags":["Quotes"],"operationId":"validateBetSlip","summary":"Validate bet slip","description":"Checks whether a bet slip is currently accepted, rejected, suspended, stale, or changed. This route does not reserve funds or write a bet.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSlipInput"}}}},"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetEvaluationEnvelope"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/bets/quote":{"post":{"tags":["Quotes"],"operationId":"quoteBetSlip","summary":"Quote bet slip","description":"Returns a quote id, accepted legs, total odds, potential return, risk limits, live hold metadata, and quote expiry for a single or multi bet. This route does not write a bet.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSlipInput"}}}},"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetQuoteEnvelope"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/bets/sgm/quote":{"post":{"tags":["Quotes"],"operationId":"quoteSgm","summary":"Quote same-game multi","description":"Returns a modeled same-game multi quote for supported components on the same event.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SgmQuoteInput"}}}},"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SgmQuoteEnvelope"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/bets/cashout-quote":{"post":{"tags":["Quotes"],"operationId":"quoteCashout","summary":"Quote cashout","description":"Returns a cashout quote for a previously accepted slip shape. This route does not mutate balances or bet records.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSlipInput"}}}},"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashoutEnvelope"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/bets/settle":{"post":{"tags":["Settlement"],"operationId":"settleBetLegs","summary":"Settle bet legs","description":"Evaluates settlement for supplied bet legs against current evidence. The API returns won, lost, void, pending, or unsupported decisions but does not mutate your ledger.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSettlementInput"}}}},"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementEnvelope"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/bets/settlement-preview":{"post":{"tags":["Settlement"],"operationId":"previewSettlement","summary":"Preview settlement","description":"Runs the same settlement evidence path in preview mode for audits and operator review. This route does not mutate your ledger.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSettlementInput"}}}},"responses":{"200":{"description":"Successful ODDS.LAND envelope response.","headers":{"X-Request-ID":{"schema":{"type":"string"},"description":"Request correlation id."},"X-Usage-Class":{"schema":{"type":"string"},"description":"Metered request class."},"X-Usage-Units":{"schema":{"type":"integer"},"description":"Units charged for this request."},"X-RapidAPI-Billing":{"schema":{"type":"string","example":"Units=2"},"description":"RapidAPI custom-quota increment when marketplace billing applies."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"},"description":"Tenant- and policy-specific response validator."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementEnvelope"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/assets/flags":{"get":{"tags":["Assets"],"operationId":"listFlagAssets","summary":"List flag assets","security":[],"responses":{"200":{"description":"Available flag asset codes."}}}},"/assets/flags/{file}":{"get":{"tags":["Assets"],"operationId":"getFlagAsset","summary":"Read flag asset","security":[],"parameters":[{"$ref":"#/components/parameters/AssetFile"}],"responses":{"200":{"description":"SVG flag asset.","content":{"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/assets/categories":{"get":{"tags":["Assets"],"operationId":"listCategoryAssets","summary":"List category assets","security":[],"responses":{"200":{"description":"Available category asset codes."}}}},"/assets/categories/{file}":{"get":{"tags":["Assets"],"operationId":"getCategoryAsset","summary":"Read category asset","security":[],"parameters":[{"$ref":"#/components/parameters/AssetFile"}],"responses":{"200":{"description":"Category image asset."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/assets/teams":{"get":{"tags":["Assets"],"operationId":"listTeamAssets","summary":"List team assets","security":[],"responses":{"200":{"description":"Available team asset codes."}}}},"/assets/teams/{file}":{"get":{"tags":["Assets"],"operationId":"getTeamAsset","summary":"Read team asset","security":[],"parameters":[{"$ref":"#/components/parameters/AssetFile"}],"responses":{"200":{"description":"Team image asset."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/account":{"get":{"operationId":"getAccount","tags":["Account"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"consumerId":{"type":"string"},"authMode":{"type":"string"},"billingExempt":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}},"policyVersion":{"type":"integer"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"/v1/account/policy":{"get":{"operationId":"getAccountPolicy","tags":["Account"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["targetMargin","maxDecimalOdds","enabledSports","features","settlementMode","riskLimits","rateLimitPerMinute"],"properties":{"version":{"type":"integer"},"targetMargin":{"type":"number","minimum":0.07,"maximum":0.5},"maxDecimalOdds":{"type":"number","minimum":2,"maximum":101},"enabledSports":{"type":"array","items":{"type":"string"}},"features":{"type":"object","additionalProperties":{"type":"boolean"}},"settlementMode":{"type":"string","enum":["deterministic_only","deterministic_and_llm"]},"riskLimits":{"type":"object","additionalProperties":{"type":"object","required":["maxStake","maxPayout"],"properties":{"maxStake":{"type":"number"},"maxPayout":{"type":"number"}}}},"rateLimitPerMinute":{"type":"integer","minimum":1,"maximum":6000}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"put":{"operationId":"replaceAccountPolicy","tags":["Account"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["targetMargin","maxDecimalOdds","enabledSports","features","settlementMode","riskLimits","rateLimitPerMinute"],"properties":{"version":{"type":"integer"},"targetMargin":{"type":"number","minimum":0.07,"maximum":0.5},"maxDecimalOdds":{"type":"number","minimum":2,"maximum":101},"enabledSports":{"type":"array","items":{"type":"string"}},"features":{"type":"object","additionalProperties":{"type":"boolean"}},"settlementMode":{"type":"string","enum":["deterministic_only","deterministic_and_llm"]},"riskLimits":{"type":"object","additionalProperties":{"type":"object","required":["maxStake","maxPayout"],"properties":{"maxStake":{"type":"number"},"maxPayout":{"type":"number"}}}},"rateLimitPerMinute":{"type":"integer","minimum":1,"maximum":6000}}}}}},"parameters":[{"schema":{"type":"string"},"in":"header","name":"if-match","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["targetMargin","maxDecimalOdds","enabledSports","features","settlementMode","riskLimits","rateLimitPerMinute"],"properties":{"version":{"type":"integer"},"targetMargin":{"type":"number","minimum":0.07,"maximum":0.5},"maxDecimalOdds":{"type":"number","minimum":2,"maximum":101},"enabledSports":{"type":"array","items":{"type":"string"}},"features":{"type":"object","additionalProperties":{"type":"boolean"}},"settlementMode":{"type":"string","enum":["deterministic_only","deterministic_and_llm"]},"riskLimits":{"type":"object","additionalProperties":{"type":"object","required":["maxStake","maxPayout"],"properties":{"maxStake":{"type":"number"},"maxPayout":{"type":"number"}}}},"rateLimitPerMinute":{"type":"integer","minimum":1,"maximum":6000}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"428":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"/v1/account/usage":{"get":{"operationId":"getAccountUsage","tags":["Account"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["days"],"properties":{"days":{"type":"array","items":{"type":"object","properties":{"usageDate":{"type":"string"},"usageClass":{"type":"string"},"units":{"type":"integer"},"requestCount":{"type":"integer"}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API token","description":"Pass your ODDS.LAND API key as `Authorization: Bearer odds_live_...`."}},"parameters":{"EventId":{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical event id, such as `cev_...`."},"TabPath":{"name":"tab","in":"path","required":true,"schema":{"type":"string","enum":["main","goals","players","corners","cards","combos","periods","same_game_multi"]},"description":"Market tab key. `sgm` is accepted as an alias for `same_game_multi`."},"AssetFile":{"name":"file","in":"path","required":true,"schema":{"type":"string"},"description":"Asset filename returned by the matching asset index route."},"SportKey":{"name":"sportKey","in":"query","schema":{"type":"string"},"description":"Filter by sport, for example `soccer`, `basketball`, `tennis`, or `esports`."},"RegionKey":{"name":"regionKey","in":"query","schema":{"type":"string"},"description":"Filter by region."},"CompetitionKey":{"name":"competitionKey","in":"query","schema":{"type":"string"},"description":"Filter by canonical competition key."},"LeagueKey":{"name":"leagueKey","in":"query","schema":{"type":"string"},"description":"Alias for `competitionKey` for clients that still use league naming."},"Status":{"name":"status","in":"query","schema":{"type":"string","enum":["upcoming","live","completed","suspended"]},"description":"Filter events by status."},"Scope":{"name":"scope","in":"query","schema":{"type":"string","enum":["catalog","live"]},"description":"Read from the catalog or live published state."},"View":{"name":"view","in":"query","schema":{"type":"string","enum":["home","live","trending","starting_soon","all","outrights"]},"description":"Lobby/event grouping view."},"Group":{"name":"group","in":"query","schema":{"type":"string"},"description":"Filter an event market page by market key."},"Search":{"name":"q","in":"query","schema":{"type":"string"},"description":"Search by team, competition, region, or event text. `search` is also accepted."},"Limit":{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500},"description":"Maximum items returned."},"MaxEvents":{"name":"maxEvents","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":40},"description":"Maximum unique event cards embedded across all lobby sections."},"MaxCompetitions":{"name":"maxCompetitions","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"description":"Maximum competition index entries embedded in a lobby response."},"Cursor":{"name":"cursor","in":"query","schema":{"type":"integer","minimum":0},"description":"Offset-style pagination cursor."},"IncludeDisabled":{"name":"includeDisabled","in":"query","schema":{"type":"boolean"},"description":"Include events or markets that are not currently quoteable."},"IncludePages":{"name":"includePages","in":"query","schema":{"type":"boolean","default":true},"description":"Set false on market-tabs to return tab metadata without embedding every tab page."},"QuoteableOnly":{"name":"quoteableOnly","in":"query","schema":{"type":"boolean","default":false},"description":"Filter event collections and embedded market depth to inventory currently open for quoting."}},"responses":{"BadRequest":{"description":"Invalid request body or query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid API token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The API key does not have the required scope or the feature is disabled by policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"The request failed without exposing internal implementation details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"Service is not ready or published state is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Consumer request rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","required":["code","message","requestId","error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"nullable":true}},"additionalProperties":true},"Health":{"type":"object","required":["ok","service","checkedAt","startedAt","uptimeSeconds"],"properties":{"ok":{"type":"boolean"},"service":{"type":"string","example":"sports-odds-api"},"checkedAt":{"type":"string","format":"date-time"},"startedAt":{"type":"string","format":"date-time"},"uptimeSeconds":{"type":"integer"},"nodeEnv":{"type":"string","nullable":true},"build":{"type":"object","additionalProperties":true}}},"Readiness":{"type":"object","required":["ok","checkedAt"],"properties":{"ok":{"type":"boolean"},"checkedAt":{"type":"string","format":"date-time"},"reason":{"type":"string"}},"additionalProperties":false},"Envelope":{"type":"object","required":["contractVersion","generatedAt","data","requestId"],"properties":{"contractVersion":{"type":"string","example":"sportsbook-core.product.v1"},"generatedAt":{"type":"string","format":"date-time"},"requestId":{"type":"string"},"pricingVersion":{"type":"string"},"policyVersion":{"type":"integer"},"freshness":{"type":"object","additionalProperties":true},"data":{"description":"Endpoint-specific payload.","nullable":true},"meta":{"type":"object","additionalProperties":true}},"additionalProperties":true},"SourceData":{"type":"object","required":["name","pipeline","routes","sourceStatus"],"properties":{"name":{"type":"string","example":"Sportsbook Core"},"pipeline":{"type":"string","example":"core"},"authConfigured":{"type":"boolean"},"pricingPolicy":{"type":"string"},"routes":{"type":"object","additionalProperties":{"type":"string"}},"sourceStatus":{"type":"object","required":["configuredCount","totalCount","aggregate"],"properties":{"configuredCount":{"type":"integer"},"totalCount":{"type":"integer"},"aggregate":{"type":"string","enum":["configured","unavailable"]}}}},"additionalProperties":true},"FeaturesData":{"type":"object","required":["features","policyVersion"],"properties":{"policyVersion":{"type":"integer"},"features":{"type":"object","required":["cashout","sameGameMulti","settlement"],"properties":{"cashout":{"$ref":"#/components/schemas/FeatureStatus"},"settlement":{"$ref":"#/components/schemas/FeatureStatus"},"sameGameMulti":{"allOf":[{"$ref":"#/components/schemas/FeatureStatus"},{"type":"object","properties":{"compatibility":{"type":"object","required":["supportedSportKeys","supportedImportanceTiers","componentMarketKeys","minComponents","maxComponents","pricing","calibration"],"properties":{"supportedSportKeys":{"type":"array","items":{"type":"string"}},"supportedImportanceTiers":{"type":"array","items":{"type":"string"}},"componentMarketKeys":{"type":"array","items":{"$ref":"#/components/schemas/MarketKey"}},"scoreModelComponentMarketKeys":{"type":"array","items":{"$ref":"#/components/schemas/MarketKey"}},"minComponents":{"type":"integer"},"maxComponents":{"type":"integer"},"pricing":{"type":"string","example":"correlation_aware"},"calibration":{"type":"object","required":["status","minimumResolvedSamplesPerPair","autoTuning"],"properties":{"status":{"type":"string","enum":["conservative_uncalibrated","calibrated"]},"minimumResolvedSamplesPerPair":{"type":"integer","minimum":200},"autoTuning":{"type":"boolean"}}}},"additionalProperties":true}}}]}}}}},"FeatureStatus":{"type":"object","required":["available"],"properties":{"available":{"type":"boolean"},"route":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true},"CoverageData":{"type":"object","required":["product","sameGameMulti","sourceSla","policyVersion"],"properties":{"policyVersion":{"type":"integer"},"product":{"type":"object","required":["eventCount","liveEventCount","quoteableMarketCount","coverageTiers","pricingMix","freshness","sports"],"properties":{"eventCount":{"type":"integer"},"liveEventCount":{"type":"integer"},"bettableEventCount":{"type":"integer"},"liveBettableEventCount":{"type":"integer"},"quoteableMarketCount":{"type":"integer"},"resultCount":{"type":"integer"},"settlementReadyMarketCount":{"type":"integer"},"coverageTiers":{"$ref":"#/components/schemas/CountMap"},"pricingMix":{"$ref":"#/components/schemas/CountMap"},"settlementRequirements":{"type":"array","items":{"type":"string"}},"freshness":{"type":"object","required":["publicationVersion","publishedAt","ageMs"],"properties":{"publicationVersion":{"type":"integer"},"publishedAt":{"type":"string","format":"date-time","nullable":true},"ageMs":{"type":"integer","nullable":true}}},"sports":{"type":"array","items":{"$ref":"#/components/schemas/CoverageSport"}},"markets":{"type":"array","items":{"$ref":"#/components/schemas/CoverageMarket"}}}},"sameGameMulti":{"$ref":"#/components/schemas/SgmCoverage"},"sourceSla":{"type":"object","additionalProperties":true}}},"CountMap":{"type":"object","additionalProperties":{"type":"integer"}},"SgmCoverage":{"type":"object","required":["available","candidateEventCount","compatibleQuoteableMarketCount"],"properties":{"available":{"type":"boolean"},"candidateEventCount":{"type":"integer"},"compatibleQuoteableMarketCount":{"type":"integer"}}},"CoverageSport":{"type":"object","required":["sportKey","sportTitle","eventCount","liveEventCount","quoteableMarketCount","coverageTiers"],"properties":{"sportKey":{"type":"string"},"sportTitle":{"type":"string"},"capability":{"type":"string","enum":["available","limited_live","limited_depth"]},"eventCount":{"type":"integer"},"liveEventCount":{"type":"integer"},"bettableEventCount":{"type":"integer"},"liveBettableEventCount":{"type":"integer"},"quoteableMarketCount":{"type":"integer"},"resultCount":{"type":"integer"},"settlement":{"type":"object","additionalProperties":true},"coverageTiers":{"$ref":"#/components/schemas/CountMap"},"sameGameMultiCandidateEventCount":{"type":"integer"}}},"CoverageMarket":{"type":"object","required":["marketKey","period","settlementRequirement","eventCount","marketCount","quoteableMarketCount"],"properties":{"marketKey":{"$ref":"#/components/schemas/MarketKey"},"period":{"type":"string"},"settlementRequirement":{"type":"string"},"eventCount":{"type":"integer"},"marketCount":{"type":"integer"},"quoteableMarketCount":{"type":"integer"},"pricingSources":{"type":"array","items":{"type":"string"}},"pricingMix":{"$ref":"#/components/schemas/CountMap"},"latestObservedAt":{"type":"string","format":"date-time","nullable":true},"sameGameMultiCompatible":{"type":"boolean"},"sameGameMultiQuoteableMarketCount":{"type":"integer"}}},"EventIdentity":{"type":"object","required":["sportKey","homeTeam","awayTeam","commenceTime"],"properties":{"sportKey":{"type":"string"},"homeTeam":{"type":"string"},"awayTeam":{"type":"string"},"commenceTime":{"type":"string","format":"date-time"}},"additionalProperties":false},"ResultData":{"type":"object","required":["eventId","status","event","source","score","settlement"],"properties":{"eventId":{"type":"string","example":"cev_..."},"status":{"type":"string","enum":["reported_final"]},"event":{"$ref":"#/components/schemas/EventIdentity"},"source":{"type":"object","additionalProperties":true},"score":{"$ref":"#/components/schemas/Score"},"regularTimeScore":{"$ref":"#/components/schemas/NullableScore"},"extraTimeScore":{"$ref":"#/components/schemas/NullableScore"},"penaltyScore":{"$ref":"#/components/schemas/NullableScore"},"clock":{"type":"string","nullable":true},"period":{"type":"string","nullable":true},"periodScores":{"type":"object","additionalProperties":true},"statistics":{"type":"object","additionalProperties":true},"incidentCount":{"type":"integer"},"evidence":{"type":"object","additionalProperties":true},"review":{"type":"object","additionalProperties":true},"settlement":{"type":"object","additionalProperties":true},"settlementInput":{"oneOf":[{"$ref":"#/components/schemas/ResultInput"},{"type":"object","nullable":true}]}},"additionalProperties":true},"ResultsData":{"type":"object","required":["results","totalCount"],"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ResultData"}},"cursor":{"type":"string"},"nextCursor":{"type":"string"},"totalCount":{"type":"integer"}}},"Score":{"type":"object","required":["home","away"],"properties":{"home":{"type":"integer","minimum":0},"away":{"type":"integer","minimum":0}}},"NullableScore":{"allOf":[{"$ref":"#/components/schemas/Score"}],"nullable":true},"Sport":{"type":"object","required":["sportKey","title","eventCount","liveEventCount","quoteableMarketCount"],"properties":{"sportKey":{"type":"string","example":"soccer"},"title":{"type":"string","example":"Soccer"},"asset":{"type":"object","additionalProperties":true},"eventCount":{"type":"integer"},"liveEventCount":{"type":"integer"},"quoteableMarketCount":{"type":"integer"}},"additionalProperties":true},"LiveState":{"type":"object","required":["status","homeScore","awayScore","fresh"],"properties":{"status":{"type":"string"},"homeScore":{"type":"integer","minimum":0,"nullable":true},"awayScore":{"type":"integer","minimum":0,"nullable":true},"clock":{"type":"string","nullable":true},"minute":{"type":"integer","nullable":true},"period":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time","nullable":true},"fresh":{"type":"boolean"},"stats":{"type":"object","additionalProperties":true},"incidents":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":true},"RiskLimit":{"type":"object","required":["importanceTier","maxStake","maxPayout"],"properties":{"importanceTier":{"type":"string","enum":["elite","major","standard","low"]},"maxStake":{"type":"number","minimum":0},"maxPayout":{"type":"number","minimum":0}},"additionalProperties":true},"ProductOutcome":{"type":"object","required":["outcomeKey","label","status","active","selectionRef"],"properties":{"outcomeKey":{"type":"string","example":"home"},"label":{"type":"string","example":"France"},"price":{"type":"number","minimum":1.01,"nullable":true,"example":1.91},"fairProbability":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1},"referencePrice":{"type":"number","minimum":1.01},"pricingVersion":{"type":"string"},"policyVersion":{"type":"integer"},"status":{"type":"string","enum":["open","disabled"]},"active":{"type":"boolean"},"selectionRef":{"$ref":"#/components/schemas/SelectionRef"}},"additionalProperties":true},"ProductMarket":{"type":"object","required":["marketId","marketKey","label","order","status","quoteEligible","outcomes"],"properties":{"marketId":{"type":"string","example":"pm_..."},"pricedMarketId":{"type":"string"},"marketKey":{"$ref":"#/components/schemas/MarketKey"},"label":{"type":"string"},"order":{"type":"number","minimum":0},"tabKey":{"type":"string"},"period":{"type":"string","nullable":true},"line":{"type":"number","nullable":true},"status":{"type":"string","enum":["open","disabled"]},"bettingOpen":{"type":"boolean"},"suspended":{"type":"boolean"},"quoteEligible":{"type":"boolean"},"disabledReason":{"type":"string","nullable":true},"settlementRequirement":{"type":"string"},"pricingSource":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"outcomes":{"type":"array","items":{"$ref":"#/components/schemas/ProductOutcome"}}},"additionalProperties":true},"BetBuilder":{"type":"object","required":["available","status","mode","pricingMode","minimumLegs","maximumLegs","compatibleMarketKeys","legGroups"],"properties":{"available":{"type":"boolean"},"status":{"type":"string","enum":["ready","unavailable","insufficient_markets"]},"mode":{"type":"string","enum":["same_game_multi"]},"pricingMode":{"type":"string","enum":["correlation_aware"]},"minimumLegs":{"type":"integer","minimum":2},"maximumLegs":{"type":"integer","minimum":2},"compatibleMarketKeys":{"type":"array","items":{"$ref":"#/components/schemas/MarketKey"}},"legGroups":{"type":"array","items":{"type":"object","required":["key","title","marketKeys","count"],"properties":{"key":{"type":"string"},"title":{"type":"string"},"marketKeys":{"type":"array","items":{"$ref":"#/components/schemas/MarketKey"}},"count":{"type":"integer","minimum":0}}}}}},"EventCard":{"type":"object","required":["eventId","sportKey","homeName","awayName","startTime","status","bettingStatus","marketCount","quoteableMarketCount","bettingLimits"],"properties":{"eventId":{"type":"string","example":"cev_..."},"canonicalEventId":{"type":"string"},"sportKey":{"type":"string","example":"soccer"},"sportTitle":{"type":"string"},"competitionKey":{"type":"string"},"competitionTitle":{"type":"string"},"regionKey":{"type":"string"},"regionTitle":{"type":"string"},"homeName":{"type":"string"},"awayName":{"type":"string"},"startTime":{"type":"string","format":"date-time"},"status":{"type":"string"},"matchStatus":{"type":"string"},"bettingStatus":{"type":"string","enum":["open","closed"]},"live":{"allOf":[{"$ref":"#/components/schemas/LiveState"}],"nullable":true},"marketCount":{"type":"integer"},"quoteableMarketCount":{"type":"integer"},"depthCount":{"type":"integer"},"depthScore":{"type":"number"},"coverageTier":{"type":"string","enum":["empty","basic","standard","deep"]},"importanceTier":{"type":"string","enum":["elite","major","standard","low"]},"bettingLimits":{"$ref":"#/components/schemas/RiskLimit"},"mainMarketId":{"type":"string","nullable":true},"primaryMarket":{"allOf":[{"$ref":"#/components/schemas/ProductMarket"}],"nullable":true},"sameGameMultiAvailable":{"type":"boolean"},"betBuilder":{"$ref":"#/components/schemas/BetBuilder"}},"additionalProperties":true},"MarketPage":{"type":"object","required":["eventId","tab","limit","count","totalCount","markets"],"properties":{"eventId":{"type":"string"},"tab":{"type":"string"},"tabTitle":{"type":"string"},"cursor":{"type":"string"},"nextCursor":{"type":"string"},"limit":{"type":"integer"},"count":{"type":"integer"},"totalCount":{"type":"integer"},"markets":{"type":"array","items":{"$ref":"#/components/schemas/ProductMarket"}}},"additionalProperties":true},"MarketTab":{"type":"object","required":["key","title","count","openCount","available"],"properties":{"key":{"type":"string"},"title":{"type":"string"},"count":{"type":"integer"},"openCount":{"type":"integer"},"available":{"type":"boolean"}}},"MarketTabsData":{"type":"object","required":["eventId","tabs","tabPages"],"properties":{"eventId":{"type":"string"},"tabs":{"type":"array","items":{"$ref":"#/components/schemas/MarketTab"}},"tabPages":{"type":"array","items":{"$ref":"#/components/schemas/MarketPage"}}}},"LobbyData":{"type":"object","required":["navigation","scope","view","sports","sections","competitions","eventsById"],"properties":{"navigation":{"type":"object","additionalProperties":true},"scope":{"type":"string"},"view":{"type":"string"},"sports":{"type":"array","items":{"$ref":"#/components/schemas/Sport"}},"sections":{"type":"array","items":{"type":"object","additionalProperties":true}},"competitions":{"type":"array","items":{"type":"object","additionalProperties":true}},"eventsById":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EventCard"}}},"additionalProperties":true},"OddsHistoryData":{"type":"object","required":["available","eventId","priceBasis","points"],"properties":{"available":{"type":"boolean"},"eventId":{"type":"string"},"priceBasis":{"type":"string","enum":["policy_independent_reference_price"]},"intervalMinutes":{"type":"integer","minimum":1,"maximum":1440},"hours":{"type":"integer","minimum":1,"maximum":4320},"points":{"type":"array","maxItems":5000,"items":{"type":"object","required":["marketId","marketKey","outcomeKey","outcomeLabel","price","observedAt"],"properties":{"marketId":{"type":"string"},"marketKey":{"$ref":"#/components/schemas/MarketKey"},"period":{"type":"string","nullable":true},"line":{"type":"number","nullable":true},"outcomeKey":{"type":"string"},"outcomeLabel":{"type":"string"},"price":{"type":"number","minimum":1.01},"observedAt":{"type":"string","format":"date-time"}}}}}},"SettlementPackData":{"type":"object","required":["eventId","status","settlementEngine","supported","marketTabs","result"],"properties":{"eventId":{"type":"string"},"status":{"type":"string","enum":["pending","final"]},"settlementEngine":{"type":"string"},"supported":{"type":"boolean"},"marketTabs":{"type":"array","items":{"$ref":"#/components/schemas/MarketTab"}},"result":{"type":"object","nullable":true,"additionalProperties":true}},"additionalProperties":true},"BetQuoteLeg":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["accepted","rejected"]},"reason":{"type":"string"},"eventId":{"type":"string"},"marketId":{"type":"string"},"marketKey":{"$ref":"#/components/schemas/MarketKey"},"outcomeKey":{"type":"string"},"acceptedPrice":{"type":"number","minimum":1.01},"maxStake":{"type":"number"},"maxPayout":{"type":"number"},"selectionRef":{"$ref":"#/components/schemas/SelectionRef"},"settlementPlan":{"$ref":"#/components/schemas/SettlementPlan"},"decisionAuthority":{"type":"string","enum":["deterministic","llm","deterministic_override"]}},"additionalProperties":true},"BetEvaluation":{"type":"object","required":["status","generatedAt","legCount","sameGameMulti","legs","features"],"properties":{"status":{"type":"string","enum":["accepted","rejected"]},"reason":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"legCount":{"type":"integer"},"sameGameMulti":{"type":"boolean"},"currency":{"type":"string"},"stake":{"type":"number"},"combinedPrice":{"type":"number","minimum":1.01},"potentialReturn":{"type":"number"},"maxStake":{"type":"number"},"maxPayout":{"type":"number"},"pricingVersion":{"type":"string"},"policyVersion":{"type":"integer"},"legs":{"type":"array","items":{"$ref":"#/components/schemas/BetQuoteLeg"}},"features":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FeatureStatus"}}},"additionalProperties":true},"BetQuote":{"allOf":[{"$ref":"#/components/schemas/BetEvaluation"},{"type":"object","properties":{"quoteId":{"type":"string","example":"q_..."},"expiresAt":{"type":"string","format":"date-time"},"engineVersion":{"type":"string"},"totalOdds":{"type":"number","minimum":1.01},"acceptedLegs":{"type":"array","items":{"$ref":"#/components/schemas/BetQuoteLeg"}}}}]},"SgmQuote":{"allOf":[{"$ref":"#/components/schemas/BetQuote"},{"type":"object","properties":{"pricing":{"type":"object","additionalProperties":true},"correlations":{"type":"array","items":{"type":"object","additionalProperties":true}}}}]},"CashoutData":{"type":"object","required":["available","generatedAt","stake","evaluation"],"properties":{"available":{"type":"boolean"},"reason":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stake":{"type":"number"},"currency":{"type":"string"},"originalCombinedPrice":{"type":"number"},"currentCombinedPrice":{"type":"number"},"originalPotentialReturn":{"type":"number"},"fairValue":{"type":"number"},"cashoutAmount":{"type":"number"},"marginPct":{"type":"number"},"pricingVersion":{"type":"string"},"policyVersion":{"type":"integer"},"evaluation":{"$ref":"#/components/schemas/BetEvaluation"}},"additionalProperties":true},"SettlementData":{"type":"object","required":["status","generatedAt","event","legs"],"properties":{"status":{"type":"string","enum":["final","pending","blocked"]},"generatedAt":{"type":"string","format":"date-time"},"event":{"$ref":"#/components/schemas/ResultInput"},"source":{"type":"string"},"version":{"type":"string"},"homeScore":{"type":"integer","minimum":0},"awayScore":{"type":"integer","minimum":0},"settlementAttempt":{"type":"integer"},"retryAfterSeconds":{"type":"integer"},"nextRetryAt":{"type":"string","format":"date-time"},"requiresAdminReview":{"type":"boolean"},"adminReviewReason":{"type":"string"},"result":{"type":"object","additionalProperties":true},"audit":{"type":"object","additionalProperties":true},"legs":{"type":"array","items":{"$ref":"#/components/schemas/SettlementLegResult"}}},"additionalProperties":true},"SettlementLegResult":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["won","lost","void","pending","unsupported"]},"stakeWinFraction":{"type":"number","minimum":0,"maximum":1},"stakeVoidFraction":{"type":"number","minimum":0,"maximum":1},"stakeLossFraction":{"type":"number","minimum":0,"maximum":1},"reason":{"type":"string"},"message":{"type":"string"},"decisionAuthority":{"type":"string","enum":["deterministic","llm","deterministic_override"]},"model":{"type":"string"},"promptVersion":{"type":"string"},"evidenceCount":{"type":"integer"},"reviewRecommendation":{"type":"string"}},"additionalProperties":true},"SourceEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/SourceData"}}}]},"FeaturesEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FeaturesData"}}}]},"CoverageEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CoverageData"}}}]},"ResultsEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ResultsData"}}}]},"ResultEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/ResultData"}],"nullable":true}}}]},"SportsEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Sport"}}}}]},"LobbyEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/LobbyData"}}}]},"EventsEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EventCard"}}}}]},"EventEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/EventCard"}],"nullable":true}}}]},"MarketPageEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MarketPage"}}}]},"MarketTabsEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MarketTabsData"}],"nullable":true}}}]},"LiveEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/LiveState"}],"nullable":true}}}]},"OddsHistoryEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/OddsHistoryData"}}}]},"SettlementPackEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/SettlementPackData"}],"nullable":true}}}]},"BetEvaluationEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/BetEvaluation"}}}]},"BetQuoteEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/BetQuote"}}}]},"SgmQuoteEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/SgmQuote"}}}]},"CashoutEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CashoutData"}}}]},"SettlementEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/SettlementData"}}}]},"OddsChangePolicy":{"type":"string","enum":["reject","accept_better","accept_any"]},"MarketKey":{"type":"string","enum":["moneyline","match_result","match_result_1up","match_result_2up","to_qualify","draw_no_bet","double_chance","spread","three_way_handicap","total","both_teams_to_score","team_total","team_exact_goals","team_to_win_period","team_to_win_either_half","team_to_win_both_halves","clean_sheet","win_to_nil","any_period_to_nil","first_goal","first_goalscorer","first_goal_interval","minute_result","correct_score","odd_even_total","exact_total_goals","total_range","winning_margin","result_btts","result_total","btts_total","halftime_fulltime","player_to_score","player_goals","player_assists","player_goals_or_assists","player_total_shots","player_shots_on_target","player_to_be_carded","corner_total","team_corner_total","corner_handicap","most_corners","total_cards","card_handicap","most_cards","same_game_multi","outright"]},"SettlementPlan":{"type":"object","required":["planVersion","requirement","evidencePolicy","minEvidenceSources","requiresFinalScore","evidenceSources"],"properties":{"planVersion":{"type":"string","enum":["settlement-plan.v1"]},"requirement":{"type":"string","enum":["final_score","period_scores","statistics","incidents","player_stats","manual_review"]},"evidencePolicy":{"type":"string","enum":["fast_verified_final_score","period_score_evidence","team_stat_evidence","incident_timeline_evidence","player_stat_evidence","unsupported"]},"minEvidenceSources":{"type":"integer","minimum":0},"requiresFinalScore":{"type":"boolean"},"acceptedSource":{"type":"string"},"evidenceSources":{"type":"array","items":{"type":"string"}},"marketKey":{"$ref":"#/components/schemas/MarketKey"},"selectionSide":{"type":"string"},"selectionPoint":{"type":"number"},"settlementPeriodKey":{"type":"string"},"cardScoring":{"type":"object","additionalProperties":true},"player":{"$ref":"#/components/schemas/SelectionPlayer"},"playerSettlementTerms":{"type":"object","additionalProperties":true}},"additionalProperties":true},"SelectionPlayer":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"team":{"type":"string","enum":["home","away"]},"sourcePlayerId":{"type":"string"}}},"SelectionRef":{"type":"object","description":"Opaque selection reference returned by market-depth outcomes. Clients should send it back unchanged when quoting or settling.","properties":{"eventId":{"type":"string"},"canonicalEventId":{"type":"string"},"source":{"type":"string"},"sourceEventId":{"type":"string"},"marketId":{"type":"string"},"marketBetKey":{"type":"string"},"outcomeKey":{"type":"string"},"outcomeBetKey":{"type":"string"},"acceptedPrice":{"type":"number"},"line":{"type":"number"},"oddsVersion":{"type":"string"},"marketKey":{"$ref":"#/components/schemas/MarketKey"},"selectionSide":{"type":"string"},"selectionPoint":{"type":"number"},"settlementPeriodKey":{"type":"string"},"settlementRequirement":{"type":"string","enum":["final_score","period_scores","statistics","incidents","player_stats","manual_review"]},"settlementPlan":{"$ref":"#/components/schemas/SettlementPlan"},"evidenceStatus":{"type":"string"},"stitchConfidenceTier":{"type":"string"},"priceSource":{"type":"string","enum":["provider","internal_model"]},"acceptanceMode":{"type":"string","enum":["live_hold"]},"acceptanceHoldSeconds":{"type":"integer"},"sgmQuoteId":{"type":"string"},"pricingModelVersion":{"type":"string"},"pricingVersion":{"type":"string"},"policyVersion":{"type":"integer"},"componentRefs":{"type":"array","items":{"type":"object","additionalProperties":true}},"expiresAt":{"type":"string","format":"date-time"},"modelQualityScore":{"type":"number"}},"additionalProperties":true},"BetSlipLegInput":{"type":"object","anyOf":[{"required":["eventId","outcomeKey"]},{"required":["selectionRef"]}],"properties":{"eventId":{"type":"string"},"marketId":{"type":"string"},"marketBetKey":{"type":"string"},"outcomeKey":{"type":"string"},"outcomeBetKey":{"type":"string"},"acceptedPrice":{"type":"number"},"selectionRef":{"$ref":"#/components/schemas/SelectionRef"}}},"BetSlipInput":{"type":"object","required":["legs"],"properties":{"legs":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/BetSlipLegInput"}},"stake":{"type":"number","minimum":0,"exclusiveMinimum":true},"currency":{"type":"string","enum":["USD"],"example":"USD"},"scope":{"type":"string","enum":["catalog","live","combined"]},"consumerId":{"type":"string","description":"Optional operator-side user or session id for audit correlation."},"originalTotalOdds":{"type":"number","minimum":1,"exclusiveMinimum":true,"description":"Actual correlated ticket odds, required for accurate SGM cashout valuation."},"oddsChangePolicy":{"$ref":"#/components/schemas/OddsChangePolicy"}},"example":{"legs":[{"eventId":"cev_example","marketId":"pm_example","outcomeKey":"home","acceptedPrice":1.92,"selectionRef":{"canonicalEventId":"cev_example","marketId":"pm_example","outcomeKey":"home","marketKey":"match_result"}}],"stake":25,"currency":"USD","scope":"combined","oddsChangePolicy":"accept_better"}},"SgmQuoteInput":{"type":"object","required":["eventId","components"],"properties":{"eventId":{"type":"string"},"components":{"type":"array","minItems":2,"items":{"$ref":"#/components/schemas/SelectionRef"}},"stake":{"type":"number","minimum":0,"exclusiveMinimum":true},"currency":{"type":"string","enum":["USD"],"example":"USD"},"scope":{"type":"string","enum":["catalog","live","combined"]},"oddsChangePolicy":{"$ref":"#/components/schemas/OddsChangePolicy"}},"example":{"eventId":"cev_example","components":[{"canonicalEventId":"cev_example","marketId":"pm_match_result","marketKey":"match_result","outcomeKey":"home","acceptedPrice":1.92},{"canonicalEventId":"cev_example","marketId":"pm_total_25","marketKey":"total","outcomeKey":"over","selectionPoint":2.5,"acceptedPrice":1.85}],"stake":25,"currency":"USD","scope":"combined","oddsChangePolicy":"accept_better"}},"ResultInput":{"type":"object","required":["sourceEventId","sportKey","commenceTime","homeTeam","awayTeam"],"properties":{"source":{"type":"string"},"sourceEventId":{"type":"string"},"sportKey":{"type":"string"},"leagueKey":{"type":"string"},"leagueTitle":{"type":"string"},"commenceTime":{"type":"string","format":"date-time"},"homeTeam":{"type":"string"},"awayTeam":{"type":"string"}}},"BetSettlementLegInput":{"allOf":[{"$ref":"#/components/schemas/BetSlipLegInput"},{"type":"object","properties":{"selectionId":{"type":"string"},"marketKey":{"$ref":"#/components/schemas/MarketKey"},"selectionSide":{"type":"string"},"selectionPoint":{"type":"number"},"settlementPeriodKey":{"type":"string"},"settlementPlan":{"$ref":"#/components/schemas/SettlementPlan"}}}]},"BetSettlementInput":{"type":"object","required":["event","legs"],"properties":{"event":{"$ref":"#/components/schemas/ResultInput"},"legs":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/BetSettlementLegInput"}},"settlementAttempt":{"type":"integer","minimum":0},"storedHomeScore":{"type":"integer"},"storedAwayScore":{"type":"integer"},"storedSourceUpdatedAt":{"type":"string","format":"date-time"},"minimumFinalAgeMs":{"type":"integer","minimum":0},"requireAcceptedSettlementPlan":{"type":"boolean"}}}}}}