FlashScore APIflashscore.com ↗
Access FlashScore data via API: live scores, fixtures, match stats, lineups, odds, standings, and player results across football, tennis, basketball, and more.
What is the FlashScore API?
The FlashScore API exposes 17 endpoints covering live scores, daily fixtures, match statistics, lineups, betting odds, league standings, and player results across football, tennis, basketball, hockey, table tennis, esports, and dozens of other sports. get_match_full_report alone combines match detail, timeline events, period-level statistics, lineups, head-to-head history, form splits, standings, and 1X2 odds into a single response, reducing round-trips for match-page builds.
curl -X POST 'https://api.parse.bot/scraper/e4c11d5d-7c48-4a9d-9141-7abf0692ddcd/search' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "Barcelona",
"sport": "football"
}'Full-text search across teams, players, and tournaments for any sport on FlashScore. Returns matching entities with IDs usable in other endpoints. Minimum 2-character query. Results include entity type, sport, gender, and country. An optional sport filter narrows by sport.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search query (minimum 2 characters). Can be team name, player name, or tournament name. |
| sport | string | Filter results by sport. Omitting returns results across all sports. |
{
"type": "object",
"fields": {
"query": "string — the search query submitted",
"total": "integer — number of matching results",
"results": "array of search result objects with id, name, url_slug, type, sport, sport_id, gender, country, country_id"
},
"sample": {
"data": {
"query": "Barcelona",
"total": 15,
"results": [
{
"id": "SKbpVP5K",
"name": "Barcelona",
"type": "Team",
"sport": "Soccer",
"gender": "Men",
"country": "Spain",
"sport_id": 1,
"url_slug": "barcelona",
"country_id": 176
}
]
},
"status": "success"
}
}About the FlashScore API
Fixtures, Live Scores, and Search
get_daily_fixtures accepts a sport name and a day_offset integer (0 = today, -1 = yesterday, 1 = tomorrow) and returns an array of match objects, each with match_id, status, start_time, home_team, away_team, score, and competition. Those match_id values are the common key used across almost every other endpoint. get_live_scores narrows that feed to matches with active score changes, returning current_minute, score_home, score_away, and last_updated per match. search accepts any team name, player name, or tournament string (minimum 2 characters) and returns typed results — team, player, or tournament — with id, url_slug, sport, gender, and country fields that feed into team and player endpoints.
Match Detail, Events, and Statistics
get_match_detail returns the core match record: scores including home_ht/away_ht half-time values, status (not_started, live, finished, cancelled, postponed), winner, and an available_data array of codes (ST for statistics, LI for lineups, HH for head-to-head). Checking available_data before calling sub-endpoints avoids empty responses. get_match_events returns a timestamped timeline of goals, assists, yellow/red cards, and substitutions with minute, period, team, player, player_id, and running score_home/score_away after each event. get_match_statistics delivers per-period stat rows (match, 1st_half, 2nd_half, extra_time) covering xG, ball possession, total shots, shots on/off target, corner kicks, passes, tackles, duels won, and goalkeeper saves — each tagged with a category (top_stats, shots, attack, passing).
Odds, Previews, and Form
get_fixtures_with_odds merges the daily fixture feed with 1X2 odds (home win, draw, away win) including opening and current values; matches without bookmaker coverage return null odds. get_match_odds goes further, returning every available market — Over/Under (all lines), Both Teams To Score, Double Chance, Draw No Bet, Asian Handicap — per bookmaker, structured as a markets array with market_type, scope, and per-bookmaker values. get_match_preview combines each team's last 10 results, up to 10 head-to-head encounters, and 1X2 odds into one call. get_match_full_report extends that to 20 H2H matches, 20-match overall form, home-only and away-only form splits, full period statistics, lineups, and standings.
Teams, Players, and Standings
get_team_results fetches a team's paginated match history (40 results per page, most recent first) using team_id and team_slug from search. get_player_results resolves a player's current team from their profile, then enriches each team match with that player's individual event stats — goals, cards, substitution minutes — returning has_next_page for multi-page traversal. get_league_standings accepts any match_id from a competition and returns the full table with rank, matches played, wins, draws, losses, goals for/against, goal difference, points, and recent form; it returns input_not_found for knockout tournaments with no table. get_all_leagues_standings batches standings retrieval across every unique competition found in a day's fixtures, with a top_leagues_only boolean to filter to the 50 most prominent leagues.
The FlashScore API is a managed, monitored endpoint for flashscore.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when flashscore.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official flashscore.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a live match ticker using
get_live_scoresto poll active score changes andcurrent_minuteacross multiple sports. - Populate pre-match betting dashboards by combining
get_fixtures_with_oddsfor 1X2 lines andget_match_oddsfor full market depth per bookmaker. - Generate automated match reports by calling
get_match_full_reportafter final whistle for score, events, stats, lineups, and standings in one request. - Track a player's season form by paginating
get_player_resultsto retrieve goals, cards, and substitution data across all competition matches. - Power a football league table widget using
get_league_standingswith anymatch_idfrom the target competition. - Create a head-to-head preview card using
get_daily_h2h_previewsto enrich each fixture with the last 10 direct meetings between the two teams. - Rank and display fixtures by league prominence using
get_prioritized_fixtureswith alimitto surface top-league matches first.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FlashScore have an official public developer API?+
How do I get statistics and lineups for a specific match?+
get_match_detail first and inspect the available_data array. If it contains ST, call get_match_statistics for period-level stats. If it contains LI, call get_match_lineups for formations, coach names, and per-player position data. Calling those endpoints without the corresponding code in available_data will return an empty result.Does `get_match_odds` cover all sports, or only football?+
get_match_odds is scoped to football matches. Odds coverage for tennis, basketball, hockey, and other sports is not currently exposed through a dedicated odds endpoint. You can fork the API on Parse and revise it to add an odds endpoint for other sports.Can I retrieve historical fixtures more than a few days in the past using `get_daily_fixtures`?+
get_daily_fixtures accepts any integer day_offset, including large negative values for past dates. However, very old historical dates may return incomplete data depending on what FlashScore retains in its day-by-day feed. For a team's full historical record, get_team_results with pagination is more reliable than large negative offsets.Are player transfer history, contract details, or market valuations available?+
get_player_results. Transfer history, contract data, and market valuations are not exposed. You can fork the API on Parse and revise it to add an endpoint targeting that data.