footystats.org APIfootystats.org ↗
Access FootyStats data via API: live scores, league standings, team stats, player stats, and match H2H data across football competitions worldwide.
curl -X GET 'https://api.parse.bot/scraper/da1a4a9a-3c0f-46fb-9c3b-79796e0bb203/search_teams_leagues?query=barcelona' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for teams, leagues, and matches by keyword. Returns a list of results with name, URL, path, and category (club, match, or league).
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'arsenal', 'premier league'). |
{
"type": "object",
"fields": {
"data": "array of search result objects with name, url, path, and category",
"status": "string, always 'success'"
},
"sample": {
"data": [
{
"url": "https://footystats.org/clubs/arsenal-fc-59",
"name": "Arsenal",
"path": "/clubs/arsenal-fc-59",
"category": "club"
},
{
"url": "https://footystats.org/clubs/arsenal-de-sarandi-716",
"name": "Arsenal de Sarandí",
"path": "/clubs/arsenal-de-sarandi-716",
"category": "club"
}
],
"status": "success"
}
}About the footystats.org API
The FootyStats API covers 8 endpoints that expose football statistics including live scores, league standings, team performance metrics, and head-to-head match data. The get_team_stats endpoint returns win/draw/loss percentages, goals, and possession split by overall, home, and away. League coverage spans multiple countries, accessible through get_leagues which returns slugs and URLs for every competition on FootyStats.
Endpoints and Data Coverage
The API provides eight endpoints covering the main data surfaces on FootyStats. get_leagues returns a full list of available competitions with name, country, slug, and url fields — useful for building a competition picker before drilling into league-specific endpoints. get_league_overview takes a path parameter (e.g. /england/premier-league) and returns a standings array with team rankings, match stats, goal difference, points, and points-per-game. get_league_detailed_stats extends this with a form_table showing each team's last 6-match record including wins, draws, losses, goals for/against, and PPG.
Team and Player Data
get_team_stats accepts a /clubs/-prefixed path from search results and returns stats broken down into overall, home, and away buckets — each containing percentage and per-match figures — plus season_totals with aggregate counts. get_league_player_stats returns top_scorers, top_assists, and most_clean_sheets arrays for a given league, each entry including player name and stat value.
Match and Live Data
get_match_stats targets a specific head-to-head URL ending in -h2h-stats and returns score, team_a, team_b, and a stats object mapping stat names (possession, shots, corners, fouls, cards, xG) to per-team values. get_livescores requires no parameters and returns all currently active matches with match_id, both team scores, and a minute field that can be a numeric string, an added-time string like 90+1, or a status token (HT, FT, BREAK, AWAITING_UPDATES, Soon). search_teams_leagues accepts a free-text query and returns results categorized as club, match, or league, each with a path usable directly in other endpoints.
- Build a live match tracker using
get_livescoresto display real-time scores and match status across competitions. - Render league tables with points, goal difference, and PPG by calling
get_league_overviewfor any competition slug. - Compare home vs. away performance for a club using the split stats returned by
get_team_stats. - Generate top-scorer and assist-leader tables per competition with
get_league_player_stats. - Power an H2H comparison widget by fetching possession, xG, corners, and cards from
get_match_stats. - Populate a competition search feature using
search_teams_leaguesto resolve team and league paths dynamically. - Track recent form trends across a league using the 6-match
form_tablefromget_league_detailed_stats.
| 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 | 250 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 FootyStats have an official developer API?+
What does `get_livescores` return for matches that haven't started yet?+
minute field for upcoming matches returns the status string 'Soon'. Once a match is live, minute becomes a numeric string or an added-time string like '90+1'. Half-time is indicated by 'HT' and completed matches by 'FT'. Score fields are present for all entries.Does the API expose individual player profiles or career stats?+
get_league_player_stats. Individual player profile pages and career histories are not currently returned. You can fork this API on Parse and revise it to add an endpoint targeting individual player profile paths.Can I retrieve historical match results or fixture lists for a team or league?+
How do I get the correct `path` parameter for `get_team_stats` or `get_match_stats`?+
search_teams_leagues is the intended discovery step. Pass a team or match name as the query parameter and the response returns objects with a path field and a category field (club, match, or league). The path value can be passed directly into get_team_stats (for club results) or get_match_stats (for match results).