SportStatsAPI Motorsport API

The motorsport API from SportStatsAPI — 6 operation(s) for motorsport.

GitHub OpenAPI

Operations 6

GET /motorsport/events List motorsport events #
GET /motorsport/events/{id} Get a motorsport event #
GET /motorsport/live Get motorsport sessions on track #
GET /motorsport/series List motorsport series #
GET /motorsport/sessions/{id}/results Get a motorsport session's results #
GET /motorsport/standings Get motorsport standings #

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/sportstatsapi:sportstatsapi-motorsport-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

sportstatsapi-motorsport-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: SportStatsAPI
    url: https://sportstatsapi.com
  description: 'Every public endpoint of SportStatsAPI. Endpoints marked with x-x402 can also be paid per call by an AI agent; the curated list of those is https://api.sportstatsapi.com/api/openapi.agents.json.


    Authentication: an API key (header X-API-Key, or Authorization: Bearer ), or without a key an x402 payment (header PAYMENT-SIGNATURE, USDC on Base). Prices and payment offers: https://api.sportstatsapi.com/.well-known/x402. Docs for AI models: https://api.sportstatsapi.com/llms.txt. MCP server: https://mcp.sportstatsapi.com/mcp.'
  summary: Sports data API and x402 pay-per-call endpoints
  title: SportStats Motorsport API
  version: '1.0'
servers:
- url: https://api.sportstatsapi.com/api/v1
tags:
- name: motorsport
paths:
  /motorsport/events:
    get:
      description: Race weekends by start date, with the race winner once known
      operationId: getMotorsportEvents
      parameters:
      - description: Series key (see /motorsport/series)
        in: query
        name: series
        schema:
          type: string
      - description: Season (year)
        in: query
        name: season
        schema:
          type: integer
      - description: scheduled, live, finished or cancelled
        in: query
        name: status
        schema:
          type: string
      - description: Events ending on or after this date (YYYY-MM-DD)
        in: query
        name: date_from
        schema:
          type: string
      - description: Events starting on or before this date (YYYY-MM-DD)
        in: query
        name: date_to
        schema:
          type: string
      - description: Maximum results (1-100)
        in: query
        name: limit
        schema:
          default: 50
          type: integer
      - description: Results to skip
        in: query
        name: offset
        schema:
          default: 0
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      items:
                        $ref: '#/components/schemas/dto.MotorsportEventResponse'
                      type: array
                    meta:
                      $ref: '#/components/schemas/middleware.MetaInfo'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: List motorsport events
      tags:
      - motorsport
  /motorsport/events/{id}:
    get:
      description: A race weekend with its sessions (practice, qualifying, sprint, race) in start order; results per session at /motorsport/sessions/{id}/results
      operationId: getMotorsportEventsById
      parameters:
      - description: Event ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      $ref: '#/components/schemas/dto.MotorsportEventResponse'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Not Found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Get a motorsport event
      tags:
      - motorsport
  /motorsport/live:
    get:
      description: Sessions started in the last 3 hours and not finished, with their event and the running classification
      operationId: getMotorsportLive
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      items:
                        $ref: '#/components/schemas/dto.MotorsportSessionOutput'
                      type: array
                  type: object
          description: OK
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Get motorsport sessions on track
      tags:
      - motorsport
  /motorsport/series:
    get:
      description: The series (f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity, nascar-trucks) with their latest stored season, next and last event. A series without a season has no current data from the feed.
      operationId: getMotorsportSeries
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      items:
                        $ref: '#/components/schemas/dto.MotorsportSeriesResponse'
                      type: array
                  type: object
          description: OK
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: List motorsport series
      tags:
      - motorsport
  /motorsport/sessions/{id}/results:
    get:
      description: 'The classification: position, driver, team, time or gap, laps, grid, pit stops, status (DNF, DNS, DSQ, NC). Empty until the feed has it.'
      operationId: getMotorsportSessionsByIdResults
      parameters:
      - description: Session ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      $ref: '#/components/schemas/dto.MotorsportSessionOutput'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Not Found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Get a motorsport session's results
      tags:
      - motorsport
  /motorsport/standings:
    get:
      description: A series' drivers or teams table. Stored only when the feed's table is of the current season (it lists this season's podium finishers).
      operationId: getMotorsportStandings
      parameters:
      - description: Series key
        in: query
        name: series
        required: true
        schema:
          type: string
      - description: drivers (default) or teams
        in: query
        name: kind
        schema:
          type: string
      - description: 'Season (default: the latest stored)'
        in: query
        name: season
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      $ref: '#/components/schemas/dto.MotorsportStandingsResponse'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Get motorsport standings
      tags:
      - motorsport
components:
  schemas:
    middleware.ErrorInfo:
      properties:
        code:
          type: string
        message:
          type: string
      type: object
    dto.MotorsportStandingsResponse:
      properties:
        kind:
          description: drivers or teams
          type: string
        rows:
          items:
            $ref: '#/components/schemas/dto.MotorsportStandingRow'
          type: array
        season:
          type: integer
        series:
          type: string
      type: object
    middleware.Response:
      properties:
        data: {}
        error:
          $ref: '#/components/schemas/middleware.ErrorInfo'
        meta:
          $ref: '#/components/schemas/middleware.MetaInfo'
        success:
          type: boolean
      type: object
    dto.MotorsportStandingRow:
      properties:
        country:
          type: string
        id:
          description: driver or team id
          type: integer
        name:
          type: string
        points:
          type: number
        position:
          type: integer
        team:
          type: string
        team_id:
          type: integer
      type: object
    database.MotorsportResult:
      properties:
        country:
          description: 'as the feed writes it: NED, Esp, Brazil'
          type: string
        driver:
          type: string
        driver_id:
          type: integer
        grid:
          type: integer
        laps:
          type: integer
        pit_stops:
          type: integer
        position:
          type: integer
        status:
          type: string
        team:
          type: string
        team_id:
          type: integer
        time:
          description: winner's time, gap ("+1.363", "1 Lap") or best lap
          type: string
      type: object
    middleware.MetaInfo:
      properties:
        attribution:
          description: Attribution a data source's licence asks for (Cricsheet's history).
          type: string
        has_more:
          description: 'HasMore: the cursor-paged list has more rows now (ask again at once).'
          type: boolean
        limit:
          type: integer
        live:
          description: 'Live: the answer is the live feed''s, kept while the match is played

            (cricket ball by ball before Cricsheet''s file replaces it).'
          type: boolean
        next_cursor:
          description: NextCursor continues a cursor-paged list (GET /changes).
          type: string
        offset:
          type: integer
        sources:
          description: 'Sources: where the answer''s data came from, with each source''s licence

            and the attribution it asks for (docs/source-licences.md).'
          items:
            $ref: '#/components/schemas/middleware.SourceInfo'
          type: array
        total:
          type: integer
        warnings:
          description: 'Warnings: query parameters ignored or changed (a limit above the

            maximum is clamped to it; a from/to that is not a date is ignored).'
          items:
            type: string
          type: array
      type: object
    dto.MotorsportSessionOutput:
      properties:
        distance:
          description: km
          type: string
        event_id:
          type: integer
        fastest_lap:
          type: string
        has_results:
          type: boolean
        id:
          type: integer
        kind:
          type: string
        name:
          type: string
        results:
          items:
            $ref: '#/components/schemas/database.MotorsportResult'
          type: array
        start:
          description: UTC
          type: string
        status:
          type: string
        total_laps:
          type: integer
        updated_at:
          type: string
      type: object
    dto.MotorsportSeriesResponse:
      properties:
        events:
          description: in that season
          type: integer
        has_standings:
          type: boolean
        key:
          description: series= in the other endpoints
          type: string
        last_event:
          $ref: '#/components/schemas/dto.MotorsportEventResponse'
        name:
          type: string
        next_event:
          $ref: '#/components/schemas/dto.MotorsportEventResponse'
        season:
          type: integer
      type: object
    middleware.SourceInfo:
      properties:
        attribution:
          description: show it with the data
          example: 'Data: nflverse (CC-BY 4.0)'
          type: string
        licence:
          description: the licence or terms the data is served under
          example: CC-BY-4.0
          type: string
        name:
          description: provider = our main licensed feed
          example: nflverse
          type: string
      type: object
    dto.MotorsportEventResponse:
      properties:
        circuit:
          type: string
        country:
          type: string
        end_date:
          type: string
        id:
          type: integer
        name:
          type: string
        round:
          type: integer
        season:
          type: integer
        series:
          type: string
        sessions:
          items:
            $ref: '#/components/schemas/dto.MotorsportSessionOutput'
          type: array
        start_date:
          type: string
        status:
          type: string
        winner:
          allOf:
          - $ref: '#/components/schemas/database.MotorsportResult'
          description: the race winner, once the race has results
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: API key
      in: header
      name: X-API-Key
      type: apiKey
    BearerAuth:
      description: The same API key as a bearer token
      scheme: bearer
      type: http
    x402:
      description: x402 v2 payment (USDC on Base, eip155:8453) built from the offers of a 402 answer; see https://api.sportstatsapi.com/.well-known/x402
      in: header
      name: PAYMENT-SIGNATURE
      type: apiKey
externalDocs:
  description: x402 payment offers and prices
  url: https://api.sportstatsapi.com/.well-known/x402