Skip to main content

V3 API

The V3 API provides real-time and historical sports data across 34 sports with rich match data including scores, statistics, lineups, head-to-head records, commentary, odds, and search.

Key Features

  • 34 sports — the widest coverage of any SportsAPI Pro version
  • REST-only — no WebSocket, optimized for polling with aggressive caching (15s for live data)
  • Full image URLs — team and league logos are returned as ready-to-use https://images.sportsapipro.com/... URLs, no image proxy needed
  • String-based event IDs — all entity IDs are alphanumeric strings (e.g., l2TocbiL)
  • League-grouped responses — scores are organized by league, not a flat event list

Base URL Pattern

https://v3.{sport}.sportsapipro.com
Examples:
  • https://v3.football.sportsapipro.com
  • https://v3.tennis.sportsapipro.com
  • https://v3.basketball.sportsapipro.com

Authentication

All endpoints require your API key:
curl -H "x-api-key: YOUR_API_KEY" \
  https://v3.football.sportsapipro.com/api/v1/football/live

Quick Start

const response = await fetch('https://v3.football.sportsapipro.com/api/v1/football/live', {
  headers: { 'x-api-key': 'YOUR_API_KEY' }
});
const data = await response.json();

// Response is grouped by league
data.leagues.forEach(({ league, events }) => {
  console.log(`--- ${league.name} ---`);
  events.forEach(e => {
    console.log(`${e.homeTeam.name} ${e.homeScore.current} - ${e.awayScore.current} ${e.awayTeam.name} [${e.status}]`);
  });
});

Real Response Example

{
  "sport": { "slug": "football", "id": 1, "name": "Football" },
  "period": "live",
  "totalEvents": 1731,
  "totalLeagues": 425,
  "leagues": [
    {
      "league": {
        "name": "AFRICA: CAF Champions League - Play Offs",
        "country": "Africa",
        "countryId": 1,
        "leagueId": "hdkWXHOq",
        "tournamentId": "EcZwBi3N",
        "uniqueKey": "1_EcZwBi3N",
        "url": "/football/africa/caf-champions-league/",
        "logo": "https://images.sportsapipro.com/res/image/data/lr30qziD-4UJSFAUL.png",
        "hasStandings": false
      },
      "events": [
        {
          "id": "l2TocbiL",
          "startTime": "2026-04-11T19:00:00.000Z",
          "startTimestamp": 1775934000,
          "statusCode": 3,
          "status": "finished",
          "round": null,
          "homeTeam": {
            "name": "FAR Rabat",
            "shortName": "FAR Rabat",
            "abbr": "RAB",
            "id": "40M26nnB",
            "participantId": "CMn7Clai",
            "slug": "far-rabat",
            "image": "https://images.sportsapipro.com/res/image/data/Mm90dOkC-EyoH1qCf.png",
            "redCards": 0
          },
          "awayTeam": {
            "name": "Berkane",
            "shortName": "Berkane",
            "abbr": "BER",
            "id": "CQPA4QGN",
            "participantId": "Me4oCiMn",
            "slug": "berkane",
            "image": "https://images.sportsapipro.com/res/image/data/0zS1aRRq-xExOnmQQ.png",
            "redCards": 0
          },
          "homeScore": { "current": 2, "halfTime": 1, "period1": 1, "period2": 2 },
          "awayScore": { "current": 0, "halfTime": 2, "period1": 0, "period2": 0 },
          "currentPeriod": 1,
          "lastUpdate": 1775940975
        }
      ]
    }
  ]
}
V3 responses return league-grouped data, unlike V2 which returns a flat event array. Each league group contains a league object and an events array.

V3 vs V1 vs V2

FeatureV1V2V3
Sports92534
WebSocket
Live cache TTL5s1s15s
Event IDsNumericNumericString
Response formatFlat games arrayFlat events arrayLeague-grouped
Image URLsCDN patternProxy endpointFull URLs in response
Best forReal-time scoresDeep stats & analyticsWidest coverage

Event Status Codes

CodeStatus
1not_started
2live
3finished
4cancelled

Caching Behavior

EndpointCache TTL
Live scores15 seconds
Today/tomorrow/yesterday60 seconds
Match summary/statistics30 seconds
Match lineups120 seconds
Match H2H/standings300 seconds
Match commentary15 seconds
Team transfers/news300 seconds
SearchNo cache
Last modified on April 12, 2026