openapi: 3.2.0 info: title: Parlay Stats API description: Real-time sports odds aggregation from **33 books and data sources** updated every 2-120 seconds depending on source cadence. version: 3.2.0 x-credit-currency: credits x-credit-cost-catalogue-url: /v1/meta/credit-costs x-pricing-url: /v1/pricing x-usage-url: /v1/usage contact: name: ParlayAPI support url: https://parlay-api.com/support email: support@parlay-api.com license: name: ParlayAPI Terms of Service url: https://parlay-api.com/terms termsOfService: https://parlay-api.com/terms servers: - url: https://parlay-api.com description: Production (primary; HTTP/2, TLS 1.3). - url: https://api.parlay-api.com description: Production (high-volume; bypasses Cloudflare edge for trading bots above 30 req/min). Same origin, same auth, same endpoints. tags: - name: Stats paths: /v1/stats: get: summary: Get Stats description: 'Public endpoint - data availability stats. Cached 5 minutes. The underlying query takes ~10s (DISTINCT source + MIN/MAX game_date over 33M rows) and the answer changes slowly enough that every poll re-running it is wasteful. Customers surveying capabilities don''t need second-resolution freshness on a "what bookmakers do you cover" answer. Stale-while-revalidate semantics: if the cache is fresh (under 5 min), return it. If it''s expired but still present, return the stale copy AND spawn a background refresh so the next request hits a fresh value. If it''s never been populated (first call on a cold worker), do the full query inline - the warmup loop catches up within ~13 s of spawn so this only affects requests in that narrow window. iter_031/033 #327/#329 HIGH timeouts.' operationId: get_stats_v1_stats_get responses: '200': description: Successful Response content: application/json: schema: {} tags: - Stats components: securitySchemes: apiKeyHeader: type: apiKey in: header name: X-API-Key description: API key passed in the X-API-Key header. Recommended. apiKeyQuery: type: apiKey in: query name: apiKey description: API key passed as the ?apiKey= query parameter. Useful for browser fetch() and webhooks where header control is limited. Equivalent to X-API-Key. bearerAuth: type: http scheme: bearer bearerFormat: APIKey description: 'API key passed via Authorization: Bearer . Equivalent to X-API-Key for compatibility with auth libraries that expect bearer tokens.'