API-Sports · Authentication Profile

Api Sports Authentication

Authentication

Authentication profile for the API-Sports family of sports-data APIs. API-Sports publishes no OpenAPI, so this profile was established by probing the live edge with candidate header names and recording which ones the gateway recognises. Two header names are accepted, corresponding to the provider's two distribution channels (direct subscription and the RapidAPI marketplace); every other credential shape is rejected at the edge before routing.

API-Sports declares 3 security scheme(s) across its OpenAPI definitions.

Sports DataLive ScoresStatisticsFootballBasketballBaseballAmerican FootballIce HockeyFormula 1RugbyVolleyballHandballMMAReal-TimeFixturesStandingsOdds
Methods: Schemes: 3 OAuth flows: API key in:

Security Schemes

x-apisports-key apiKey
· in: header ()
x-rapidapi-key apiKey
· in: header ()
x-rapidapi-key apiKey
· in: header ()

Source

Authentication Profile

api-sports-authentication.yml Raw ↑
generated: '2026-09-02'
method: probed
source: >-
  Live unauthenticated header probes against https://v3.football.api-sports.io/status
  on 2026-09-02, cross-read against https://www.api-football.com/documentation-v3
  (the URL the API's own error body names).
specification: API Evangelist Authentication Profile
specificationVersion: '0.1'
provider: API-Sports
providerId: api-sports
description: >-
  Authentication profile for the API-Sports family of sports-data APIs. API-Sports
  publishes no OpenAPI, so this profile was established by probing the live edge with
  candidate header names and recording which ones the gateway recognises. Two header
  names are accepted, corresponding to the provider's two distribution channels
  (direct subscription and the RapidAPI marketplace); every other credential shape is
  rejected at the edge before routing.
model: api-key
oauth2: false
openid_connect: false
mutual_tls: false
schemes:
  - id: apisports-key
    type: apiKey
    in: header
    name: x-apisports-key
    channel: direct
    description: >-
      API key issued from the API-Sports dashboard (dashboard.api-football.com) and
      used when calling the sport hosts directly, e.g. v3.football.api-sports.io.
      One key works across every sport API the account is subscribed to.
    verified: probed
    evidence:
      url: https://v3.football.api-sports.io/status
      request_header: 'x-apisports-key: <placeholder>'
      http_status: 200
      body_excerpt: >-
        {"get":"status","parameters":[],"errors":{"token":"Error/Missing application
        key. Go to https://www.api-football.com/documentation-v3 to learn how to get
        your API application key."},"results":0,...}
      reading: >-
        The header name is recognised — the request passes the edge (HTTP 200) and is
        rejected by the application's own token check, which names the documentation
        page.
  - id: rapidapi-key
    type: apiKey
    in: header
    name: x-rapidapi-key
    channel: marketplace
    description: >-
      RapidAPI marketplace key, used with the companion x-rapidapi-host header when
      calling through api-football-v1.p.rapidapi.com and the sibling RapidAPI hosts.
      Billing and quota are managed by RapidAPI rather than by API-Sports.
    companion_header: x-rapidapi-host
    verified: probed
    evidence:
      url: https://v3.football.api-sports.io/status
      request_header: 'x-rapidapi-key: <placeholder>'
      http_status: 200
      reading: >-
        Also recognised at the direct host — the edge accepts either key header name
        and defers to the application token check.
  - id: rapidapi-gateway
    type: apiKey
    in: header
    name: x-rapidapi-key
    channel: marketplace
    host: api-football-v1.p.rapidapi.com
    verified: probed
    evidence:
      url: https://api-football-v1.p.rapidapi.com/v3/status
      http_status: 401
      body: '{"message":"Invalid API key. Go to https://docs.rapidapi.com/docs/keys for more info."}'
      reading: >-
        The marketplace gateway returns a conventional HTTP 401 with its own error
        envelope — a different failure shape from the direct hosts.
rejected_schemes:
  - name: X-API-Key
    http_status: 403
    note: Not recognised. Edge returns the 4xHe token error before routing.
  - name: 'Authorization: Bearer'
    http_status: 403
    note: >-
      Not recognised. API-Sports has no bearer-token, OAuth 2.0 or OpenID Connect
      surface; /.well-known/openid-configuration and
      /.well-known/oauth-authorization-server both 404 on api-sports.io.
findings:
  - id: two-layer-auth-failure
    summary: >-
      Authentication failure has two distinct shapes and an agent must handle both.
      An unknown or absent credential header fails at the Cloudflare edge with HTTP
      403 and error code "4xHe"; a recognised header carrying a bad key fails at the
      application with HTTP 200 and the failure described only inside
      errors.token. A client that branches on HTTP status alone will read the second
      case as success.
  - id: auth-precedes-routing
    summary: >-
      The edge checks credentials before it resolves the route. A request to a
      nonexistent path with a recognised key header returns the same 200 + token
      error as a real path, and the response echoes the requested path back in the
      "get" field verbatim. Unauthenticated route discovery is therefore impossible,
      and the "get" echo must not be read as confirmation that an endpoint exists.
      (Control probe: /bogusendpoint returned get="bogusendpoint".)
  - id: no-scopes
    summary: >-
      There is no scope, permission or role surface. Access is all-or-nothing per key
      and is bounded by the subscription plan, not by grants — so no scopes/ artifact
      is applicable to this provider.
docs: https://www.api-football.com/documentation-v3
maintainers:
  - FN: Kin Lane
    email: info@apievangelist.com

Work with this as data

Every security artifact 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 security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • 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 security artifact
curl "https://apis.io/api/v1/security/api-sports-authentication"
All security posture
curl "https://apis.io/api/v1/security?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.