Flashscore APIflashscore.com.tr ↗
Access live football scores, daily fixtures, match statistics, lineups with player ratings, and bet365 odds via the Flashscore.com.tr API.
What is the Flashscore API?
The Flashscore.com.tr API exposes football match data across 5 endpoints, covering daily fixtures from 100–200+ matches worldwide, match-level events, statistics, lineups, and odds. The get_football_matches endpoint accepts a date_offset parameter to retrieve past, present, or future fixture lists, while companion endpoints return per-match summaries, team statistics, starting XIs with ratings, and bet365 home/draw/away odds.
curl -X GET 'https://api.parse.bot/scraper/4ff158f6-8960-40ee-aa69-044007d0f5a4/get_football_matches?date_offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace flashscore-com-tr-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.flashscore_api import Flashscore, Match, MatchSummary, MatchStatistics, MatchLineups, MatchOdds
flashscore = Flashscore()
# List today's matches
for match in flashscore.matches.list(date_offset=0):
print(match.id, match.league, match.home_team, "vs", match.away_team, match.status)
# For a finished match, get detailed data
if match.status == "Finished":
# Get match events (goals, cards, substitutions)
summary = match.summary()
for event in summary.events:
print(event.minute, event.player, event.action, event.side)
# Get match statistics
stats = match.statistics()
for stat in stats.statistics:
print(stat.name, stat.home_value, stat.away_value)
# Get lineups and formations
lineup_data = match.lineups()
print(lineup_data.home.formation, lineup_data.away.formation)
for player in lineup_data.home.starting_xi:
print(player.name, player.number, player.rating)
# Get betting odds
odds_data = match.odds()
print(odds_data.bet_type, odds_data.bet_scope)
if odds_data.odds:
print(odds_data.odds.home.value, odds_data.odds.draw.value, odds_data.odds.away.value)
break
Retrieve all football matches for a given date. Returns fixtures with scores, status, league info, and start times. date_offset=0 is today, positive values are future days, negative values are past days. Typically returns 100-200+ matches per day across all leagues worldwide.
| Param | Type | Description |
|---|---|---|
| date_offset | integer | Date offset from today: 0 for today, 1 for tomorrow, -1 for yesterday, etc. |
{
"type": "object",
"fields": {
"total": "integer total number of matches",
"matches": "array of match objects with id, league, home_team, away_team, home_score, away_score, status, status_id, status_text, start_time, and match_url"
},
"sample": {
"data": {
"total": 149,
"matches": [
{
"id": "0QLszz2b",
"league": "ABD: USL Championship",
"status": "Finished",
"away_team": "Louisville City",
"home_team": "Birmingham",
"match_url": "https://www.flashscore.com.tr/mac/0QLszz2b/",
"status_id": "3",
"away_score": "1",
"home_score": "1",
"start_time": "2026-06-04T23:00:00",
"status_text": null
}
]
},
"status": "success"
}
}About the Flashscore API
Fixtures and Live Scores
The get_football_matches endpoint accepts a single date_offset integer — 0 for today, -1 for yesterday, 1 for tomorrow — and returns an array of match objects. Each match includes id, league, home_team, away_team, home_score, away_score, status, status_text, and start_time. The id field is used as the event_id input for every other endpoint. A typical day returns 100–200+ matches across all leagues worldwide.
Match Events and Statistics
get_match_summary returns an events array for a given event_id, where each event carries type, minute, side, player, score, and commentary fields. This covers goals, cards, and substitutions. Only completed or in-progress matches return populated events; scheduled matches return an empty array. get_match_statistics returns a statistics array grouped by period, with each entry containing name, home_value, and away_value — covering metrics like possession, shots, corners, and expected goals (xG). Lower-league or unplayed matches may return an empty statistics array.
Lineups and Odds
get_match_lineups returns home and away objects, each with formation, team_rating, starting_xi, substitutes, and coaches arrays. Player-level ratings are included where the league has detailed coverage; otherwise the arrays are empty. get_match_odds returns a single odds object with home, draw, and away sub-objects, each containing value, opening, active, and change fields. The bet_type is always HOME_DRAW_AWAY and bet_scope is always FULL_TIME. Odds sourced from bet365 are not available for every match; smaller leagues return null.
The Flashscore API is a managed, monitored endpoint for flashscore.com.tr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when flashscore.com.tr 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.tr 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 tracker displaying scores and status for all fixtures on a given day using
get_football_matches. - Aggregate goal and card timelines for post-match reports using the
eventsarray fromget_match_summary. - Compare xG, possession, and shot data between teams for tactical analysis via
get_match_statistics. - Track lineup changes and formation choices across matches using
get_match_lineupsformation and starting_xi fields. - Monitor opening-to-current odds movement for bet365 markets using the
openingandchangefields fromget_match_odds. - Populate a historical match database by iterating negative
date_offsetvalues inget_football_matches. - Alert users to player rating leaders per match by parsing
team_ratingand individual ratings in lineup responses.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Flashscore have an official developer API?+
What does `date_offset` control in `get_football_matches`, and how far back or forward can it go?+
date_offset integer shifts the target date relative to today — 0 is today, -1 is yesterday, 1 is tomorrow, and so on. The usable range depends on how far Flashscore publishes fixture schedules ahead and retains historical results, typically several days forward and weeks back. There is no server-side hard cap documented in the endpoint spec.Are statistics and lineups available for every match?+
get_match_statistics and get_match_lineups return empty arrays for scheduled matches, lower-division leagues without detailed coverage, and some international fixtures. Coverage is best for top European leagues and major international competitions.Does the API cover other sports beyond football, such as basketball or tennis?+
Are in-play or pre-match odds from multiple bookmakers available?+
get_match_odds endpoint returns full-time home/draw/away odds sourced from bet365 only, with opening and current values plus a change direction indicator. Odds from other bookmakers and Asian handicap or over/under markets are not currently covered. You can fork the API on Parse and revise it to add those additional markets or bookmaker sources.