OpticOdds Results API

Game and player results.

Operations 4

GET /fixtures/player-results Get player results by fixture
GET /fixtures/player-results/last-x Get aggregated player stats over last N games
GET /fixtures/results Get fixture results
GET /fixtures/results/head-to-head Get head-to-head fixture results

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/opticodds-results-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

opticodds-results-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Opticodds Results API
  version: '1.0'
  description: 'Operations tagged results across 2 of this provider''s published API definitions: opticodds-api-v3-openapi.json, opticodds-results-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: results
paths:
  /fixtures/player-results:
    get:
      security:
      - ApiKeyHeader: []
      - ApiKeyQuery: []
      description: Returns player-level results (stats, market stats) grouped by fixture. At least one of fixture_id, player_id, or team_id is required.
      tags:
      - results
      summary: Get player results by fixture
      parameters:
      - description: 'Fixture IDs (max 50). Example: ''202604020E7921D1'''
        name: fixture_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: 'Player IDs (max 50, use GET /players for valid values). Example: ''3C093E0F82BD'''
        name: player_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: 'Team IDs (max 50, use GET /teams for valid values). Example: ''73AEB6743EC2'''
        name: team_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: Filter by player status
        name: status
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixturePlayerResultsEnvelope'
        '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/player-results/last-x:
    get:
      security:
      - ApiKeyHeader: []
      - ApiKeyQuery: []
      description: Returns aggregated player stats across recent fixtures. Provide player_id or team_id.
      tags:
      - results
      summary: Get aggregated player stats over last N games
      parameters:
      - description: 'Player IDs (max 20, use GET /players for valid values). Example: ''3C093E0F82BD'''
        name: player_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: 'Team IDs (max 1, use GET /teams for valid values). Example: ''73AEB6743EC2'''
        name: team_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: Number of recent games (1-30)
        name: lookback_num
        in: query
        schema:
          type: integer
      - description: 'Filter by season year. Example: ''2025-2026'''
        name: season_year
        in: query
        schema:
          type: string
      - description: Earliest date (YYYY-MM-DD or RFC3339)
        name: earliest_date
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.PlayerResultsLastXEnvelope'
        '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/results:
    get:
      security:
      - ApiKeyHeader: []
      - ApiKeyQuery: []
      description: Returns results (scores, stats, events) for completed fixtures. Filter by fixture_id or team_id (not both).
      tags:
      - results
      summary: Get fixture results
      parameters:
      - description: 'Fixture IDs (max 50). Example: ''202604020E7921D1'''
        name: fixture_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: 'Team IDs (max 50, use GET /teams for valid values). Example: ''73AEB6743EC2'''
        name: team_id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - description: Number of recent results to return (1-25, team_id only)
        name: lookback_num
        in: query
        schema:
          type: integer
      - description: Include cancelled fixtures
        name: include_cancelled
        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.FixtureResultsEnvelope'
        '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/results/head-to-head:
    get:
      security:
      - ApiKeyHeader: []
      - ApiKeyQuery: []
      description: Returns past matchup results between two specific teams
      tags:
      - results
      summary: Get head-to-head fixture results
      parameters:
      - description: 'First team ID (use GET /teams for valid values). Example: ''73AEB6743EC2'''
        name: team1_id
        in: query
        required: true
        schema:
          type: string
      - description: 'Second team ID. Example: ''9F1B2C3D4E5F'''
        name: team2_id
        in: query
        required: true
        schema:
          type: string
      - description: Number of recent matchups to return (1-25)
        name: lookback_num
        in: query
        schema:
          type: integer
          default: 5
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixtureResultsEnvelope'
        '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
components:
  schemas:
    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.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.FixtureResultResponse:
      type: object
      properties:
        events: {}
        extra:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixtureResultExtra'
        fixture:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixtureResultDetail'
        in_play:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FullInPlayData'
        last_checked_at:
          type: string
        league:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseLeague'
        market_stats:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.TeamMarketStats'
        retirement_info:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.RetirementInfo'
        scores:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Scores'
        sport:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseSport'
        stats:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.TeamStats'
        sub_scores: {}
    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.TeamMarketStats:
      type: object
      properties:
        away:
          type: object
          additionalProperties: {}
        home:
          type: object
          additionalProperties: {}
    github_com_opticodds_api-go_internal_v3_response.PeriodStats:
      type: object
      properties:
        period:
          type: string
        stats:
          type: object
          additionalProperties: {}
    github_com_opticodds_api-go_internal_v3_response.GameScore:
      type: object
      properties:
        away:
          type: string
        home:
          type: string
    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.PlayerResultLastXEntry:
      type: object
      properties:
        is_starter:
          type: array
          items:
            type: boolean
        league:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseLeague'
        market_stats:
          type: object
          additionalProperties: {}
        player:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BasePlayer'
        sport:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseSport'
        stats:
          type: object
          additionalProperties: {}
        team:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseTeam'
    github_com_opticodds_api-go_internal_v3_response.FixtureResultDetail:
      type: object
      properties:
        away_competitors:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Competitor'
        away_team_display:
          type: string
        game_id:
          type: string
        home_competitors:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Competitor'
        home_team_display:
          type: string
        id:
          type: string
        is_live:
          type: boolean
        numerical_id:
          type: integer
        season_type:
          type: string
        season_week:
          type: string
        season_year:
          type: string
        start_date:
          type: string
        status:
          type: string
        tournament:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.Tournament'
        tournament_stage:
          type: string
        venue_location:
          type: string
        venue_name:
          type: string
        venue_neutral:
          type: boolean
    github_com_opticodds_api-go_internal_v3_response.InPlayPlayer:
      type: object
      properties:
        player_id:
          type: string
        player_name:
          type: string
        team_id:
          type: string
    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.BaseTeam:
      type: object
      properties:
        base_id:
          type: integer
          example: 100
        id:
          type: string
          example: lakers
        name:
          type: string
          example: Los Angeles Lakers
        numerical_id:
          type: integer
          example: 1
    github_com_opticodds_api-go_internal_v3_response.RetirementInfo:
      type: object
      properties:
        walkover:
          type: boolean
        winner:
          type: string
        winner_team_id:
          type: string
    github_com_opticodds_api-go_internal_v3_response.TeamStats:
      type: object
      properties:
        away:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.PeriodStats'
        home:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.PeriodStats'
    github_com_opticodds_api-go_internal_v3_response.FullInPlayData:
      type: object
      properties:
        balls:
          type: integer
        batter:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayPlayer'
        clock:
          type: string
        distance_to_go:
          type: string
        down:
          type: integer
        field_position:
          type: string
        game_score:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.GameScore'
        is_clock_stopped:
          type: boolean
        last_play:
          type: string
        outs:
          type: integer
        period:
          type: string
        period_number:
          type: integer
        pitcher:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayPlayer'
        possession:
          type: string
        runners:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayRunners'
        strikes:
          type: integer
        time_min:
          type: integer
        time_sec:
          type: integer
    github_com_opticodds_api-go_internal_v3_response.PlayerResultsLastXEnvelope:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.PlayerResultLastXEntry'
    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.FixtureResultExtra:
      type: object
      properties:
        attendance:
          type: integer
        capacity:
          type: integer
        decision:
          type: string
        decision_method:
          type: string
        duration:
          type: string
        toss_decision:
          type: string
    github_com_opticodds_api-go_internal_v3_response.BasePlayer:
      type: object
      properties:
        base_id:
          type: integer
          example: 100
        id:
          type: string
          example: lebron-james
        name:
          type: string
          example: LeBron James
        number:
          type: integer
          example: 23
        numerical_id:
          type: integer
          example: 1
        position:
          type: string
          example: SF
    github_com_opticodds_api-go_internal_v3_response.FixturePlayerResultsEnvelope:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixturePlayerResultsResponse'
    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.FixtureResultsEnvelope:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixtureResultResponse'
    github_com_opticodds_api-go_internal_v3_response.PlayerResultEntry:
      type: object
      properties:
        is_starter:
          type: boolean
        market_stats:
          type: object
          additionalProperties: {}
        player:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BasePlayer'
        stats:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.PeriodStats'
        status:
          type: string
        team:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseTeam'
    github_com_opticodds_api-go_internal_v3_response.InPlayRunners:
      type: object
      properties:
        first:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayPlayer'
        second:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayPlayer'
        third:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.InPlayPlayer'
    github_com_opticodds_api-go_internal_v3_response.FixturePlayerResultsResponse:
      type: object
      properties:
        fixture:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.FixtureResultDetail'
        league:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseLeague'
        results:
          type: array
          items:
            $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.PlayerResultEntry'
        sport:
          $ref: '#/components/schemas/github_com_opticodds_api-go_internal_v3_response.BaseSport'
    Collection:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            additionalProperties: true
  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-results-api-openapi.yml