Getting started

This page will walk you through everything you need to know to get up and running with the API

1. How the data is structured

Before making your first request, it's worth understanding how PandaScore organises esports data. Everything flows from the top down:

League → Series → Tournament → Match → Game

  • A League is the top-level competition (e.g. ESL Pro League).
  • A Series is a single time-bound occurrence of that league (e.g. ESL Pro League Season 21).
  • A Tournament is a stage within that series (e.g. Group Stage, Playoffs).
  • A Match is a head-to-head between two teams within a tournament.
  • A Game is a single map or game within that match (e.g. Map 1 of a best-of-3).

📖 Full breakdown: Fundamentals


2. Authentication

All API requests require your token, passed as a query parameter:

https://api.pandascore.co/matches/upcoming?token=YOUR_TOKEN

You can find your token in your PandaScore dashboard.

📖 Full details: Authentication | Rate & connection limits


3. Key concepts to know before you build

These three topics come up in almost every integration. Read them before you start polling:

Match lifecycle & the complete field

Matches move through several statuses (not_startedrunningfinished). For matches with detailed statistics, there's an additional field you need to know about: complete.

  • complete = false after a game finishes means post-game statistics are still being processed. Do not consume stats yet.
  • complete = true means statistics are finalised and ready to use.

📖 Match lifecycle | Match formats


Coverage levels: detailed_stats and live_supported

Not every tournament has the same level of coverage. Two fields tell you exactly what to expect:

FieldValueWhat it means
detailed_statsfalseFixtures and results only — no post-game statistics
detailed_statstrueFull post-game statistics will be available
live_supportedtrueIn-game live data is available for this tournament's matches

Use these as filters to fetch tournaments relevant to your use case. For example, to get only live-supported upcoming tournaments:

GET /tournaments/upcoming?filter[live_supported]=true

Or to only get matches that will have statistics:

GET /matches/upcoming?filter[detailed_stats]=true

📖 Filtering and sorting | Tournaments in-depth


Pagination

API responses are paginated by default (50 results per page). Use page and per_page parameters to navigate:

GET /matches/upcoming?page=2&per_page=100

per_page maximum is 100.

📖 Pagination


4. Fixtures & schedule endpoints

These endpoints are available on all plans and form the backbone of any integration.

Matches

What you needEndpoint
Upcoming matchesGET /matches/upcoming
Live / running matchesGET /matches/running
Past matchesGET /matches/past
A specific matchGET /matches/{id}
Match opponentsGET /matches/{id}/opponents

📖 API Reference — Matches


Tournaments, leagues & series

What you needEndpoint
Upcoming tournamentsGET /tournaments/upcoming
Tournament standingsGET /tournaments/{id}/standings
Tournament bracketsGET /tournaments/{id}/brackets
Tournament rostersGET /tournaments/{id}/rosters
Matches in a tournamentGET /tournaments/{id}/matches
List all leaguesGET /leagues
Matches in a leagueGET /leagues/{id}/matches
List all seriesGET /series

📖 API Reference — Tournaments


Players & teams

What you needEndpoint
A specific playerGET /players/{id}
A specific teamGET /teams/{id}
A player's match historyGET /players/{id}/matches
A player's tournament historyGET /players/{id}/tournaments
A team's match historyGET /teams/{id}/matches
A team's series historyGET /teams/{id}/series
💡

Tip: To trace a player's team history across their career, use GET /players/{id}/tournaments — this returns the team they played for in each tournament, which is the most reliable way to track roster changes.

📖 API Reference — Players | Teams


Currently live matches (WebSocket)

What you needEndpoint
All currently open live WebSocket streamsGET /lives

This endpoint lists all matches currently streaming live data, including the WebSocket URLs for frames and events. WebSocket connections open 15 minutes before the scheduled match start time.

📖 API Reference — Lives | WebSockets overview


5. Keeping your data in sync

If you're building a database or pipeline, you don't need to re-poll every endpoint to catch updates. The incidents feed gives you a stream of all changes, additions, and deletions across the API — think of it like a changelog you can poll regularly.

What you needEndpoint
All recent changes, additions & deletionsGET /incidents
Only new additionsGET /additions
Only updated objectsGET /changes
Only deleted objectsGET /deletions

This covers everything: match reschedules, roster changes, score corrections, tournament updates. Available on all plans.

📖 API Reference — Incidents | Tracking changes


6. CS2 endpoint naming

One thing that trips up almost every CS2 integration: all CS2 endpoints use the /csgo/ prefix, not /cs2/. This is for legacy reasons and applies across the board:

GET /csgo/matches/upcoming
GET /csgo/games/{id}
GET /csgo/players/{id}/stats

📖 Counter-Strike 2 migration guide


7. Testing with the Sandbox

If you're on the Pro Live plan, you don't need to wait for a live match to test your WebSocket integration. The sandbox lets you replay a CS or LoL game on demand at adjustable speeds.

Start a LoL replay:

POST https://live.pandascore.co/api/lol/replay

Start a CS replay:

POST https://live.pandascore.co/api/csgo/replay

Both return WebSocket URLs for frames and events. You can control playback_speed (1×, 1.5×, 2×) and set a starting point in-game (ingame_timestamp for LoL, round_number for CS).

📖 Sandbox environment


8. Frequently asked questions

Browse common integration questions, including:

  • When will post-game stats be available after a match?
  • What is a game advantage?
  • Why am I getting a CORS error?
  • How do I find player team history?

📖 FAQ


10. Get support

The fastest way to get help is to join our Slack community. Once you're in, we'll set up a private channel for you and your team — it's the best place to ask API questions, flag data issues, and give feedback.

👉 Join the PandaScore Slack


What's next?

Head to the Game Data Reference to see exactly which endpoints are available on your plan for Counter-Strike, League of Legends, Dota 2, and Valorant.