Discover/Sofascore API
live

Sofascore APIsofascore.com

Access Sofascore H2H statistics, daily events, match incidents, odds, and streak rankings across football, tennis, basketball, and 6 more sports.

This API takes change requests — .
Endpoint health
verified 4d ago
get_event_odds
get_event_details
get_h2h
get_event_incidents
get_event_statistics
11/11 passing latest checkself-healing
Endpoints
11
Verified account required
Updated
11d ago

What is the Sofascore API?

This API exposes 11 endpoints covering Sofascore's head-to-head data, daily schedules, and match-level statistics across up to 9 sports. The get_h2h_streaks_ranked endpoint aggregates every scheduled matchup for a given date, computes win/draw/unbeaten percentages, and returns only the streaks that fall within your configured thresholds — making it straightforward to surface historically consistent patterns without post-processing the raw data yourself.

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-08-25&sports=football&max_events=3&min_meetings=3&max_percentage=100&min_percentage=50' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 11 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 Schedules

The get_daily_events endpoint returns all scheduled events for a given date across football, basketball, tennis, ice hockey, baseball, handball, rugby, American football, and volleyball. Each event object includes event_id, sport, tournament, tournament_category, home_team, away_team, and current status. The event_id field is the key that feeds into every other endpoint — H2H lookups, odds, statistics, and incidents all require it. Use the sports parameter (comma-separated slugs) to narrow results to one or more sports, and limit to cap the total returned. Tennis fixtures benefit from a dedicated get_tennis_fixtures endpoint that additionally surfaces ATP/WTA rankings, seeds, surface type, and venue.

Head-to-Head Data

get_event_h2h returns the team duel summary (home_wins, away_wins, draws, total_meetings), manager duel record, and pregame form ratings for a specific event. get_h2h accepts two team IDs directly and returns up to 10 most recent finished meetings with scores and winner flags. get_h2h_streaks_ranked extends this further: it iterates all daily events, computes six streak metrics (home win %, away win %, draw %, home unbeaten %, away unbeaten %, manager duel %), and filters the output to the min_percentage/max_percentage band you specify. The min_meetings parameter enforces a floor on sample size before a matchup is included, and the response reports events_with_h2h, events_skipped, and events_processed so you can audit coverage.

Match Detail and Incidents

get_event_details returns team names and IDs, current and period scores (structure varies by sport), season, round info, and a status object with code and description. get_event_statistics covers match-level aggregates for finished events: possession, shots on/off target, passes, tackles, fouls, offsides, corners, yellow cards, xG, distance covered, and sprints — all split home/away, with nulls where the sport doesn't track a metric. get_event_incidents delivers the full in-match timeline for football matches: goals with scorer name, minute, penalty/own-goal flags, and running score; cards with colour and player; substitutions; and VAR decisions, all sorted chronologically. get_event_fun_facts returns editorially highlighted text insights, primarily available for football events.

Odds

get_event_odds returns pre-match betting markets for an event. Each market object includes market_name, market_group, market_period, a suspended flag, and fractional odds per choice. Coverage spans match winner, set winner, total games, and other available lines depending on bookmaker coverage for the event. The total_markets field tells you how many markets were found.

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
4d ago
Latest check
11/11 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 one-sided matchups on today's football card using get_h2h_streaks_ranked with a high min_percentage threshold
  • Build a daily sports digest by pulling all scheduled events with get_daily_events and enriching each with H2H records via get_event_h2h
  • Track goal scorers, cards, and VAR decisions for a finished match using get_event_incidents
  • Compare pre-match odds across markets for tennis and football events via get_event_odds
  • Find the next scheduled fixture between two specific clubs using get_upcoming_match with their team IDs
  • Analyse possession, xG, and pass counts for finished matches with get_event_statistics
  • Filter ATP and WTA fixtures by surface type and player ranking using get_tennis_fixtures
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 an official public developer API. There is no documented API portal or OAuth program available to external developers.
What does `get_h2h_streaks_ranked` return and how does filtering work?+
get_h2h_streaks_ranked processes all daily events for the requested sports, computes six per-matchup metrics (home win %, away win %, draw %, home unbeaten %, away unbeaten %, manager duel %), and returns only streak objects where the computed percentage falls between min_percentage and max_percentage. Setting min_meetings excludes matchups with fewer historical meetings than the threshold. The response includes events_processed, events_skipped, and events_with_h2h so you can see how many matchups had sufficient data.
Are match incidents available for all sports, or only football?+
get_event_incidents is documented for football events and returns goals, cards, substitutions, and VAR decisions. Incident data for other sports is not currently exposed by this endpoint. The API does cover statistics and H2H records across all nine supported sports through get_event_statistics and get_event_h2h. You can fork the API on Parse and revise it to add incident parsing for basketball, tennis, or other sports if the underlying data is available.
Does the API expose player-level statistics or lineups for events?+
Not currently. The API returns team-level aggregates (possession, passes, shots, fouls, xG, etc.) via get_event_statistics and incident-level player names in get_event_incidents, but there are no endpoints for full player stat breakdowns or confirmed lineup data. You can fork the API on Parse and revise it to add player statistics or lineup endpoints.
What happens when `get_event_fun_facts` is called for a non-football event?+
Non-football events typically return an input_not_found result from this endpoint. Fun facts and detailed H2H insights are primarily generated for football matchups. For H2H data on non-football events, use get_event_h2h instead, which returns team duel summaries and pregame form across all supported sports.
Page content last updated . Spec covers 11 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.
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.
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.
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.
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.
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.
aiscore.com API
Track upcoming football matches and analyze team performance with real-time fixtures and the last 5 match statistics for any team in your chosen fixture. Make informed predictions by accessing detailed team form data and scheduled games for any date.