COMPARISON

TheStatsAPI vs API-Football: Free Tier, Pricing & xG Compared

api-football free plan: 100 req/day. Does api-football have xG? Full 2026 pricing and what developers use when they need more.

9 min read

Both TheStatsAPI and API-Football are popular REST APIs for football (soccer) data. They overlap in coverage, both return JSON, and both serve developers building apps around match results, player stats, and team performance data. But the details matter - pricing models, data freshness, quota structures, and developer gotchas differ in ways that affect real projects. Here is a side-by-side breakdown using verified data from both platforms.

Does api-football Have xG Data?

api-football's expected goals coverage should be treated as inconsistent unless you have verified the exact league, season, plan, and endpoint you intend to use. Public pricing makes every endpoint available on every plan, but xG, non-penalty xG (npxG), and expected assists (xA) are not presented as a standard field set across the core responses most developers start with.

That matters if xG is part of your scoring engine, betting model, or analytics product. A response can be valid while still missing the advanced metrics you expected for a particular competition, so you need to test xG availability before building your data model around it.

TheStatsAPI includes expected goals fields in its match stats, player match stats, and shotmap responses for supported competitions on every plan. Match-level xG is available through /football/matches/{match_id}/stats, player-level expected goals and expected assists through /football/matches/{match_id}/player-stats, and per-shot xG through /football/matches/{match_id}/shotmap.

Needapi-footballTheStatsAPI
Match xGVerify league-by-league before relying on it/football/matches/{match_id}/stats
Player xG / npxGVerify response coverage before relying on it/football/matches/{match_id}/player-stats
Expected assists (xA)Not a standard field to assume across core responses/football/matches/{match_id}/player-stats
Shot-level xGVerify endpoint and coverage before building around it/football/matches/{match_id}/shotmap

api-football Free Tier Limits (2026)

api-football has a real free plan, but it is built for testing rather than production. The free tier includes 100 requests per day. It is available directly through API-Football and through RapidAPI, which is useful if your team already manages API subscriptions there.

The important limit is the daily cap. One standings page, fixtures page, player lookup, and match details view can consume several requests per user session. A live polling workflow burns through the quota even faster: checking fixtures for 10 leagues every 5 minutes is 120 requests per hour, so the free plan is exhausted before the first hour is over. Treat the free tier as a way to inspect response shapes and prototype flows, not as capacity for a real user-facing app.

Quick Verdict

If you need live realtime odds and stats, historical player data, and simple monthly billing, TheStatsAPI is the stronger choice. If you want a free tier to prototype with or already prefer API-Football's daily quota model, API-Football has you covered there. Neither API is universally better - it depends on what you are building. Read on for the specifics.

FeatureTheStatsAPIAPI-Football
Starting price$50/monthFree tier available
Competitions80 (up to 1,196 on request)1,200+
Players tracked84,000+Large (not published)
Historical data10 yearsSeveral years
Rate limits (entry)30 req/min100 req/day (free)
Free trial7 days (all features)Free tier (100 req/day)
Real-time / liveLive odds and stats where available15-second updates
Data formatJSON RESTJSON REST
SupportEmailEmail
Request modelMonthly poolDaily quota

Coverage and League Depth

API-Football lists 1,200+ leagues and cups. TheStatsAPI ships with 80 competitions by default and can expand up to 1,196 on request, with 84,000+ players and 10 years of historical data. Once expanded, the raw numbers are close - both cover the Premier League, La Liga, Serie A, Bundesliga, Ligue 1, Champions League, and most second-tier European leagues.

The difference is depth. API-Football's coverage is uneven: top European leagues get full lineups, player statistics, and events, but smaller leagues (lower South American divisions, Southeast Asian leagues, some African cups) often return incomplete data - missing lineups, absent player-level stats, or no formation data. You may not get an error for this: missing coverage can still return a successful response with an empty array, so you have to check coverage flags per league yourself.

TheStatsAPI takes a different approach. Rather than listing every obscure cup and returning sparse data, it focuses on verified, complete datasets. If a competition is listed, you get consistent data across seasons - fixtures, player stats, team records, and historical match records going back 10 years.

Pricing and Value

Be clear-eyed about pricing. API-Football has a genuine free tier: $0/month with 100 requests per day. That is real, and it is useful for prototyping. TheStatsAPI has no free tier, but offers a 7-day free trial with full access to every endpoint.

The structural difference is daily quotas vs. monthly pools. API-Football caps you per day. TheStatsAPI gives you a monthly pool you can use however you want.

Why does this matter? Consider a common task: polling 10 leagues for live fixture updates every 5 minutes. That is 10 requests every 5 minutes = 120 requests per hour = 2,880 per day. API-Football's free tier (100/day) is burned in under 35 minutes. The Pro plan at $19/month (7,500/day) can cover that one polling job, but it leaves much less headroom once you add live match polling, user-triggered pages, backfills, and retries.

Now factor in live match polling. API-Football updates live scores every 15 seconds. Tracking a single match at that frequency costs 240 requests per hour. A full Saturday afternoon with 10 concurrent matches? That is 2,400 requests per hour. Daily caps punish bursty workloads.

TheStatsAPI's Starter plan at $50/month gives you 100,000 requests for the entire month - use them whenever you need. The Growth plan at $129/month bumps that to 500,000 requests with 60 req/min. The Scale plan at $379/month offers 5 million requests at 300 req/min. No daily caps, no artificial ceiling on busy days.

API-Football is cheaper at the entry level. TheStatsAPI gives more predictable headroom once you are past prototyping.

Developer Experience

Both APIs are REST-only, return JSON, and require no SDK. You can call either with fetch, axios, or curl. Neither offers official client libraries.

API-Football provides a dashboard with a live API tester - you can run queries in the browser and see results before writing code. This is helpful during evaluation. It is also available via RapidAPI, which some developers prefer for centralized API key management.

TheStatsAPI provides copy-paste code snippets in the docs for common queries. Setup is straightforward: sign up, get a key, make your first request.

Both offer email-only support. Neither has live chat or phone support.

One important developer gotcha with API-Football: missing coverage can return a successful response with an empty response array. This means your error handling needs to inspect the response body, not just the status code. If you are building automated pipelines, you need defensive checks on every response - otherwise you can silently ingest empty data without realizing coverage is missing.

Data Freshness and Real-Time

This is the biggest functional difference between the two APIs, so it deserves honesty.

API-Football updates live match data every 15 seconds. If you are building a live scores app, a real-time betting dashboard, or anything that needs in-game events as they happen, API-Football handles that. It is polling-based (no WebSocket), so you pull rather than subscribe, but the data is there at 15-second intervals.

TheStatsAPI provides live realtime odds and match stats for supported fixtures. Use the live endpoints during the match, then rely on finalized match statistics, player data, events, and xG after full time for settled analytics and historical records.

The practical difference is quota shape and data depth. API-Football is attractive if your product is built around constant live polling on a low-cost plan. TheStatsAPI is stronger when you want live context plus a deeper football analytics layer - historical player stats, xG, team form, and odds - without stitching together a second provider.

Which One Fits Your Use Case

Choose TheStatsAPI if you need:

  • Deep player statistics and performance data across seasons
  • Live realtime odds and match stats for supported fixtures
  • Historical data going back 10 years for trend analysis
  • A clean, consistent API where listed competitions have complete data
  • Simple monthly billing without worrying about daily quota resets
  • Fast setup with a 7-day free trial to validate your integration

Choose API-Football if you need:

  • A free tier to prototype and test before committing any budget
  • Access via RapidAPI for centralized billing across multiple APIs
  • Coverage of 1,200+ leagues including some niche competitions
  • A daily quota model that works for your access patterns

Frequently Asked Questions

Is TheStatsAPI cheaper than API-Football?

It depends on usage. API-Football starts at $0/month (free tier) and $19/month (Pro). TheStatsAPI starts at $50/month. However, API-Football uses daily quotas that reset every 24 hours, while TheStatsAPI uses monthly pools. For production workloads that need burst capacity - pulling data heavily on match days and less on off days - a monthly pool often works out more cost-effective. For light prototyping, API-Football's free tier is genuinely cheaper.

Does TheStatsAPI have a free plan?

No permanent free plan. TheStatsAPI offers a 7-day free trial with full access to every endpoint. This gives you enough time to build a proof of concept and validate that the data meets your needs before committing to a paid plan.

Which API has better historical data?

TheStatsAPI provides 10 years of historical data with 84,000+ players tracked across 80 competitions by default, with up to 1,196 competitions available on request. API-Football offers several years of historical data for most leagues, but depth varies by competition. For long-term trend analysis, season-over-season comparisons, or building historical datasets, TheStatsAPI has a clear advantage.

Can I switch from API-Football to TheStatsAPI?

Yes. Both APIs return JSON over REST, so the migration is mostly about updating endpoint URLs, adjusting response parsing to match the new schema, and swapping your API key. There is no vendor lock-in on either side. The 7-day free trial on TheStatsAPI lets you run both APIs in parallel during migration to verify data parity before switching over.

Which football API is best for fantasy apps?

For fantasy football applications, TheStatsAPI's deep player statistics, consistent coverage, live match stats, and 10 years of historical data make it well-suited for platforms that need reliable per-player performance metrics. Use live data for matchday context, then use finalized stats after full time for scoring and historical records.

Start building today

Ready to Power Your Sports App?

Start your 7-day free trial. All endpoints included on every plan.

Cancel anytime
7-day free trial
Setup in 5 minutes