Discover/Sofascore API
live

Sofascore APIsofascore.com ↗

Access Sofascore H2H statistics, daily sports events, lineups, odds, and player stats across football, tennis, basketball, and more via a structured REST API.

Endpoint health
verified 2h ago
get_event_statistics
get_tennis_fixtures
get_match_lineup
get_event_h2h
get_h2h_streaks_ranked
3/13 passing latest checkself-healing
Endpoints
13
Verified account required
Updated
20d ago

What is the Sofascore API?

This API exposes 13 endpoints covering Sofascore data: daily scheduled events across nine sports, head-to-head statistics and ranked streak metrics, match lineups, in-match incident timelines, betting odds, and per-player match histories. The get_h2h_streaks_ranked endpoint is the centrepiece — it aggregates H2H data for every matchup on a given date and returns only those meeting configurable win-rate, draw-rate, or unbeaten-rate thresholds.

This call costs10 credits / call— charged only on success
Try it
Date in YYYY-MM-DD format. Omitting uses today's date.
Comma-separated sports: football,basketball,tennis,ice-hockey,baseball,handball,rugby,american-football,volleyball,cricket,esports. Omitting queries all sports.
Maximum events to process (0 = all).
Minimum number of historical meetings required for a matchup to be included.
Maximum streak percentage threshold.
Minimum streak percentage threshold.
→ api.parse.bot/scraper/ca85c1b5-deac-4378-826d-742eddac6785/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ca85c1b5-deac-4378-826d-742eddac6785/get_h2h_streaks_ranked?date=2026-10-09&sports=football&max_events=3&min_meetings=3&max_percentage=100&min_percentage=50' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 13 totalmissing one? ·

Fetches all daily events across specified sports, extracts H2H statistics for each matchup, computes streak metrics (home win %, away win %, draw %, home unbeaten %, away unbeaten %, manager duel %), and returns only those streaks occurring between min_percentage and max_percentage of the time, ranked in descending order by percentage. Processing many events is slow; use max_events to cap.

Input
ParamTypeDescription
datestringDate in YYYY-MM-DD format. Omitting uses today's date.
sportsstringComma-separated sports: football,basketball,tennis,ice-hockey,baseball,handball,rugby,american-football,volleyball,cricket,esports. Omitting queries all sports.
max_eventsintegerMaximum events to process (0 = all).
min_meetingsintegerMinimum number of historical meetings required for a matchup to be included.
max_percentagenumberMaximum streak percentage threshold.
min_percentagenumberMinimum streak percentage threshold.
Response
{
  "type": "object",
  "fields": {
    "date": "string, date queried in YYYY-MM-DD format",
    "streaks": "array of streak objects with event_id, sport, tournament, category, home_team, away_team, matchup, metric, count, total_meetings, percentage",
    "min_meetings": "integer, minimum meetings filter applied",
    "events_skipped": "integer, events skipped due to no/insufficient H2H data",
    "max_percentage": "number, maximum percentage filter applied",
    "min_percentage": "number, minimum percentage filter applied",
    "sports_queried": "array of sport name strings",
    "events_with_h2h": "integer, events that had H2H data meeting min_meetings",
    "events_processed": "integer, events with sufficient H2H data",
    "total_events_found": "integer, total events collected across sports",
    "total_streaks_found": "integer, number of qualifying streaks"
  },
  "sample": {
    "data": {
      "date": "2026-06-10",
      "streaks": [
        {
          "count": 4,
          "sport": "football",
          "metric": "Almería wins (home)",
          "matchup": "Almería vs CD Castellón",
          "category": "Spain",
          "event_id": 16264088,
          "away_team": "CD Castellón",
          "home_team": "Almería",
          "percentage": 50,
          "tournament": "LaLiga 2, Promotion Playoffs",
          "total_meetings": 8
        }
      ],
      "min_meetings": 3,
      "events_skipped": 0,
      "max_percentage": 100,
      "min_percentage": 50,
      "sports_queried": [
        "football"
      ],
      "events_with_h2h": 3,
      "events_processed": 3,
      "total_events_found": 3,
      "total_streaks_found": 8
    },
    "status": "success"
  }
}

About the Sofascore API

Daily Events and H2H Data

The get_daily_events endpoint returns all scheduled fixtures for a date across up to nine sports (football, basketball, tennis, ice-hockey, baseball, handball, rugby, american-football, volley). Each event object includes event_id, home_team, away_team, tournament, tournament_category, and status fields. That event_id is the key input for every event-level endpoint: get_event_h2h, get_event_details, get_event_statistics, get_event_incidents, get_event_odds, get_event_fun_facts, and get_match_lineup.

get_event_h2h returns a team_duel summary (home_wins, away_wins, draws, total_meetings), a manager_duel breakdown, and a pregame_form object with recent form arrays and ratings for both sides. get_h2h_streaks_ranked extends this by computing six streak metrics — home win %, away win %, draw %, home unbeaten %, away unbeaten %, and manager duel % — across all matchups on a date, then filters results to those falling between min_percentage and max_percentage. You can also control the min_meetings threshold to exclude matchups with thin historical records.

Match Details, Incidents, and Lineups

get_event_details returns structured score objects (format varies by sport), a status object with code and description, round_info, and season name. get_event_incidents gives a chronological timeline of goals (scorer, minute, penalty/own-goal flag, running score), cards (player, colour, minute), substitutions, and VAR decisions — football only. get_match_lineup returns formation strings and the 11 starters for each side (player_id, name, shirt_number, position), with a lineup_status field distinguishing confirmed, predicted, or unavailable.

Tennis, Odds, and Player Stats

get_tennis_fixtures returns ATP, WTA, and ITF matches for a date with player rankings, seedings, surface type, venue, and round. Odds for any event are available via get_event_odds, which returns a markets array with market name, group, period, suspension flag, and fractional odds per choice. get_player_match_stats paginates through a football player's finished-match history (up to 30 per call), returning per-game appearance details alongside fixture context. Use next_offset from each response to page forward.

Reliability & maintenanceVerified

The Sofascore API is a managed, monitored endpoint for sofascore.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sofascore.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 sofascore.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.

Last verified
2h ago
Latest check
3/13 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Identify historically consistent H2H patterns (e.g. home win rate above 70%) across all football fixtures on a given date using get_h2h_streaks_ranked.
  • Build a daily sports schedule dashboard by fetching all events with get_daily_events and displaying teams, tournaments, and live status.
  • Reconstruct a football match timeline with goals, cards, and substitutions using get_event_incidents.
  • Compare pre-match odds across betting markets for any event via get_event_odds.
  • Track a player's form over their last 30 finished matches — including ratings, goals, and assists — using get_player_match_stats.
  • Check whether two teams have an upcoming fixture and retrieve its date and venue context with get_upcoming_match.
  • Feed confirmed lineups and formations into a pre-match preview tool using get_match_lineup.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Sofascore have an official developer API?+
Sofascore does not publish a documented public developer API. There is no official API key programme or documented REST/GraphQL endpoint set available to third-party developers.
What does `get_h2h_streaks_ranked` actually filter on, and what metrics does it compute?+
The endpoint computes six per-matchup metrics: home win %, away win %, draw %, home unbeaten %, away unbeaten %, and manager duel %. It then returns only those streaks whose computed percentage falls between min_percentage and max_percentage. You can also set min_meetings to exclude matchups with fewer than a given number of historical meetings, and max_events to cap the number of fixtures processed.
Are detailed match statistics available for all sports, or only football?+
get_event_statistics exposes possession, xG, shots breakdowns, passes, tackles, cards, and distance covered, but this data is primarily available for finished football matches. get_event_incidents (goal/card/substitution timeline) is also football-only. Tennis fixtures have their own endpoint (get_tennis_fixtures) with surface and ranking data, but sport-specific stat depth for basketball, ice-hockey, or baseball is not currently covered. You can fork this API on Parse and revise it to add sport-specific statistics endpoints for those sports.
Does the API return player search or team search by name?+
Not currently. The API requires numeric IDs (event_id, team_id, player_id) as inputs rather than name-based search. Player IDs can be sourced from get_match_lineup starters, and team IDs from get_daily_events results. You can fork this API on Parse and revise it to add a name-to-ID lookup endpoint.
How far back does H2H history go in `get_h2h`?+
get_h2h returns up to the 10 most recent finished matches between two teams, newest first. It does not support offset pagination to retrieve earlier meetings beyond those 10. If you need deeper historical records, you can fork this API on Parse and revise it to extend the pagination depth.
Page content last updated . Spec covers 13 endpoints from sofascore.com.
Related APIs in SportsSee all →
whoscored.com API
Search for players and teams, then dive deep into their performance metrics, match statistics, and detailed passing data to analyze football games and player abilities. Get comprehensive insights on team performance, individual player stats, and play-by-play event information to power your football analysis and decision-making.
soccerstats.com API
Access comprehensive soccer statistics including live league tables, match details, team performance metrics, and form rankings across multiple football leagues. Search for specific teams and analyze their season statistics, head-to-head records, and competitive standings to stay informed on the latest soccer data.
statshub.com API
Access detailed football match statistics including xG, xGA, and possession metrics across multiple leagues, plus retrieve fixtures by date and current league standings. Get comprehensive season-level and match-level performance data to analyze team and player statistics in depth.
footystats.org API
Get live football scores, team performance metrics, league standings, and head-to-head match statistics all in one place. Search teams and leagues to access detailed player stats, comprehensive analytics, and in-depth performance data across football competitions worldwide.
livescore.com API
Track live scores and detailed statistics across football, hockey, basketball, tennis, and cricket with the ability to filter by date, sport, and league. Access match summaries, team overviews, standings, fixtures, and results to stay updated on your favorite competitions and teams.
flashscore.com.ua API
Access football match results, fixtures, team histories, and in-match statistics from Flashscore. Look up matches by date, retrieve a team's recent and upcoming games, and pull detailed events and performance metrics for any match.
football.co.il API
Track Israeli football league standings, fixtures, and team performance with comprehensive data on leagues, squads, and player statistics. Get detailed match information, top scorers, and team-specific stats to stay updated on the Israeli football season.
flashscore.es API
Track and compare pre-match betting odds across all sports leagues with daily match overviews showing 1X2 odds, or dive deeper into individual matches to see detailed odds from every bookmaker including opening lines and how odds have shifted. Stay ahead of betting movements with real-time data on odds changes and bookmaker-specific pricing.