Sportmonks Football API

REST API for soccer/football data covering 2,500+ leagues worldwide. Provides fixtures, livescores, schedules, standings, statistics, predictions, odds, teams, players, coaches, referees, venues, transfers, topscorers, and news. Supports request optimization via filters, includes, and field selection. Pricing tiers gate the number of leagues accessible, with a forever-free plan covering the Danish Superliga and Scottish Premiership.

Sportmonks Football API is one of 4 APIs that Sportmonks publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 4 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Football, Livescores, Odds, Predictions, and Real-Time. The published artifact set on APIs.io includes API documentation, a getting-started guide, authentication docs, an API reference, a changelog, an OpenAPI specification, and 4 Naftiko capability specs.

Documentation

Specifications

Examples

Other Resources

OpenAPI Specification

sportmonks-football-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Sportmonks Football API
  description: |
    REST API providing soccer/football data including livescores, fixtures, schedules,
    standings, teams, players, predictions, and odds across 2,500+ leagues worldwide.

    All endpoints accept the API token either as an `Authorization` header or as an
    `api_token` query parameter. Responses are JSON and support `include`, `filters`,
    and `select` query parameters for response shaping.
  version: '3.0'
  contact:
    name: Sportmonks Support
    email: [email protected]
    url: https://www.sportmonks.com/
  termsOfService: https://www.sportmonks.com/terms-of-service/
  license:
    name: Sportmonks Commercial License
    url: https://www.sportmonks.com/terms-of-service/
servers:
  - url: https://api.sportmonks.com/v3/football
    description: Sportmonks Football API v3 production base URL
security:
  - ApiTokenHeader: []
  - ApiTokenQuery: []
tags:
  - name: Livescores
    description: Real-time score and match-state feeds.
  - name: Fixtures
    description: Scheduled and historical match fixtures.
  - name: Leagues
    description: Competition metadata across countries and seasons.
  - name: Seasons
    description: Season records and per-season fixture lists.
  - name: Standings
    description: League tables and group standings.
  - name: Teams
    description: Team profiles, squads, and metadata.
  - name: Players
    description: Player profiles, attributes, and career data.
  - name: Predictions
    description: Probabilities and predicted outcomes for upcoming fixtures.
  - name: Odds
    description: Pre-match and in-play betting odds.
  - name: Schedules
    description: Round and stage schedules per season.
paths:
  /livescores:
    get:
      operationId: listLivescores
      summary: List Livescores
      description: Returns all currently in-play and recently played fixtures.
      tags:
        - Livescores
      parameters:
        - $ref: '#/components/parameters/Include'
        - $ref: '#/components/parameters/Filters'
        - $ref: '#/components/parameters/Select'
      responses:
        '200':
          description: A list of livescores.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixtureCollection'
  /livescores/inplay:
    get:
      operationId: listInplayLivescores
      summary: List In-Play Livescores
      description: Returns only fixtures currently in progress.
      tags:
        - Livescores
      parameters:
        - $ref: '#/components/parameters/Include'
        - $ref: '#/components/parameters/Filters'
      responses:
        '200':
          description: A list of in-play fixtures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixtureCollection'
  /fixtures:
    get:
      operationId: listFixtures
      summary: List Fixtures
      description: Returns paginated fixtures across leagues and seasons.
      tags:
        - Fixtures
      parameters:
        - $ref: '#/components/parameters/Include'
        - $ref: '#/components/parameters/Filters'
        - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A paginated list of fixtures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixtureCollection'
  /fixtures/{id}:
    get:
      operationId: getFixture
      summary: Get Fixture By ID
      description: Returns a single fixture by its identifier.
      tags:
        - Fixtures
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Include'
      responses:
        '200':
          description: A single fixture.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixtureEnvelope'
  /fixtures/date/{date}:
    get:
      operationId: listFixturesByDate
      summary: List Fixtures By Date
      description: Returns fixtures scheduled on a specific calendar date (YYYY-MM-DD).
      tags:
        - Fixtures
      parameters:
        - name: date
          in: path
          required: true
          schema:
            type: string
            format: date
        - $ref: '#/components/parameters/Include'
      responses:
        '200':
          description: Fixtures on the given date.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixtureCollection'
  /leagues:
    get:
      operationId: listLeagues
      summary: List Leagues
      description: Returns all leagues accessible to the authenticated subscription.
      tags:
        - Leagues
      parameters:
        - $ref: '#/components/parameters/Include'
        - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A list of leagues.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeagueCollection'
  /leagues/{id}:
    get:
      operationId: getLeague
      summary: Get League By ID
      description: Returns a single league by identifier.
      tags:
        - Leagues
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Include'
      responses:
        '200':
          description: A single league.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeagueEnvelope'
  /seasons:
    get:
      operationId: listSeasons
      summary: List Seasons
      description: Returns all season records.
      tags:
        - Seasons
      responses:
        '200':
          description: A list of seasons.
  /standings/seasons/{seasonId}:
    get:
      operationId: getStandingsBySeason
      summary: Get Standings By Season
      description: Returns the league table for a given season.
      tags:
        - Standings
      parameters:
        - name: seasonId
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Include'
      responses:
        '200':
          description: Standings for the season.
  /teams:
    get:
      operationId: listTeams
      summary: List Teams
      description: Returns paginated teams across covered leagues.
      tags:
        - Teams
      parameters:
        - $ref: '#/components/parameters/Include'
        - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A list of teams.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamCollection'
  /teams/{id}:
    get:
      operationId: getTeam
      summary: Get Team By ID
      description: Returns a single team by identifier.
      tags:
        - Teams
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Include'
      responses:
        '200':
          description: A single team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamEnvelope'
  /players:
    get:
      operationId: listPlayers
      summary: List Players
      description: Returns paginated players across covered leagues.
      tags:
        - Players
      parameters:
        - $ref: '#/components/parameters/Include'
        - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A list of players.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerCollection'
  /players/{id}:
    get:
      operationId: getPlayer
      summary: Get Player By ID
      description: Returns a single player profile.
      tags:
        - Players
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/Include'
      responses:
        '200':
          description: A single player.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerEnvelope'
  /predictions/probabilities/fixtures/{fixtureId}:
    get:
      operationId: getPredictionByFixture
      summary: Get Prediction Probabilities For Fixture
      description: Returns outcome probabilities for a fixture.
      tags:
        - Predictions
      parameters:
        - name: fixtureId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Prediction probabilities for the fixture.
  /odds/pre-match/fixtures/{fixtureId}:
    get:
      operationId: getPreMatchOddsByFixture
      summary: Get Pre-Match Odds For Fixture
      description: Returns pre-match bookmaker odds for a fixture.
      tags:
        - Odds
      parameters:
        - name: fixtureId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Pre-match odds.
  /odds/inplay/fixtures/{fixtureId}:
    get:
      operationId: getInplayOddsByFixture
      summary: Get In-Play Odds For Fixture
      description: Returns live in-play bookmaker odds for a fixture.
      tags:
        - Odds
      parameters:
        - name: fixtureId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: In-play odds.
  /schedules/seasons/{seasonId}:
    get:
      operationId: getScheduleBySeason
      summary: Get Schedule By Season
      description: Returns the round-by-round schedule for a season.
      tags:
        - Schedules
      parameters:
        - name: seasonId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Season schedule.
components:
  securitySchemes:
    ApiTokenHeader:
      type: apiKey
      in: header
      name: Authorization
      description: Sportmonks API token passed as the value of the Authorization header.
    ApiTokenQuery:
      type: apiKey
      in: query
      name: api_token
      description: Sportmonks API token passed as the api_token query parameter.
  parameters:
    Include:
      name: include
      in: query
      description: Semicolon-separated list of related entities to embed in the response.
      required: false
      schema:
        type: string
    Filters:
      name: filters
      in: query
      description: Semicolon-separated filter expressions applied to the collection.
      required: false
      schema:
        type: string
    Select:
      name: select
      in: query
      description: Comma-separated list of fields to include in each entity (field selection).
      required: false
      schema:
        type: string
    Page:
      name: page
      in: query
      description: Page number for paginated collection responses.
      required: false
      schema:
        type: integer
        minimum: 1
  schemas:
    Pagination:
      type: object
      properties:
        count:
          type: integer
        per_page:
          type: integer
        current_page:
          type: integer
        next_page:
          type: string
          nullable: true
        has_more:
          type: boolean
    Subscription:
      type: object
      properties:
        meta:
          type: object
        plans:
          type: array
          items:
            type: object
        add_ons:
          type: array
          items:
            type: object
        widgets:
          type: array
          items:
            type: object
    RateLimit:
      type: object
      properties:
        resets_in_seconds:
          type: integer
        remaining:
          type: integer
        requested_entity:
          type: string
    Fixture:
      type: object
      properties:
        id:
          type: integer
        sport_id:
          type: integer
        league_id:
          type: integer
        season_id:
          type: integer
        stage_id:
          type: integer
          nullable: true
        round_id:
          type: integer
          nullable: true
        state_id:
          type: integer
        venue_id:
          type: integer
          nullable: true
        name:
          type: string
        starting_at:
          type: string
          format: date-time
        result_info:
          type: string
          nullable: true
        leg:
          type: string
          nullable: true
        details:
          type: string
          nullable: true
        length:
          type: integer
          nullable: true
        placeholder:
          type: boolean
        has_odds:
          type: boolean
        has_premium_odds:
          type: boolean
        starting_at_timestamp:
          type: integer
    FixtureEnvelope:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Fixture'
        subscription:
          $ref: '#/components/schemas/Subscription'
        rate_limit:
          $ref: '#/components/schemas/RateLimit'
    FixtureCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Fixture'
        pagination:
          $ref: '#/components/schemas/Pagination'
        subscription:
          $ref: '#/components/schemas/Subscription'
        rate_limit:
          $ref: '#/components/schemas/RateLimit'
    League:
      type: object
      properties:
        id:
          type: integer
        sport_id:
          type: integer
        country_id:
          type: integer
        name:
          type: string
        active:
          type: boolean
        short_code:
          type: string
          nullable: true
        image_path:
          type: string
        type:
          type: string
        sub_type:
          type: string
          nullable: true
        last_played_at:
          type: string
          format: date-time
          nullable: true
        category:
          type: integer
          nullable: true
        has_jerseys:
          type: boolean
    LeagueEnvelope:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/League'
    LeagueCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/League'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Team:
      type: object
      properties:
        id:
          type: integer
        sport_id:
          type: integer
        country_id:
          type: integer
        venue_id:
          type: integer
          nullable: true
        gender:
          type: string
        name:
          type: string
        short_code:
          type: string
          nullable: true
        image_path:
          type: string
        founded:
          type: integer
          nullable: true
        type:
          type: string
        placeholder:
          type: boolean
        last_played_at:
          type: string
          format: date-time
          nullable: true
    TeamEnvelope:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Team'
    TeamCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Team'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Player:
      type: object
      properties:
        id:
          type: integer
        sport_id:
          type: integer
        country_id:
          type: integer
          nullable: true
        nationality_id:
          type: integer
          nullable: true
        city_id:
          type: integer
          nullable: true
        position_id:
          type: integer
          nullable: true
        detailed_position_id:
          type: integer
          nullable: true
        type_id:
          type: integer
          nullable: true
        common_name:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        name:
          type: string
        display_name:
          type: string
        image_path:
          type: string
        height:
          type: integer
          nullable: true
        weight:
          type: integer
          nullable: true
        date_of_birth:
          type: string
          format: date
          nullable: true
        gender:
          type: string
    PlayerEnvelope:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Player'
    PlayerCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Player'
        pagination:
          $ref: '#/components/schemas/Pagination'