TheSportsDB Scraper
Pricing
from $26.25 / 1,000 results
TheSportsDB Scraper
Scrapes teams, players, leagues, events, and live scores from TheSportsDB. Returns each record as a flat row with names, badges, stadiums, and season details.
Pricing
from $26.25 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
0
Monthly active users
12 days ago
Last modified
Categories
Share
TheSportsDB Scraper
Scrape teams, players, leagues, and match data from TheSportsDB, up to a million records per run. Every record comes with names, badges, stadiums, and season details. No API key required. Export to CSV, JSON, Excel, or XML.
TheSportsDB is a free, crowd-sourced sports database covering football, basketball, hockey, American football, and more. This Actor reads its public API directly, so you can pull structured team rosters, league standings, upcoming fixtures, and player profiles without writing a single line of code. It handles the pagination and rate limits for you, returning clean, flat rows ready for analysis.
| Who uses it | What they scrape TheSportsDB for |
|---|---|
| Sports analysts | Pull league standings and match results to feed prediction models. |
| Fantasy sports developers | Gather player rosters and upcoming fixtures for app data. |
| Content creators | Collect team badges, stadium info, and player bios for articles or videos. |
| Data journalists | Track season-long team performance and historical match outcomes. |
What it does
This Actor collects sports data from TheSportsDB by league, team, player, or date, and returns each record as a flat row.
- โฝ All Leagues: fetch every league available in the database.
- ๐ Team Search: find teams by name and get their ID, badge, league, and stadium.
- ๐ค Player Search: look up players by name across all sports.
- ๐ Team Roster: get every player on a specific team's current squad.
- ๐ Upcoming Events: list the next 15 matches for a league.
- โช Past Events: retrieve the last 15 results for a league.
- ๐ League Standings: pull the current table for a league and season.
- ๐ Live Scores: get real-time scores for a sport.
- ๐๏ธ Events on a Day: grab all matches scheduled for a specific date.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with TheSportsDB data
๐ Build a league dashboard.
A data analyst pulls the current Premier League standings and the last 15 results to update a weekly performance dashboard.
โฝ Populate a fantasy football app.
A developer runs the Team Roster mode for all 20 Premier League teams to seed a player database with names, positions, and thumbnails.
๐ฐ Automate match previews.
A sports blogger fetches upcoming events for La Liga every Friday to auto-generate a weekend preview post.
๐ Track live scores.
A fan community runs the Live Scores mode for NHL games to power a real-time scoreboard on their website.
Why choose this scraper
| What you get | |
|---|---|
| No API key needed | Uses the public TheSportsDB endpoint with no registration. |
| Multi-sport coverage | Works across soccer, basketball, NFL, NHL, MLB, and more. |
| Structured output | Every record is a flat JSON row with consistent field names. |
| Flexible input | Search by team name, player name, league ID, or date. |
How it compares
This Actor covers every public TheSportsDB endpoint in one tool, while most competitors focus on a subset of modes like team and player search.
| Feature | ParseForge | TheSportsDB | TheSportsDB Scraper - Teams, Players & Data | TheSportsDB Scraper |
|---|---|---|---|---|
| All Leagues listing | Yes | Not listed | Not listed | Not listed |
| League Standings (lookup table) | Yes | Not listed | Not listed | Not listed |
| Live Scores by sport | Yes | Not listed | Not listed | Not listed |
| Events on a specific date | Yes | Not listed | Not listed | Not listed |
| Team Roster (all players on a team) | Yes | Not listed | Not listed | Not listed |
| Player Search by name | Yes | Yes | Yes | Yes |
| Team Search by name | Yes | Yes | Yes | Yes |
Configure the run
Drive the Actor by selecting a mode and filling in the relevant team name, league ID, sport, or date. Filters run as each request is made so only matching records reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"mode": "leagues","maxItems": 10}
A larger pull:
{"mode": "leagues","maxItems": 200}
Pricing
Pay-per-result: $0.035 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $3.50 |
| 1,000 results | $35.00 |
| 10,000 results | $350.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the TheSportsDB Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to TheSportsDB through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/thesportsdb-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
I get an empty dataset when searching for a team.
Check the spelling of the team name. The search is exact on the string you provide. Try a shorter, partial name if the full name returns nothing.
The Actor returns fewer records than my maxItems setting.
The public TheSportsDB API returns a fixed number of items per call, often 10 to 15. The Actor stops when the source has no more data, regardless of the maxItems value.
Live Scores mode returns no data.
Ensure the sport name matches TheSportsDB's format exactly, for example 'Soccer' not 'soccer' or 'football'. Also, live scores are only available when matches are actively being played.
I don't know the League ID for my league.
Run the Actor once in 'All Leagues' mode. The output will list every league with its ID. Copy the ID from that dataset for use in other modes.
The date filter in Events on a Day mode is not working.
The date must be in the exact format YYYY-MM-DD, for example '2025-05-14'. Any other format will cause the request to fail or return no results.
FAQ
| Question | Answer |
|---|---|
| Do I need an API key or a Patreon subscription? | No. This Actor uses the free public tier of TheSportsDB, which does not require an API key. Results per request are limited by the source, typically 10 to 15 records. |
| What sports are supported? | TheSportsDB covers Soccer, Basketball, American Football, Ice Hockey, Baseball, Motorsport (F1), and more. Use the sport name exactly as it appears on the site, like 'Soccer' or 'Ice_Hockey'. |
| How do I find a League ID? | Run the Actor in 'All Leagues' mode first. The resulting dataset will include the league ID for every competition, which you can then use in other modes. |
| Can I get historical match data from past seasons? | The 'Past Events' mode returns the last 15 completed matches for a league. For deeper historical data, you would need a paid TheSportsDB plan, which this Actor does not currently support. |
| What format does the data export to? | You can export your dataset to CSV, JSON, Excel, or XML directly from the Apify platform. |
| How many records can I scrape in one run? | You can set the maximum records up to 1,000,000. The actual number returned depends on the mode and the data available on TheSportsDB. |
| Why am I only getting 10 to 15 results? | The public TheSportsDB API limits responses to a small number of items per request. This is a restriction of the source, not the Actor. |
| Can I search for a player by partial name? | Yes. The 'Player Search' mode accepts partial names. Searching 'Messi' will return Lionel Messi and any other player whose name contains that string. |
| What is the 'Events on a Day' mode? | It returns all matches scheduled for a specific date across a chosen sport. You provide a date in YYYY-MM-DD format and the sport name. |
| Does this Actor update data in real time? | The 'Live Scores' mode fetches scores as they are available on TheSportsDB. The data is as real-time as the source provides. |
Related actors
- thesportsdb-scraper: Use this same Actor if you need a different mode. It covers all public TheSportsDB endpoints.
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by TheSportsDB.com. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
