Football API solutions

One football API. Five very different products.

Livescore portals, betting and odds platforms, fantasy games, sports media and club scouting tools all run on the same Sportmonks Football API. Here is one real Premier League fixture, read five different ways.

No contracts, no minimums First call in minutes 2,200+ football leagues
GET /v3/football/fixtures/19427238?include=pressure;statistics;events;lineups 200 OK
Premier League · Selhurst Park · 24 May 2026FT
Crystal Palace crestCrystal Palace
1 - 2
ArsenalArsenal crest

Events timeline events

HT 1'90'+
Gabriel Jesus, assist Martinelli 0-1just before HT
Noni Madueke 0-2after the break
Jean-Philippe Mateta, assist Yéremy Pino 1-2right at the end

Match stats statistics

40%Ball possession60%
8Shots total17
79Attacks99

Fulltime result probability, pre-match predictions.type

Crystal Palace win19.97%
Draw26.97%
Arsenal winHit53.02%

Premium Odds Feed on this fixture has_premium_odds

120+
Bookmakers
42
Betting markets

Arsenal predicted XI, 4-3-3 expectedLineups

Gabriel Martinelli11Martinelli
Gabriel Jesus9Jesus
Noni Madueke20Madueke
Martin Zubimendi36Zubimendi
Eberechi Eze10Eze
Myles Lewis-Skelly49Lewis-Skelly
Piero Hincapie5Hincapié
Gabriel Magalhaes6Gabriel
Christian Norgaard16Nørgaard
Cristhian Mosquera3Mosquera
David Raya1Raya
Predicted XI matched 8 of Arsenal's 11 actual starters
Returns: Jesus goal, Madueke goal, Martinelli assist

Ready-to-display facts natural_language

"In Crystal Palace's last 5 Premier League matches both teams scored in 3 of those matches."statistics · team · league_matches
"Arsenal are unbeaten in 22 out of their 25 most recent Premier League matches against Crystal Palace."streaks · h2h
Kai Havertz "Kai Havertz has the highest average xGOT for Arsenal in their 10 most recent Premier League matches, with an average xGOT of 0.65."players · league_matches

Pressure per minute · 102 minutes pressure

1'HT102'
Crystal Palace Arsenal Match high 79.61

Where the pressure went

Arsenal 79.61, minute 23no goal
Arsenal 74.35, minute 44Jesus scores
Crystal Palace 64.26, minute 17no goal
34Dangerous attacks53
One real fixture, five real responses. Every value on this card comes from the call shown above. Find the one that matches your build
Start here

I am building a...

Five builds, five different slices of the same API. Tell us which one is yours and we will show you the data behind it, the endpoints you will call, and a customer already shipping it.

Scores your users never have to refresh for

Livescore products live or die on the 89th minute. You need match state, events and lineups arriving fast and in the same shape every time, across the leagues your users actually follow, not just the big five. Sportmonks runs 6.4B API requests a month at 99.99% measured uptime, so peak nights behave like ordinary ones.

Endpoints you will call

Explore the Live Score API Or drop in a livescore widget
★★★★★

"The data is fast and consistent, which is critical for live features."

LeonCo-founder, Sportspoule
6.4B
API requests served per month

Odds and probabilities you can put a model on

When money moves on your numbers, "mostly accurate" is not a spec. You get pre-match and in-play odds from multiple bookmakers, plus Sportmonks probabilities, value-bet signals and xG in the same uniform response, so your pricing and your content read from one source.

Endpoints you will call

Explore the Sports Betting API Or see the Premium Odds Feed
★★★★★

"Seven years ago we found SportMonks website that offered more data at affordable price. Other services provided same data at much higher prices that we could not afford, as we are a small company of few developers."

RadeDeveloper, BF Bot Manager
7+ years
In production, no major problems

Player data complete enough to score on

A fantasy scoring engine breaks on one missing appearance. You get per-player match stats, verified and expected lineups, goals, assists, cards and minutes, plus squad and player images, in one uniform structure across 2,200+ leagues. Your users pick from the leagues they follow, not the ones your provider happens to carry.

Endpoints you will call

Explore the Fantasy Football API Or see Expected Lineups
★★★★★

"Finding high-quality football and betting data is challenging. When available, it is often either too expensive or difficult to integrate. This is where Sportmonks has proven to be a great partner."

Pasquale PuzioCo-founder, FantaMaster
2,200+
Leagues your players can pick from

Match content that writes most of itself

Previews, live blogs, tables and post-match wraps, without a human retyping a scoreline. Fixtures, standings and statistics arrive as structured JSON your CMS can template once and reuse every matchday, in every league and timezone you publish in. Match Facts (beta) and pre-match News add editorial context on the major European competitions.

Endpoints you will call

Explore the API for Sports Media Or see Match Facts
★★★★★

"We chose Sportmonks because of the accuracy of their API, its ease of use, and their outstanding customer service."

ScorePlayAI digital asset management for clubs and media
Every match
Templated once, published everywhere

Metrics a recruitment meeting can actually use

Scouting and club analysis need depth and history, not just today's score. You get xG and expected-goals derivatives, per-player and per-team season statistics, form, squads and transfers, with uniform naming across every league so a cross-competition comparison does not start with a normalisation project.

Endpoints you will call

Explore the Football Clubs API Or see the xG Data add-on
★★★★★

"Sportmonks feels like a partner rather than just a service we're subscribed to. The support team is fast, helpful, and actually understands what you're trying to achieve."

Ahmet SayarliogluCo-founder, ScoutsLand
10 years
Serving sports data at scale
Proof, not a promise

One fixture. One call. Five products.

This is a real Premier League fixture: Crystal Palace against Arsenal, 24 May 2026 at Selhurst Park. Below is the same fixture read five different ways, once for each solution. Every number, name and sentence comes out of the JSON on the right.

GET /v3/football/fixtures/19427238?include=pressure;statistics;events;lineups 200 OK
Premier League · Selhurst Park · 24 May 2026FT
Crystal Palace crestCrystal Palace
1 - 2
ArsenalArsenal crest

Events timeline

HT 1'90'+
Gabriel Jesus, assist Martinelli 0-1just before HT
Noni Madueke 0-2after the break
Jean-Philippe Mateta, assist Yéremy Pino 1-2right at the end

Match stats

40%Ball possession60%
8Shots total17
79Attacks99

Match state, goals and bilateral statistics in one response. See the Live Score API

{
  "data": {
    "id": 19427238,
    "league_id": 8,
    "name": "Crystal Palace vs Arsenal",
    "starting_at": "2026-05-24 15:00:00",
    "result_info": "Arsenal won after full-time.",
    "postmatchnews": [
      {
        "id": 12843,
        "fixture_id": 19427238,
        "title": "Arsenal strengthen title grip with another win",
        "lines": [
          { "id": 61035,
            "text": "Arsenal took the lead just before half time as Gabriel Jesus netted, with an assist by Gabriel Martinelli." },
          { "id": 61036,
            "text": "Straight after the break, Noni Madueke scored and increased the team's lead." }
          // + 2 more lines: league-table context and Mateta's late reply
        ]
      }
    ],
    "statistics": [
      // ball possession, shots, attacks and the rest,
      // one object per team per statistic type
    ]
  }
}
// Exact goal minutes live on include=events, same fixture id.
GET /v3/football/fixtures/19427238?include=predictions.type;premiumOdds 200 OK
Pre-match probabilitiesModel
Crystal Palace crestCrystal Palace
1 - 2
ArsenalArsenal crest

Fulltime result probability

Crystal Palace win19.97%
Draw26.97%
Arsenal winHit53.02%

Premium Odds Feed on this fixture

120+
Bookmakers
42
Betting markets

Model probabilities and odds keyed to the same fixture id as the scoreline. See the Sports Betting API

{
  "data": {
    "id": 19427238,
    "name": "Crystal Palace vs Arsenal",
    "result_info": "Arsenal won after full-time.",
    "has_premium_odds": true,
    "predictions": [
      {
        "id": 27153472,
        "fixture_id": 19427238,
        "predictions": {
          "home": 19.97,
          "away": 53.02,
          "draw": 26.97
        },
        "type_id": 237,
        "type": {
          "name": "Fulltime Result Probability",
          "developer_name": "FULLTIME_RESULT_PROBABILITY",
          "model_type": "prediction"
        }
      }
      // + 28 more prediction objects in the same call:
      // correct score, BTTS, over/under, corners, HT/FT, value bet
    ],
    "premiumodds": [
      // one object per odd: market_id, bookmaker_id, label,
      // value, probability, fractional, american,
      // latest_bookmaker_update, plus opening odds history
    ]
  }
}
GET /v3/football/fixtures/19427238?include=expectedLineups;lineups.details;events 200 OK
Arsenal predicted XI · 4-3-3Pre-match
Gabriel Martinelli11Martinelli
Gabriel Jesus9Jesus
Noni Madueke20Madueke
Martin Zubimendi36Zubimendi
Eberechi Eze10Eze
Myles Lewis-Skelly49Lewis-Skelly
Piero Hincapie5Hincapié
Gabriel Magalhaes6Gabriel
Christian Norgaard16Nørgaard
Cristhian Mosquera3Mosquera
David Raya1Raya

How it landed

Predicted XI matched 8 of Arsenal's 11 actual starters
Returns: Jesus goal, Madueke goal, Martinelli assist

Player ids, shirt numbers, formation slots and photos, hours before kickoff. See the Fantasy Football API

{
  "data": [
    {
      "id": 536294,
      "fixture_id": 19427238,
      "player_id": 3130,
      "team_id": 19,
      "formation_field": "1:1",
      "type_id": 77614,
      "formation_position": 1,
      "player_name": "David Raya",
      "jersey_number": 1
    },
    {
      "id": 536301,
      "fixture_id": 19427238,
      "player_id": 5329,
      "team_id": 19,
      "formation_field": "4:2",
      "type_id": 77614,
      "formation_position": 10,
      "player_name": "Gabriel Jesus",
      "jersey_number": 9
    }
    // + the rest of both predicted XIs, one object per player
  ]
}
// Per-player match ratings live on include=lineups.details
// (type_id 118), same fixture id.
GET /v3/football/fixtures/19427238?include=matchfacts;lineups.details;livescores;events;statistics 200 OK
Crystal Palace 1-2 Arsenal · Premier LeagueFT

Ready-to-display facts

"In Crystal Palace's last 5 Premier League matches both teams scored in 3 of those matches."statistics · team · league_matches
"Arsenal are unbeaten in 22 out of their 25 most recent Premier League matches against Crystal Palace."streaks · h2h
Kai Havertz "Kai Havertz has the highest average xGOT for Arsenal in their 10 most recent Premier League matches, with an average xGOT of 0.65."players · league_matches

Sentences, not raw numbers. Drop them straight into a preview, a live blog or a graphics template. See the API for Sports Media

{
  "data": {
    "id": 19427238,
    "name": "Crystal Palace vs Arsenal",
    "starting_at": "2026-05-24 15:00:00",
    "result_info": "Arsenal won after full-time.",
    "matchfacts": [
      {
        "id": 50227996,
        "type_id": 87913,
        "participant": "home",
        "basis": "team",
        "data": { "count": 3, "percentage": 60 },
        "natural_language": "In Crystal Palace's last 5 Premier League matches both teams scored in 3 of those matches.",
        "category": "statistics",
        "scope": "league_matches"
      }
      // + head-to-head, player and window-variation facts
      // in the same call, each with its own natural_language
    ]
  }
}
GET /v3/football/fixtures/19427238?include=pressure;statistics 200 OK
Pressure per minute · 102 minutesFT
1'HT102'
Crystal Palace Arsenal Match high 79.61

Where the pressure went

Arsenal 79.61, minute 23no goal
Arsenal 74.35, minute 44Jesus scores
Crystal Palace 64.26, minute 17no goal
Crystal Palace 59.08, minute 95chasing 1-2
34Dangerous attacks53

204 pressure values on this one match, with uniform naming across every league, so cross-competition analysis needs no normalisation pass. See the Football Clubs API

{
  "data": {
    "id": 19427238,
    "pressure": [
      {
        "id": 7299287816,
        "fixture_id": 19427238,
        "participant_id": 19,   // Arsenal (away)
        "minute": 23,
        "pressure": 79.61
      },
      {
        "id": 7299292366,
        "fixture_id": 19427238,
        "participant_id": 19,
        "minute": 44,
        "pressure": 74.35
      },
      {
        "id": 7299286584,
        "fixture_id": 19427238,
        "participant_id": 51,   // Crystal Palace (home)
        "minute": 17,
        "pressure": 64.26
      },
      {
        "id": 7299303163,
        "fixture_id": 19427238,
        "participant_id": 51,
        "minute": 95,
        "pressure": 59.08
      }
      // 204 objects in this match: one per team, per minute,
      // minutes 1 to 102
    ]
  }
}
// xG and its derivatives ride along on include=xgfixture.

Same fixture id. Same response shape. The only thing that changes between products is which include you ask for.

Solutions by industry

Five football API solutions, one platform

Each card below is real data from a real fixture, in a different competition, rendered the way that product would render it. Same API underneath, very different slice on top.

GET /fixtures/19429278?include=events200
Eredivisie · 26 Oct 2025FT
Feyenoord crestFeyenoord
2 - 3
PSVPSV crest
30'Ismael Saibari0-1
50'Luciano Valente1-1
51'Ismael Saibari1-2
60'Ismael Saibari1-3
73'Oussama Targhalline2-3

Livescore portals

Real-time action, from kickoff to final whistle

Live match state, goals, cards, substitutions and lineups in one uniform response, across 2,200+ leagues. Built to hold up on the nights everyone opens your app at once.

LivescoresMatch eventsStatisticsFixturesLineups

Built for: developers at fan apps, portals and widget products

Explore the Live Score API
GET /fixtures/19439592?include=predictions200
La Liga · 10 May 2026Pre-match
FC Barcelona crestBarcelona
vs
Real MadridReal Madrid crest
Barcelona win57.4%
Draw19.9%
Real Madrid win22.7%

Full time: Barcelona won. Model favourite, hit.

Betting and odds platforms

Odds, probabilities and the metrics behind them

Pre-match and in-play odds from multiple bookmakers, plus Sportmonks probabilities, value-bet signals and xG, all keyed to the same fixture id your scores come from.

OddsBookmakers & marketsPredictionsOdds comparisonProbabilities

Built for: odds comparison, tipster and trading tool builders

Explore the Sports Betting API
GET /fixtures/19425124?include=lineups.details200
Serie A · 14 Feb 2026FT
Inter crestInter
3 - 2
JuventusJuventus crest
5Manuel Locatelli Juventus · goal 83'8.63
32Federico Dimarco Inter · assist 76'8.08
7Piotr Zieliński Inter · goal 90'7.73

Fantasy games

Player data complete enough to score on

Per-player match statistics and ratings, verified and expected lineups, goals, assists, cards and minutes. One missing appearance breaks a scoring engine, so completeness is the whole product.

Player statsPlayer ratingsLineupsLivescoresImages

Built for: fantasy operators and prediction game product owners

Explore the Fantasy Football API
GET /fixtures/19427238?include=AIOverviews200
Premier League · 24 May 2026FT
Crystal Palace crestCrystal Palace
1 - 2
ArsenalArsenal crest

"Arsenal are unbeaten in 22 out of their 25 most recent Premier League matches against Crystal Palace."natural_language · streaks · h2h

A sentence, not a number. Straight into the live blog.

Sports media

Match content that writes most of itself

Previews, live blogs, tables and post-match wraps from structured JSON your CMS templates once. No one retypes a scoreline, in any league or timezone you publish in.

Live commentaryStandingsStatisticsMatch Facts (beta)Schedules

Built for: editorial and product teams at publishers and broadcasters

Explore the API for Sports Media
GET /fixtures/19443148?include=xGFixture200
Süper Lig · 7 Mar 2026FT
Besiktas crestBeşiktaş
0 - 1
GalatasarayGalatasaray crest
1.43Expected goals0.91
0.70xG on target0.96

Beşiktaş created more and still lost. That gap is the analysis.

Clubs and scouting

Metrics a recruitment meeting can use

xG and its derivatives, per-player and per-team season statistics, form, squads, transfers and multi-season history, with uniform naming so cross-competition comparison needs no normalisation project.

xGPlayer ratingsSeason statsTeam trendsScoutingClub apps

Built for: club analysts, scouting platforms and official club apps

Explore the Football Clubs API
GET /leagues200
CoverageLive
2,200+ Football leagues,
one response shape
Eredivisieid 72
La Ligaid 564
Serie Aid 384
Premier Leagueid 8
Süper Ligid 600

Everything else

Builds that do not fit a box

Loyalty apps, AI commentary, gaming databases, internal dashboards. If your product needs football data as an input, someone in our case studies has already shipped something close to it.

Case studiesFan engagementCustom appsAIGaming

Built for: anyone whose build is not on this page

Read all customer case studies

Five competitions, five products, five real API responses. Nothing on this page is a mockup.

The numbers behind every solution

Proof you can put in a vendor review

Whichever solution you pick, the infrastructure underneath it is the same. These are the figures a technical evaluator will ask you for.

Proof, in four numbers

The same infrastructure sits under every solution on this page, whichever one you pick.

  • Football leagues, including the niche ones your users follow2,200+
  • Measured uptime, our own observed availability99.99%
  • API requests per month, proven at peak-event volume6.4B
  • In production, serving sports data at scale10 years

Verified, multi-source data

Feeds are cross-checked against each other rather than taken from a single upstream, so a bad value upstream does not become a bad value in your product.

One response shape, every league

Uniform naming and structure across all 2,200+ leagues, so adding a competition is a config change and not a data project.

A person, seven days a week

30,000+ builders and 1,200+ companies, supported by real people rather than a ticket queue. Sportmonks is the only sports data API with an actual face.

Measured uptime is our own observed availability. That is a different thing from a contractual SLA, and we will not present one as the other. If your review needs SLA terms in writing, ask support and we will send you the ones that apply to your plan.

Choosing between them

Which football API solution is yours?

The five solutions differ less in which API you call and more in which failure mode kills your product. Find the row where the failure mode sounds like yours.

Solution Who it is for What makes or breaks it The data that matters most
Live Score APISee the page → Developers at fan apps, portals and widget products. Self-serve, fast evaluation, usually one engineer deciding. Freshness and uptime during the match. A score that arrives late, or an API that wobbles at 20:45 on a Wednesday, costs you the user permanently. /livescores/fixtureseventslineups
Sports Betting APISee the page → Odds comparison sites, tipster platforms and trading tool builders. Mixed technical and commercial evaluation. Odds freshness and market breadth. Stale prices are worse than no prices, and a short bookmaker list caps the product before you launch it. /odds/pre-match/odds/inplay/predictionsxGFixture
Fantasy Football APISee the page → Fantasy and prediction game operators. A developer plus a product owner, evaluating together. Completeness of player data. Scoring engines do not degrade gracefully. One missing appearance in one league produces a support ticket from every user in it. /playerslineupsstatistics/topscorers
API for Sports MediaSee the page → Editorial and product teams at publishers and broadcasters. Deadline-driven, often launching against a season start. Structure and time to live. The data has to be templatable once and correct forever, because nobody is going to hand-check 400 fixtures a weekend. /fixtures/standings/newsMatch Facts (beta)
Football Clubs APISee the page → Club analysts, scouting platforms and official club apps. The longest evaluation, usually with a technical reviewer alongside the buyer. Depth, history and consistency. A metric you cannot compare across competitions is a metric you cannot present in a recruitment meeting. xGFixture/players/teams/seasons/transfers

Scroll the table sideways to see every column.

Still not sure? Start with the data.

A free API token takes a minute and needs no card. Pull one fixture, look at the response, and decide from the JSON rather than from a landing page. That is usually faster than another vendor call.

Get your free API token →

Comparing us against another provider?

We publish direct comparisons against the providers people evaluate us with, including where they win. Read those before you talk to us, not after.

Compare football API alternatives →
Before you pick a provider

Most football data projects fail the same three ways

Whichever solution you land on, you are really choosing between four options. Three of them are the reason teams are still not live a quarter later.

Option one

Build and maintain it yourself

Stitching together free feeds and public sources looks cheap in week one. By month three it is a permanent job: fixture reschedules, name changes, promoted clubs, a new season format, and a pager that goes off on matchday. The cost is not the build, it is the maintenance that never ends.

Option two

Start on a budget API

Cheap entry, daily caps, community-forum support and coverage that thins out exactly where your users care. It works for a prototype. The migration you do six months later, mid-season, with live users, is the expensive part.

Option three

Go straight to an enterprise provider

The depth is real. So is the procurement cycle, the annual commitment and the account manager you meet once a quarter. For a team that wants to test an idea this month, the process itself is the blocker.

Option four

Start today, stay when you scale

Sportmonks sits where the other three do not: production-grade data you can start using this afternoon, with people you can actually reach when something looks wrong. Approachable is about the whole experience, the integration, the support and the pricing together, not about being the cheapest line on a spreadsheet.

  • Token in minutes, first call in one session. No sales gate in front of the docs.
  • No contracts, no minimums. Prices are published. Start small and scale without switching vendor.
  • Real people, seven days a week. A named personal contact once you are on a paid plan. Not a ticket queue and not a forum.
  • One response shape across 2,200+ leagues. Adding a competition does not restart your data model.

We also publish where other providers beat us. Compare football API alternatives →

Football API solutions, FAQ

The questions builders actually ask

Quick answers before you pick a solution. Want the long version? It's all in the Football API docs.

Which Sportmonks solution should I choose?

Choose by the failure mode that would hurt your product most, not by the label. If a late score loses you the user, start with the Live Score API. If stale prices cost you money, start with the Sports Betting API. If a missing appearance breaks a scoring engine, start with the Fantasy Football API. If you publish match content at volume, start with the API for Sports Media. If you need depth and history to compare players across competitions, start with the Football Clubs API.

Are these separate APIs, or one API?

One API. All five solutions read from the same Sportmonks Football API, the same fixture ids and the same response structure. What changes between them is which endpoints and includes you call. That is why you can start with livescores and add odds, player statistics or xG later without rebuilding your data layer.

Can I start without talking to sales?

Yes. Registering gives you an API token in a couple of minutes with no card and no call, and the documentation is public. Most teams make their first successful call in a single session. If you would rather be walked through it, you can book a demo, but nothing on the technical path is gated behind that.

How many leagues does each solution cover?

Sportmonks covers 2,200+ football leagues. Coverage of individual data types varies per competition, so a lower-tier league may carry fixtures, lineups and events without carrying every advanced metric. Check the coverage page for the exact competitions and data types before you commit to a plan.

Do I need add-ons for xG, predictions or odds?

Some data is delivered as an add-on rather than being included in every plan, including xG Data, Predictions, the Premium Odds Feed, Expected Lineups, News and Match Facts (beta). Each add-on attaches to your existing subscription and arrives in the same response structure as the rest of the API. The individual product pages list what each one contains, and the plans and pricing page shows what is included by default.

Can I combine solutions or switch later?

Yes, and most customers do. Because every solution reads from one API, adding a second use case is a matter of calling different endpoints rather than integrating a second vendor. There are no contracts and no minimums, so you can scale a plan up or down as your product changes.

How reliable is the data during live matches?

Sportmonks serves 6.4B API requests a month at 99.99% measured uptime, which is our own observed availability rather than a marketing figure. Measured uptime and a contractual SLA are two different things and we will not present one as the other, so if your review needs SLA terms in writing, ask support for the ones that apply to your plan.

What support do I get while I am building?

Human support from real people seven days a week, including during your free trial, and a named personal contact once you are on a paid plan. The documentation includes code examples and Postman collections, and there is an in-product API assistant for quick questions.

Ready when you are

Start with the data, not with a sales call.

Pull one fixture, look at the response, and decide from there. Whichever solution you are heading for, the first call is the same.

Self-serve

Get your free API token

A token in a couple of minutes, no card and no call. Public docs, code examples and Postman collections. Most teams are pulling live data before the end of the session.

Get your free API token

No contracts, no minimums. Cancel whenever.

Club, media or larger operator

Talk it through with our team

If you are evaluating for a club, a publisher or a platform at scale, we will walk your technical reviewer through coverage, support and service terms, and the data your use case actually needs.

Book a demo

Your developer can start on the free token in parallel.

Sportmonks is the most approachable sports data API. Reliable enough to trust in production, priced so you can start today, and built so one person can get it working in an afternoon.