OpticOdds Parlay API
The parlay API from OpticOdds — 3 operation(s) for parlay.
The parlay API from OpticOdds — 3 operation(s) for parlay.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/opticodds-parlay-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: 'OpticOdds sports betting data API - Version 3
**Pagination**: Endpoints returning lists support two modes.
*Offset-based (default)*: Use `page` (1-indexed) and `limit` (max 100, default 100). Response includes `page` and `has_more`.
*Cursor-based*: Use `cursor` (opaque token from previous response) and `limit`. Response includes `cursor` (null when no more results). When using cursor, `page` and `has_more` are omitted.
Do not pass both `page` and `cursor`. Cursor-based pagination is recommended for large result sets.'
title: OpticOdds API v3 Parlay API
contact:
name: OpticOdds Support
url: https://opticodds.com/support
license:
name: Proprietary
url: https://opticodds.com/terms
version: '3.0'
servers:
- url: https://api.opticodds.com/v3
tags:
- name: parlay
paths:
/parlay/odds:
post:
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
description: Returns parlay pricing for the given entries across specified sportsbooks. Use the opticodds_ai sportsbook for correlation-adjusted AI pricing.
tags:
- parlay
summary: Get parlay odds
parameters:
- description: Odds format
name: odds_format
in: query
schema:
type: string
enum:
- american
- decimal
- probability
- malay
- hong_kong
- indonesian
default: american
- description: Allow missing entries in result
name: allow_missing_entries
in: query
schema:
type: boolean
default: false
- description: Always include deep link URLs
name: always_include_deep_link
in: query
schema:
type: boolean
default: false
- description: Include latency timings
name: include_latencies
in: query
schema:
type: boolean
default: false
- description: Include rate limit info
name: include_rate_limit
in: query
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ParlayOddsEnvelope'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_query.ParlayRequest'
description: Parlay request with sportsbooks and entries
required: true
/parlay/odds/byop:
post:
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
description: Returns correlation-adjusted parlay pricing using user-provided prices (Bring Your Own Prices). Each entry must include price_american or price_decimal.
tags:
- parlay
summary: Get BYOP parlay odds
parameters:
- description: Odds format
name: odds_format
in: query
schema:
type: string
enum:
- american
- decimal
- probability
- malay
- hong_kong
- indonesian
default: american
- description: Include latency timings
name: include_latencies
in: query
schema:
type: boolean
default: false
- description: Include rate limit info
name: include_rate_limit
in: query
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ParlayBYOPEnvelope'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_query.ParlayRequest'
description: BYOP parlay request with entries containing prices
required: true
/parlays/pre-pack:
get:
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
description: Returns pre-built parlay suggestions with correlation-adjusted pricing across multiple sportsbooks. Parlays are generated and refreshed automatically.
tags:
- parlay
summary: Get featured parlays
parameters:
- description: Filter by sport (e.g. basketball, football)
name: sport
in: query
schema:
type: string
- description: Filter by league (e.g. nba, nfl)
name: league
in: query
schema:
type: string
- description: Filter by parlay type
name: parlay_type
in: query
schema:
type: string
enum:
- cross_game
- sgp
- cross_league
- description: Filter by sportsbook (e.g. draftkings, fanduel)
name: sportsbook
in: query
schema:
type: string
- description: Maximum number of parlays to return
name: limit
in: query
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FeaturedParlaysEnvelope'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
components:
schemas:
github_com_opticodds_api-go_internal_parlaygen.FeaturedParlay:
type: object
properties:
available_books:
type: array
items:
type: string
combined_odds:
type: object
additionalProperties:
type: integer
format: int32
deep_links:
type: object
additionalProperties:
type: string
expires_at:
type: string
fixture_id:
type: string
generated_at:
type: string
id:
type: string
league:
type: string
legs:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_parlaygen.ParlayLeg'
name:
type: string
parlay_type:
type: string
sport:
type: string
github_com_opticodds_api-go_internal_v3_response.ParlayResult:
type: object
properties:
deep_link_urls:
type: object
additionalProperties:
type: string
error:
type: string
legs:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ParlayLeg'
missing_entries:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ParlayLeg'
price:
type: number
example: -110
github_com_opticodds_api-go_internal_v3_response.ParlayBYOPEnvelope:
type: object
properties:
data:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ParlayResult'
github_com_opticodds_api-go_internal_parlaygen.ParlayLeg:
type: object
properties:
event_name:
type: string
fixture_id:
type: string
league_id:
type: string
market:
type: string
name:
type: string
player_id:
type: string
points:
type: number
price:
type: integer
selection_line:
type: string
sport_id:
type: string
starts_at:
type: string
team_id:
type: string
github_com_opticodds_api-go_internal_v3_query.ParlayEntry:
type: object
properties:
fixture_id:
type: string
market:
type: string
name:
type: string
price_american:
type: integer
price_decimal:
type: number
github_com_opticodds_api-go_internal_v3_response.ErrorResponse:
type: object
properties:
error:
type: string
example: Invalid API key
github_com_opticodds_api-go_internal_v3_response.FeaturedParlaysEnvelope:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_parlaygen.FeaturedParlay'
github_com_opticodds_api-go_internal_v3_query.ParlayRequest:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_query.ParlayEntry'
sportsbooks:
type: array
items:
type: string
github_com_opticodds_api-go_internal_v3_response.ParlayOddsEnvelope:
type: object
properties:
data:
type: object
additionalProperties:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ParlayResult'
github_com_opticodds_api-go_internal_v3_response.ParlayLeg:
type: object
properties:
fixture_id:
type: string
example: 20260306E73EBFF1
market:
type: string
example: moneyline
name:
type: string
example: Los Angeles Lakers
price:
type: number
example: -110
securitySchemes:
ApiKeyHeader:
description: API key passed via X-Api-Key header
type: apiKey
name: X-Api-Key
in: header
ApiKeyQuery:
description: API key passed via query parameter
type: apiKey
name: key
in: query