Football Stats API for Sports News & Media
Enrich your sports journalism with stats, player profiles, and match data. TheStatsAPI delivers structured football data across 80 competitions.
Sports publications that embed real data into their content outperform those that don't. A match report with an inline stat card showing a player's season numbers is more useful than one without. Team form and season-stat widgets save editorial time and keep readers on-site. TheStatsAPI gives your newsroom the structured football data to build these features - 84,000+ players, 80 competitions (with up to 1,196 available on request), and 10 years of history, all through a clean REST API.
Use Cases for Sports Media
Here is what editorial teams actually build with a football data API:
- Inline player stat cards - embed a player's season stats (goals, assists, appearances, minutes) directly into match reports and feature articles. Readers get context without leaving the page.
- Auto-generated match widgets - pull match results, events, and team stats to render post-match summaries that populate automatically. No manual data entry by journalists.
- Team performance tables - display form guides, home/away splits, and season-long trends. These modules drive repeat visits from fans tracking their club.
- Top scorers and assist leaders - dynamic leaderboard modules that update after each matchday. Place them on league pages or sidebars to keep content fresh without editorial effort.
- Head-to-head history - when two teams meet, show their historical record. This is the kind of contextual data that makes preview articles more authoritative.
These are not experimental features. They are table stakes for modern sports media. The question is whether you build them on reliable data or spend editorial cycles fact-checking and manually updating.
Key Data for Editorial Teams
The data points that matter most for sports journalism:
Player career stats - season-by-season breakdowns covering goals, assists, appearances, and disciplinary records. Use these to add depth to transfer stories, player profiles, and milestone coverage.
Recent form - a team's last five or ten matches, including results, goals scored, and goals conceded. The foundation of any pre-match preview.
Head-to-head history - historical results between two teams. Pull all previous meetings from 10 years of data to find the stat lines that make your preview stand out.
Team performance tables - current and historical team records, form guides, and season trends. Display them inline or as standalone widgets.
Match events - goals, assists, cards, and substitutions for every fixture. Populate post-match content automatically and let journalists focus on analysis instead of data entry.
Integration Approach for Your CMS
TheStatsAPI works with any content platform. The integration pattern is straightforward:
Server-side on publish or on schedule. Call the API from your backend when content is published or on a cron schedule. Cache the responses. Render the data into your templates. This keeps API calls predictable and your site fast.
Next.js and React. Fetch data in server components or API routes. Cache with ISR (Incremental Static Regeneration) or a data layer. Render stat cards and widgets as components that receive API data as props.
WordPress. Build custom blocks or shortcodes that pull data from TheStatsAPI on the server side. Cache responses in transients. Display stats inline within the block editor.
Headless CMS (Sanity, Contentful, Strapi). Use webhooks or scheduled functions to fetch data from TheStatsAPI and store it in your CMS as structured content. Reference it from editorial entries.
The pattern is always the same: fetch server-side, cache aggressively, render for the reader. TheStatsAPI's live odds and match stats support in-game coverage, while finalized match data typically settles within 1-2 hours after the final whistle for accurate reports and analysis.
Endpoint Highlights
Player Profiles
GET https://api.thestatsapi.com/api/football/players/{id}
Returns biographical and career data for a player. Name, nationality, position, current team, and identifiers. The starting point for player stat cards and profile pages.
Player Stats
GET https://api.thestatsapi.com/api/football/players/{id}/stats?season_id={season_id}
Returns season-level statistics organized into categories: scoring (goals, assists), shooting, passing, defending, duels, and discipline (cards). The season_id parameter is required (e.g. sn_7598). Embed these directly into articles or use them to generate automated stat lines.
Competition Details
GET https://api.thestatsapi.com/api/football/competitions/{id}
Returns competition metadata - name, country, and current season. Use /football/competitions/{competition_id}/seasons when you need the full season list for league landing pages and navigation.
Team Match History
GET https://api.thestatsapi.com/api/football/matches?team_id={id}
Returns a team's match history with results, scores, and opponents. Power recent form modules, head-to-head widgets, and season review features.
Player Search
GET https://api.thestatsapi.com/api/football/players?search=salah
Search for players by name. Useful for editorial tools where journalists look up a player to pull stats into an article.
Pricing
Most sports publications fit the Starter plan at $50/month. With server-side caching, 100,000 requests per month supports even high-traffic editorial sites - you are caching player stats and match data, not making API calls on every page view.
| Plan | Price | Requests/month | Rate Limit |
|---|---|---|---|
| Starter | $50/mo | 100,000 | 30/min |
| Growth | $129/mo | 500,000 | 60/min |
| Scale | $379/mo | 5,000,000 | 300/min |
Every plan includes a 7-day free trial and access to every endpoint. No feature gating.
FAQ
Can editorial staff access the data without writing code?
TheStatsAPI is a REST API, so the initial integration requires a developer. Once your engineering team has built the stat card components, match widgets, or CMS plugins, editorial staff interact with the data through your existing CMS workflow - no code required on their end.
How current is the data?
Live odds and match stats are available during eligible fixtures for in-game coverage. Finalized match data typically settles within 1-2 hours after the final whistle, so reports and next-day analysis can use verified events, player stats, team stats, and xG.
Can we use the data commercially in our publication?
Yes. All plans support commercial use. Whether your publication runs advertising, operates a subscription model, or syndicates content, you can use TheStatsAPI data in your editorial products without additional licensing fees.
Ready to Power Your Sports App?
Start your 7-day free trial. All endpoints included on every plan.