openapi: 3.2.0 info: title: Parlay Clv 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: clv paths: /v1/clv/import-screenshot: post: tags: - clv summary: Import Bet Screenshot description: 'Extract structured bets from a sportsbook screenshot. Default off via BET_IMPORT_ENABLED=0. When enabled, calls Claude''s vision API to parse the image. Returns {bets, model, warnings}. Cost: 20 + 5*N credits where N = recognized bets.' operationId: import_bet_screenshot_v1_clv_import_screenshot_post requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/Body_import_bet_screenshot_v1_clv_import_screenshot_post' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-credit-cost-formula: 20 + 5 x recognized_bets x-credit-cost-floor: 20 x-credit-cost-type: variable x-credit-cost-example: 4 recognized bets = 20 + 5x4 = 40 credits x-credit-cost-description: OCR a bet-slip screenshot into a structured leg list security: - apiKeyHeader: [] - apiKeyQuery: [] - bearerAuth: [] components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError Body_import_bet_screenshot_v1_clv_import_screenshot_post: properties: image: anyOf: - type: string contentMediaType: application/octet-stream - type: 'null' title: Image type: object title: Body_import_bet_screenshot_v1_clv_import_screenshot_post ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError 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.'