{"openapi":"3.1.0","info":{"title":"betting-forecast","description":"\nWin forecasts for sports and esports matches: outcome probabilities, odds and additional\nmarkets. Access with an API key in the `X-API-Key` header.\n\nErrors are returned as RFC 9457 (`application/problem+json`) and include `trace_id` and\n`request_id`: quote them when contacting support.\n","version":"0.1.0"},"paths":{"/v1/sports":{"get":{"tags":["sports"],"summary":"List disciplines","description":"All supported disciplines with their available markets.","operationId":"listSports","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SportList"}}}},"422":{"description":"`/problems/validation-error`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}}},"security":[{"ApiKeyHeader":[]}]}},"/v1/sports/{sport_id}":{"get":{"tags":["sports"],"summary":"Discipline","description":"A single discipline by ID; 404 `not-found` if it does not exist.","operationId":"getSport","security":[{"ApiKeyHeader":[]}],"parameters":[{"name":"sport_id","in":"path","required":true,"schema":{"type":"string","title":"Sport Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SportOut"}}}},"422":{"description":"`/problems/validation-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"404":{"description":"`/problems/not-found`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}}}}},"/v1/events":{"get":{"tags":["events"],"summary":"List events","description":"Events with filters and keyset pagination (sorted by start time).","operationId":"listEvents","security":[{"ApiKeyHeader":[]}],"parameters":[{"name":"sport","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","pattern":"^[a-z0-9][a-z0-9_.-]{0,99}$"},"description":"Disciplines (multiple allowed)","title":"Sport"},"description":"Disciplines (multiple allowed)"},{"name":"competition","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9_.-]{0,99}$"},{"type":"null"}],"description":"Tournament ID","title":"Competition"},"description":"Tournament ID"},{"name":"status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventStatus"},"description":"Event statuses","title":"Status"},"description":"Event statuses"},{"name":"starts_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Starts no earlier than (UTC)","title":"Starts From"},"description":"Starts no earlier than (UTC)"},{"name":"starts_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Starts no later than (UTC)","title":"Starts To"},"description":"Starts no later than (UTC)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor from `next_cursor`","title":"Cursor"},"description":"Cursor from `next_cursor`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPage"}}}},"422":{"description":"`/problems/validation-error`, `/problems/invalid-cursor`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}}}}},"/v1/events/{event_id}":{"get":{"tags":["events"],"summary":"Event","description":"A single event; 404 `not-found` if it does not exist.","operationId":"getEvent","security":[{"ApiKeyHeader":[]}],"parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventOut"}}}},"422":{"description":"`/problems/validation-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"404":{"description":"`/problems/not-found`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}}}}},"/v1/forecasts":{"get":{"tags":["forecasts"],"summary":"List forecasts","description":"Forecasts with embedded events, the same filters as for events, and market selection.","operationId":"listForecasts","security":[{"ApiKeyHeader":[]}],"parameters":[{"name":"sport","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","pattern":"^[a-z0-9][a-z0-9_.-]{0,99}$"},"description":"Disciplines (multiple allowed)","title":"Sport"},"description":"Disciplines (multiple allowed)"},{"name":"competition","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9_.-]{0,99}$"},{"type":"null"}],"description":"Tournament ID","title":"Competition"},"description":"Tournament ID"},{"name":"status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventStatus"},"description":"Event statuses","title":"Status"},"description":"Event statuses"},{"name":"starts_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Starts no earlier than (UTC)","title":"Starts From"},"description":"Starts no earlier than (UTC)"},{"name":"starts_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Starts no later than (UTC)","title":"Starts To"},"description":"Starts no later than (UTC)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor from `next_cursor`","title":"Cursor"},"description":"Cursor from `next_cursor`"},{"name":"market","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/MarketKey"},"description":"Keep only these markets","title":"Market"},"description":"Keep only these markets"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForecastPage"}}}},"422":{"description":"`/problems/validation-error`, `/problems/invalid-cursor`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}}}}},"/v1/events/{event_id}/forecast":{"get":{"tags":["forecasts"],"summary":"Event forecast","description":"Current forecast for an event.\n\n404 `not-found`: no such event; 404 `forecast-not-available`: the event exists,\nbut there is no forecast (or none for the requested markets).","operationId":"getEventForecast","security":[{"ApiKeyHeader":[]}],"parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}},{"name":"market","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/MarketKey"},"description":"Keep only these markets","title":"Market"},"description":"Keep only these markets"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForecastOut"}}}},"422":{"description":"`/problems/validation-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}},"404":{"description":"`/problems/not-found`, `/problems/forecast-not-available`","content":{"application/problem+json":{"schema":{"description":"RFC 9457 error body.","properties":{"type":{"description":"Error type, e.g. `/problems/not-found`","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"detail":{"title":"Detail","type":"string"},"instance":{"description":"Request path","title":"Instance","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Trace ID for support","title":"Trace Id"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Request ID","title":"Request Id"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"Validation error details (422 only)","title":"Errors"}},"required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","type":"object"}}}}}}},"/v1/me":{"get":{"tags":["account"],"summary":"Current key","description":"ID, name and expiry of the key used for the request. Not cached.","operationId":"getMe","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeOut"}}}},"422":{"description":"`/problems/validation-error`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"504":{"description":"`/problems/timeout`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"500":{"description":"`/problems/internal-error`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"401":{"description":"`/problems/missing-api-key`, `/problems/invalid-api-key`, `/problems/api-key-revoked`, `/problems/api-key-expired`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"503":{"description":"`/problems/rate-limiter-unavailable`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}},"429":{"description":"`/problems/rate-limited`","content":{"application/problem+json":{"schema":{"properties":{"type":{"type":"string","title":"Type","description":"Error type, e.g. `/problems/not-found`"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"instance":{"type":"string","title":"Instance","description":"Request path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id","description":"Trace ID for support"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Request ID"},"errors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Validation error details (422 only)"}},"type":"object","required":["type","title","status","detail","instance","trace_id","request_id"],"title":"ProblemOut","description":"RFC 9457 error body."}}}}},"security":[{"ApiKeyHeader":[]}]}}},"components":{"schemas":{"CompetitionOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region","description":"Region, or `null` for international ones"}},"type":"object","required":["id","name"],"title":"CompetitionOut"},"EventOut":{"properties":{"id":{"type":"string","title":"Id","description":"Opaque event ID"},"sport":{"type":"string","title":"Sport","description":"Discipline ID"},"competition":{"$ref":"#/components/schemas/CompetitionOut"},"participants":{"items":{"$ref":"#/components/schemas/ParticipantOut"},"type":"array","title":"Participants","description":"Exactly two participants"},"starts_at":{"type":"string","format":"date-time","title":"Starts At","description":"Start time, UTC"},"status":{"$ref":"#/components/schemas/EventStatus"},"best_of":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Best Of","description":"Series format (bo3, bo5) for esports"}},"type":"object","required":["id","sport","competition","participants","starts_at","status"],"title":"EventOut"},"EventPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Next page cursor, or `null`"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["items","next_cursor","has_more"],"title":"EventPage"},"EventStatus":{"type":"string","enum":["scheduled","live","finished","cancelled"],"title":"EventStatus"},"ForecastOut":{"properties":{"event_id":{"type":"string","title":"Event Id"},"event":{"anyOf":[{"$ref":"#/components/schemas/EventOut"},{"type":"null"}],"description":"The event, embedded in lists"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At","description":"After this moment the forecast is considered stale"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence","description":"Forecast confidence, 0..1"},"tag":{"type":"string","title":"Tag","description":"Internal forecast version tag"},"markets":{"items":{"$ref":"#/components/schemas/MarketOut"},"type":"array","title":"Markets"}},"type":"object","required":["event_id","generated_at","expires_at","confidence","tag","markets"],"title":"ForecastOut","description":"Public forecast."},"ForecastPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ForecastOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Next page cursor, or `null`"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["items","next_cursor","has_more"],"title":"ForecastPage"},"MarketKey":{"type":"string","enum":["match_winner","total","handicap","map_winner","total_maps"],"title":"MarketKey"},"MarketOut":{"properties":{"key":{"$ref":"#/components/schemas/MarketKey"},"line":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Line","description":"Total/handicap line, if any"},"map_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Map Number","description":"Map number for per-map markets"},"outcomes":{"items":{"$ref":"#/components/schemas/OutcomeOut"},"type":"array","title":"Outcomes"}},"type":"object","required":["key","outcomes"],"title":"MarketOut"},"MeOut":{"properties":{"key_id":{"type":"string","title":"Key Id"},"name":{"type":"string","title":"Name"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["key_id","name","expires_at"],"title":"MeOut","description":"Public key details."},"OutcomeOut":{"properties":{"key":{"type":"string","title":"Key","description":"`home`, `away`, `draw`, `over`, `under`, …"},"participant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Participant Id","description":"Participant, if the outcome refers to one"},"probability":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Probability","description":"Outcome probability, 0..1"},"odds":{"type":"number","minimum":1.0,"title":"Odds","description":"Odds (decimal)"}},"type":"object","required":["key","probability","odds"],"title":"OutcomeOut"},"ParticipantOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"short_name":{"type":"string","title":"Short Name"},"side":{"$ref":"#/components/schemas/Side","description":"`home` or `away`; for esports, the order in the bracket"}},"type":"object","required":["id","name","short_name","side"],"title":"ParticipantOut"},"Side":{"type":"string","enum":["home","away"],"title":"Side"},"SportKind":{"type":"string","enum":["sport","esport"],"title":"SportKind"},"SportList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SportOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SportList"},"SportOut":{"properties":{"id":{"type":"string","title":"Id","description":"Discipline ID, e.g. `football` or `cs2`"},"name":{"type":"string","title":"Name","description":"Name"},"kind":{"$ref":"#/components/schemas/SportKind","description":"`sport` for sports, `esport` for esports"},"allows_draw":{"type":"boolean","title":"Allows Draw","description":"Whether a draw is possible in the main outcome"},"markets_supported":{"items":{"$ref":"#/components/schemas/MarketKey"},"type":"array","title":"Markets Supported","description":"Markets available in forecasts"}},"type":"object","required":["id","name","kind","allows_draw","markets_supported"],"title":"SportOut"}},"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","description":"API key of the form `bf_live_…`; issued by an administrator","in":"header","name":"X-API-Key"}}},"tags":[{"name":"sports","description":"Disciplines: sports and esports, supported markets."},{"name":"events","description":"Events (matches): filters by discipline, tournament, status and time."},{"name":"forecasts","description":"Forecasts: outcome probabilities and odds per market."},{"name":"account","description":"Information about the current API key."}]}