Discover/Sofascore API
live

Sofascore APIsofascore.com

Access Sofascore head-to-head stats, daily events, lineups, odds, and incident timelines across football, tennis, basketball, and more via 12 endpoints.

Endpoint health
verified 6d ago
get_event_fun_facts
get_event_statistics
get_tennis_fixtures
get_h2h
get_h2h_streaks_ranked
12/12 passing latest checkself-healing
Endpoints
12
Verified account required
Updated
6d ago

What is the Sofascore API?

This API exposes 12 endpoints covering Sofascore data: daily scheduled events across 9 sports, head-to-head statistics, match lineups, in-game incident timelines, pre-match odds, and event statistics. The get_h2h_streaks_ranked endpoint computes and filters H2H streak metrics — home win rate, away unbeaten rate, draw percentage, and manager duel records — across every matchup on a given date, returning only those falling within your configured percentage 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-09-08&sports=football&max_events=3&min_meetings=3&max_percentage=100&min_percentage=50' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 12 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 Coverage

get_daily_events returns all scheduled matches for a given date across up to 9 sports (football, basketball, tennis, ice-hockey, baseball, handball, rugby, american-football, volleyball). Each event object includes event_id, home_team, away_team, tournament, tournament_category, and status. That event_id is the key input for every other event-level endpoint. The sports parameter accepts a comma-separated list; omitting it queries all supported sports. Use limit to cap the result set.

H2H Streaks and Metrics

get_h2h_streaks_ranked is the highest-level endpoint. It collects all daily events, resolves H2H history for each matchup, and computes six streak metrics per pair: home win %, away win %, draw %, home unbeaten %, away unbeaten %, and manager duel %. Results are filtered by min_percentage and max_percentage thresholds and require at least min_meetings historical encounters. The response includes events_processed, events_skipped, and events_with_h2h counts alongside the ranked streaks array. For direct team-pair lookups, get_h2h takes team_id and opponent_id and returns up to 10 most-recent finished matches with scores and winner flags.

Match Detail Endpoints

get_event_details returns structured score objects (format varies by sport), round_info, season, and a status object with code, description, and type. get_event_statistics covers finished matches and exposes possession, xG, shots on/off target, corners, fouls, passes, tackles, offsides, and free kicks for both sides. get_event_incidents returns a chronological timeline of goals (scorer, minute, running score, penalty/own-goal flags), cards (player, colour, minute), substitutions, and VAR decisions — currently for football events. get_match_lineup returns formation and 11 starters with player_id, name, shirt_number, and position for each side, plus a lineup_status field that distinguishes confirmed, predicted, and unavailable.

Tennis, Odds, and Fun Facts

get_tennis_fixtures is a sport-specific endpoint that adds ATP/WTA rankings, seeds, surface type, and venue details not present in the generic get_daily_events response. get_event_odds returns pre-match betting markets with fractional odds per choice; total_markets indicates how many markets exist for a given event. get_event_fun_facts returns editorial H2H insights with a highlighted boolean per fact; availability is effectively limited to football events.

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
6d ago
Latest check
12/12 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 matchups with historically dominant home or away records using get_h2h_streaks_ranked percentage filters.
  • Build a daily football briefing with confirmed lineups from get_match_lineup and incident timelines from get_event_incidents.
  • Compare pre-match xG and possession stats from get_event_statistics against actual results for model training.
  • Track ATP/WTA player seeds and surface types across tournament rounds using get_tennis_fixtures.
  • Display pre-match odds across markets for football and tennis events via get_event_odds.
  • Find the next scheduled fixture between two clubs using get_upcoming_match with numeric team_id and opponent_id.
  • Enrich a sports betting dashboard with manager duel records and pregame form ratings from get_event_h2h.
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 with official access, pricing tiers, or support. This Parse API provides structured access to Sofascore data through its own endpoints.
What does `get_h2h_streaks_ranked` return compared to `get_event_h2h`?+
get_h2h_streaks_ranked processes all daily events in bulk, computes derived percentage metrics (home win %, away unbeaten %, draw %, manager duel %), and filters results by min_percentage/max_percentage thresholds — useful for finding matchups with consistent patterns across a full slate. get_event_h2h targets a single event_id and returns raw team duel counts (home_wins, away_wins, draws, total_meetings), manager duel records, pregame form arrays, and fun facts for that specific fixture.
Are player-level season statistics available?+
Not currently. The API covers match-level statistics (get_event_statistics), lineups with player identifiers (get_match_lineup), and in-match incident attribution (get_event_incidents), but does not expose individual player season aggregates like goals scored, assists, or ratings across a campaign. You can fork this API on Parse and revise it to add a player-season stats endpoint.
How fresh is the event data, and does it include live match state?+
get_daily_events reflects the scheduled and in-progress event list for the requested date. get_event_details includes a status object with code and type, and score fields that reflect the current state at time of request. However, the API is not designed as a push-based live ticker; polling frequency is constrained by your plan's rate limits. Continuously updated live score streaming is not a current feature. You can fork this API on Parse and revise it to add more granular live polling logic.
Do fun facts and incident timelines work for all sports?+
get_event_fun_facts is documented to be primarily available for football events; non-football event IDs typically return input_not_found. get_event_incidents (goals, cards, substitutions, VAR) is also described as available for finished football matches specifically. Basketball, tennis, and other sports incidents are not currently covered. You can fork this API on Parse and revise it to add sport-specific incident endpoints for other disciplines.
Page content last updated . Spec covers 12 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.
flashscore.com API
Search teams and competitions, pull daily fixtures and live scores, and retrieve match details including events, statistics, and league standings from FlashScore.
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.
fotmob.com API
Get live football scores, detailed match results, and comprehensive league statistics across multiple competitions. Access player and team performance data, browse upcoming fixtures by date, and dive into in-depth analytics for your favorite leagues and matches.
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.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.
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.