
Sports Data Scraper
hipersoft/thesportsdb-scraper
Fetch sports teams, fixtures, results and players from TheSportsDB across football, basketball, NFL, NHL and many more leagues. One clean row per team, event or player with names, leagues, scores, venues and stats. Fast and reliable for sports apps, stats dashboards and n8n.
Total users
2Monthly users
1Total runs
69Per item scraped
$0.001Last rebuilt
Oct 28, 2026Overview
Sports Data Scraper pulls teams, fixtures, past results and player profiles across football (soccer), basketball, American football, ice hockey, baseball and many more leagues worldwide — all as clean, structured data. Search teams or players by name, list every team in a league, and fetch upcoming fixtures or recent results for any team. Export to JSON, CSV, Excel or XML. Fast, reliable, and built for sports apps, stats dashboards, fantasy tools and automation workflows.
What does this Sports Scraper do?
Pick a mode, add a couple of parameters, and it returns every matching record as structured data:
- Search teams by name (e.g.
Arsenal) — get the club, its league, sport, stadium, country, year formed and badge. - League teams — list every team in a league by id or name.
- Next events — upcoming fixtures for a team.
- Past events — recent results and scores for a team.
- Search players by name — position, team, nationality and more.
- Leagues — list all supported leagues with their ids.
What data can you get?
| Data point | Description |
|---|---|
| Team | name, shortName, alternateNames, sport, league, formedYear |
| Venue | stadium, stadiumCapacity, location, country |
| Branding | badge, logo, website |
| Fixture / result | name, date, homeTeam, awayTeam, homeScore, awayScore, venue, season, round |
| Player | name, team, position, nationality, dateBorn, status |
| League | leagueId, name, sport |
What you get
Each team, event, player or league is one clean dataset record. Export the full table to JSON, CSV, Excel or XML, or pull it programmatically.
{
"mode": "searchTeams",
"recordType": "team",
"teamId": "133604",
"name": "Arsenal",
"shortName": "ARS",
"sport": "Soccer",
"league": "English Premier League",
"leagueId": "4328",
"formedYear": 1892,
"stadium": "Emirates Stadium",
"stadiumCapacity": 60338,
"location": "Holloway, London, England",
"country": "England",
"badge": "https://.../arsenal/badge.png"
}
Output schema
Fields below are for the searchTeams / leagueTeams modes. The event and player modes return their own record shapes (fixtures/results and player profiles respectively), and each row carries a recordType so you can tell them apart.
| Field | Type | Description |
|---|---|---|
mode |
string | The mode that produced the record. |
recordType |
string | team, event, player or league. |
teamId |
string | Unique identifier for the team. |
name |
string | Team name (e.g. "Arsenal"). |
shortName |
string | Short code (e.g. "ARS"). |
sport |
string | Sport the team plays (e.g. "Soccer"). |
league |
string | Primary league name. |
leagueId |
string | Numeric league identifier. |
formedYear |
integer | Year the team was founded. |
stadium |
string | Home stadium or arena. |
stadiumCapacity |
integer | Stadium capacity. |
location |
string | City / area of the club. |
country |
string | Country the team belongs to. |
badge |
string | URL of the team badge image. |
Use cases
- Build league tables and team directories for a sports site or app.
- Pull upcoming fixtures into a schedule or calendar.
- Backfill recent results and scores for a stats or analytics dataset.
- Enrich fantasy and betting tools with player positions and nationalities.
- Feed team badges and metadata into a media dashboard.
How to use the Sports Data Scraper
- Add the Sports Data Scraper to your Apify account and open its input.
- Choose a mode: searchTeams, leagueTeams, nextEvents, pastEvents, searchPlayers or leagues.
- Fill the matching parameter —
queryfor searches,leagueId/leagueNamefor league teams, orteamIdfor events. - Click Run.
- Export the results as JSON, CSV, Excel or XML, or pull them via the Apify API.
Input
{
"mode": "searchTeams",
"query": "Arsenal"
}
| Field | Description |
|---|---|
mode |
searchTeams, leagueTeams, nextEvents, pastEvents, searchPlayers or leagues. |
query |
Team or player name for the search modes. |
leagueId |
Numeric league id for leagueTeams (e.g. 4328). |
leagueName |
League name for leagueTeams when you do not have the id. |
teamId |
Numeric team id for nextEvents and pastEvents. |
Tip: chaining modes
Don't know an id? Run leagues to list league ids, searchTeams (or leagueTeams) to get team ids, then feed a teamId into nextEvents or pastEvents for fixtures and results.
Need more sports & media data?
- ESPN Sports Scraper — live scores, teams, standings and news.
- TVmaze Scraper — TV shows, episodes and cast data.
- Google News Scraper — news headlines and articles by keyword.
FAQ
Which sports and leagues are covered?
Football (soccer), basketball, American football, ice hockey, baseball, motorsport and many more, across leagues worldwide. Run the leagues mode to see the full list with ids.
How do I find a team or league id?
Run searchTeams or leagueTeams to get team ids, and leagues to get league ids. You can also pass leagueName and let the scraper resolve the id for you.
What export formats are supported? JSON, CSV, Excel and XML, plus programmatic access through the Apify API.
How does billing work? You pay per item you get, so cost scales with the number of records you actually collect. See the Pricing tab for current rates.
Can I use this with n8n?
Yes. Run the Sports Data Scraper from n8n with the Apify node — trigger a run, pass your mode and parameters, and read the dataset items straight into your workflow. It also works with Make, Zapier and the Apify API.
Can I connect this to other tools? The Sports Data Scraper connects with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Original clean-room implementation. Reads only publicly available sports information. Not affiliated with, endorsed by or connected to TheSportsDB or any league, team or competition.
Input
| Field | Type | Description |
|---|---|---|
modeMode | string · searchTeams, leagueTeams, nextEvents, pastEvents, searchPlayers, leagues | What to fetch: searchTeams (find teams by name), leagueTeams (all teams in a league), nextEvents (upcoming fixtures for a team), pastEvents (recent results for a team), searchPlayers (find players by name), or leagues (list all supported leagues). Default: "searchTeams" |
queryQuery (team or player name) | string | Search term used by searchTeams and searchPlayers. For example "Arsenal" for a team, or "Danny Welbeck" for a player. |
leagueIdLeague ID | string | Numeric league id used by leagueTeams (e.g. 4328 for the English Premier League). Run the leagues mode first to look ids up. Takes priority over League name if both are set. |
leagueNameLeague name | string | League name used by leagueTeams when you do not have the id (e.g. "English Premier League"). Resolved to an id automatically. Ignored if League ID is set. |
teamIdTeam ID | string | Numeric team id used by nextEvents and pastEvents (e.g. 133604 for Arsenal). Run searchTeams or leagueTeams first to look ids up. |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~thesportsdb-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Arsenal",
"leagueId": "4328",
"leagueName": "English Premier League",
"teamId": "133604"
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/thesportsdb-scraper").call(run_input={
"query": "Arsenal",
"leagueId": "4328",
"leagueName": "English Premier League",
"teamId": "133604"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/thesportsdb-scraper').call({
"query": "Arsenal",
"leagueId": "4328",
"leagueName": "English Premier League",
"teamId": "133604"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Item Scraped Charged per sports item. | $0.001 | $0.0005 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.