TheSportsDB Scraper avatar

TheSportsDB Scraper

Pricing

from $26.25 / 1,000 results

Go to Apify Store
TheSportsDB Scraper

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

ParseForge

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

0

Monthly active users

12 days ago

Last modified

Share

ParseForge

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 itWhat they scrape TheSportsDB for
Sports analystsPull league standings and match results to feed prediction models.
Fantasy sports developersGather player rosters and upcoming fixtures for app data.
Content creatorsCollect team badges, stadium info, and player bios for articles or videos.
Data journalistsTrack 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 neededUses the public TheSportsDB endpoint with no registration.
Multi-sport coverageWorks across soccer, basketball, NFL, NHL, MLB, and more.
Structured outputEvery record is a flat JSON row with consistent field names.
Flexible inputSearch 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.

FeatureParseForgeTheSportsDBTheSportsDB Scraper - Teams, Players & DataTheSportsDB Scraper
All Leagues listingYesNot listedNot listedNot listed
League Standings (lookup table)YesNot listedNot listedNot listed
Live Scores by sportYesNot listedNot listedNot listed
Events on a specific dateYesNot listedNot listedNot listed
Team Roster (all players on a team)YesNot listedNot listedNot listed
Player Search by nameYesYesYesYes
Team Search by nameYesYesYesYes

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 collectedApproximate 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

  1. Create a free Apify account with $5 in credit.
  2. Open the TheSportsDB Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

QuestionAnswer
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.
  • 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.