Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/opticodds-fixtures-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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 Specification
openapi: 3.2.0
info:
title: Opticodds Fixtures API
version: '1.0'
description: 'Operations tagged fixtures across 2 of this provider''s published API definitions: opticodds-api-v3-openapi.json, opticodds-fixtures-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.opticodds.com/v3
- url: https://api.opticodds.com/api/v3
description: OpticOdds API v3 base
tags:
- name: fixtures
paths:
/fixtures:
get:
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
description: Returns fixtures filtered by sport, league, team, or ID. Defaults to last 3 days if no date, season, or ID filters are provided. Returns only active fixtures unless filtered by specific IDs.
tags:
- fixtures
summary: List fixtures
parameters:
- description: 'Sport IDs (use GET /sports for valid values). Example: ''basketball'''
name: sport
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: 'League IDs (use GET /leagues for valid values). Example: ''nba'''
name: league
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: 'Fixture IDs. Example: ''202604020E7921D1'''
name: id
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Filter by numerical IDs
name: numerical_id
in: query
style: form
explode: false
schema:
type: array
items:
type: integer
- description: 'Team IDs (use GET /teams for valid values). Example: ''73AEB6743EC2'''
name: team_id
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: 'Tournament ID (use GET /tournaments for valid values). Example: ''pga-masters-2025'''
name: tournament_id
in: query
schema:
type: string
- description: 'Filter by status. Valid values: unplayed, live, half, completed, cancelled, suspended, delayed, forfeited, invalid'
name: status
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Filter by live status
name: is_live
in: query
schema:
type: boolean
- description: Filter by start date (YYYY-MM-DD or RFC3339)
name: start_date
in: query
schema:
type: string
- description: Filter fixtures starting before date
name: start_date_before
in: query
schema:
type: string
- description: Filter fixtures starting after date
name: start_date_after
in: query
schema:
type: string
- description: Filter by season year
name: season_year
in: query
schema:
type: string
- description: Filter by season week
name: season_week
in: query
schema:
type: string
- description: Filter by season type
name: season_type
in: query
schema:
type: string
- description: Filter by divisions
name: division
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Filter by conferences
name: conference
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Page number
name: page
in: query
schema:
type: integer
default: 1
- description: Include statsperform IDs
name: include_statsperform_id
in: query
schema:
type: boolean
- description: Include starting lineups
name: include_starting_lineups
in: query
schema:
type: boolean
- description: 'Sportsbook ID (use GET /sportsbooks for valid values). Example: ''draftkings'''
name: sportsbook
in: query
schema:
type: string
- description: Return only fixtures updated after this timestamp (RFC3339). Skips default 3-day date filter.
name: updated_since
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixturesEnvelope'
'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'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
servers:
- url: https://api.opticodds.com/v3
/fixtures/active:
get:
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
description: Returns fixtures that currently have odds and are not completed, cancelled, or invalid. Defaults to last 3 days if no date, season, or ID filters are provided.
tags:
- fixtures
summary: List active fixtures
parameters:
- description: 'Sport IDs (use GET /sports for valid values). Example: ''basketball'''
name: sport
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: 'League IDs (use GET /leagues for valid values). Example: ''nba'''
name: league
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: 'Fixture IDs. Example: ''202604020E7921D1'''
name: id
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Filter by numerical IDs
name: numerical_id
in: query
style: form
explode: false
schema:
type: array
items:
type: integer
- description: 'Team IDs (use GET /teams for valid values). Example: ''73AEB6743EC2'''
name: team_id
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: 'Tournament ID (use GET /tournaments for valid values). Example: ''pga-masters-2025'''
name: tournament_id
in: query
schema:
type: string
- description: 'Filter by status. Valid values: unplayed, live, half, completed, cancelled, suspended, delayed, forfeited, invalid'
name: status
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Filter by live status
name: is_live
in: query
schema:
type: boolean
- description: Filter by start date (YYYY-MM-DD or RFC3339)
name: start_date
in: query
schema:
type: string
- description: Filter fixtures starting before date
name: start_date_before
in: query
schema:
type: string
- description: Filter fixtures starting after date
name: start_date_after
in: query
schema:
type: string
- description: Filter by season year
name: season_year
in: query
schema:
type: string
- description: Filter by season week
name: season_week
in: query
schema:
type: string
- description: Filter by season type
name: season_type
in: query
schema:
type: string
- description: Filter by divisions
name: division
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Filter by conferences
name: conference
in: query
style: form
explode: false
schema:
type: array
items:
type: string
- description: Page number
name: page
in: query
schema:
type: integer
default: 1
- description: Include statsperform IDs
name: include_statsperform_id
in: query
schema:
type: boolean
- description: Include starting lineups
name: include_starting_lineups
in: query
schema:
type: boolean
- description: 'Sportsbook ID (use GET /sportsbooks for valid values). Example: ''draftkings'''
name: sportsbook
in: query
schema:
type: string
- description: Return only fixtures updated after this timestamp (RFC3339). Skips default 3-day date filter.
name: updated_since
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixturesEnvelope'
'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'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.ErrorResponse'
servers:
- url: https://api.opticodds.com/v3
/fixtures/odds:
get:
tags:
- fixtures
summary: Get odds for fixtures
operationId: getFixtureOdds
parameters:
- name: fixture_id
in: query
required: false
schema:
type: array
items:
type: string
responses:
'200':
description: Odds payload.
content:
application/json:
schema:
$ref: '#/components/schemas/Collection'
security:
- apiKeyHeader: []
- apiKeyQuery: []
servers:
- url: https://api.opticodds.com/api/v3
description: OpticOdds API v3 base
/fixtures/odds/historical:
get:
tags:
- fixtures
summary: Historical odds for fixtures
operationId: getHistoricalFixtureOdds
responses:
'200':
description: Historical odds.
content:
application/json:
schema:
$ref: '#/components/schemas/Collection'
security:
- apiKeyHeader: []
- apiKeyQuery: []
servers:
- url: https://api.opticodds.com/api/v3
description: OpticOdds API v3 base
components:
schemas:
github_com_opticodds_api-go_internal_v3_response.BaseResult:
type: object
properties:
in_play_data:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayData'
scores:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Scores'
github_com_opticodds_api-go_internal_v3_response.FixtureExtra:
type: object
properties:
detailed_stats:
type: boolean
example: true
level:
type: string
example: professional
num_periods:
type: integer
example: 4
sub_league:
type: string
example: Eastern Conference
github_com_opticodds_api-go_internal_v3_response.Tournament:
type: object
properties:
end_date:
type: string
example: '2025-06-20T00:00:00Z'
id:
type: string
example: nba-playoffs-2025
name:
type: string
example: NBA Playoffs 2025
numerical_id:
type: integer
example: 50
start_date:
type: string
example: '2025-04-15T00:00:00Z'
github_com_opticodds_api-go_internal_v3_response.Scores:
type: object
properties:
away:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Score'
home:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Score'
github_com_opticodds_api-go_internal_v3_response.LineupPlayer:
type: object
properties:
is_substitute:
type: boolean
player_batting_throwing:
type: string
player_id:
type: string
player_name:
type: string
player_position:
type: string
player_team:
type: string
github_com_opticodds_api-go_internal_v3_response.InPlayData:
type: object
properties:
clock:
type: string
example: '5:30'
last_play:
type: string
period:
type: string
example: Q3
period_number:
type: integer
example: 3
github_com_opticodds_api-go_internal_v3_response.BaseLeague:
type: object
properties:
id:
type: string
example: nba
name:
type: string
example: NBA
numerical_id:
type: integer
example: 3
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.FixturesEnvelope:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Fixture'
github_com_opticodds_api-go_internal_v3_response.Competitor:
type: object
properties:
abbreviation:
type: string
example: LAL
base_id:
type: integer
example: 100
id:
type: string
example: lakers
logo:
type: string
example: https://cdn.opticodds.com/logos/lakers.png
name:
type: string
example: Los Angeles Lakers
numerical_id:
type: integer
example: 1
github_com_opticodds_api-go_internal_v3_response.Fixture:
type: object
properties:
away_competitors:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Competitor'
away_record:
type: string
example: 28-12
away_rotation_number:
type: integer
example: 502
away_seed:
type: string
example: '2'
away_starter:
type: string
example: Jayson Tatum
away_starter_id:
type: string
example: jayson-tatum
away_team_display:
type: string
example: Boston Celtics
broadcast:
type: string
example: ESPN
extra:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixtureExtra'
game_id:
type: string
example: game_001
has_odds:
type: boolean
example: true
home_competitors:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Competitor'
home_record:
type: string
example: 30-10
home_rotation_number:
type: integer
example: 501
home_seed:
type: string
example: '1'
home_starter:
type: string
example: LeBron James
home_starter_id:
type: string
example: lebron-james
home_team_display:
type: string
example: Los Angeles Lakers
id:
type: string
example: nba-lakers-celtics-2025-01-15
is_live:
type: boolean
example: false
league:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseLeague'
lineups:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Lineups'
numerical_id:
type: integer
example: 12345
result:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseResult'
season_type:
type: string
example: regular
season_week:
type: string
example: '15'
season_year:
type: string
example: 2024-2025
source_ids:
type: object
additionalProperties:
type: string
sport:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseSport'
start_date:
type: string
example: '2025-01-15T19:30:00Z'
status:
type: string
example: Unplayed
tournament:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Tournament'
tournament_stage:
type: string
example: Finals
updated_at:
type: string
example: '2025-04-28T12:00:00Z'
venue_location:
type: string
example: Los Angeles, CA
venue_name:
type: string
example: Crypto.com Arena
venue_neutral:
type: boolean
example: false
weather: {}
weather_temp: {}
github_com_opticodds_api-go_internal_v3_response.BaseSport:
type: object
properties:
id:
type: string
example: basketball
name:
type: string
example: Basketball
numerical_id:
type: integer
example: 2
github_com_opticodds_api-go_internal_v3_response.Score:
type: object
properties:
aggregate:
type: number
periods:
type: object
additionalProperties:
type: number
format: float64
total:
type: number
example: 110
github_com_opticodds_api-go_internal_v3_response.Lineups:
type: object
properties:
away:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.LineupPlayer'
home:
type: array
items:
$ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.LineupPlayer'
Collection:
type: object
properties:
data:
type: array
items:
type: object
additionalProperties: true
parameters:
LeagueParam:
name: league
in: query
required: false
schema:
type: string
description: League slug (e.g. `nba`).
SportParam:
name: sport
in: query
required: false
schema:
type: string
description: Sport slug (e.g. `basketball`).
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
apiKeyHeader:
type: apiKey
in: header
name: X-Api-Key
description: OpticOdds API key supplied in the X-Api-Key header.
apiKeyQuery:
type: apiKey
in: query
name: key
description: OpticOdds API key supplied via the `key` query parameter.
externalDocs:
description: OpticOdds API Reference
url: https://developer.opticodds.com
x-refined-from:
- opticodds-api-v3-openapi.json
- opticodds-fixtures-api-openapi.yml