
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Scrape ESPN scores, schedules and results for NBA, NFL, MLB, NHL, college sports, MLS, Premier League, LALIGA, Champions League and 25+ more leagues. Filter by date, team, status and TV network. Scores, records, venue, broadcasts and betting lines. No login needed.
Get live scores, schedules and final results from ESPN for the NBA, NFL, MLB, NHL, college sports, MLS, the Premier League, LALIGA, the Champions League and 25+ more leagues, in one run. Each game comes with its status, both teams with scores and records, the venue, TV networks and the betting line. It reads ESPN's public scoreboard data directly, so it is fast and cheap and needs no login or API key.
soccer/bel.1.| Field | What it does |
|---|---|
leagues | League codes, e.g. nba, nfl, mlb, nhl, ncaaf, ncaam, epl, laliga, ucl, mls |
dateMode | today, tomorrow, yesterday, thisWeek, thisWeekend, next7Days, last7Days, single, range |
date / startDate / endDate | Days as YYYYMMDD or YYYY-MM-DD |
maxResults | Stop after this many games (earliest first); 0 = all |
teams, homeAwayFilter | Team abbreviations or names; home or away only |
gameStatus, liveOnly, startingWithinHours | pre / in / post; live now; starting soon |
nationalTvOnly, networkFilter | National TV only; networks such as ESPN, ABC, TNT |
customLeagues | Any ESPN league as sport/league, e.g. soccer/bel.1 |
collegeScope, language, timezone | All D-I/FBS games or Top 25; en/es/pt; output timezone |
{
"leagues": ["nba", "epl"],
"dateMode": "range",
"startDate": "20261010",
"endDate": "20261020",
"teams": ["LAL", "ARS"],
"timezone": "Europe/London",
"maxResults": 0
}
One row per game:
| Field | Description |
|---|---|
gameId, league, leagueName, sport | IDs and league |
date, dateLocal | Start time in UTC and in your timezone |
name, shortName | Boston Celtics at Detroit Pistons, BOS @ DET |
status | state (pre, in, post), description, detail, clock, period, completed |
homeTeam, awayTeam | id, name, abbreviation, score, record, rank, winner, linescores, logo, color |
venue | name, city, state, country, indoor |
broadcasts, nationalBroadcasts | TV networks and streams |
odds | provider, details, spread, overUnder, homeMoneyline, awayMoneyline (when ESPN shows a line) |
season, seasonType, week, neutralSite, conferenceGame, attendance, notes, headline, gameUrl | Context and links |
{
"gameId": "401909088",
"sport": "basketball",
"league": "nba",
"leagueName": "NBA",
"date": "2026-10-20T19:00Z",
"dateLocal": "2026-10-20T15:00:00-04:00",
"name": "Boston Celtics at Detroit Pistons",
"shortName": "BOS @ DET",
"status": {"state": "post", "description": "Final", "detail": "Final", "shortDetail": "Final", "clock": "0.0", "period": 4, "completed": true},
"homeTeam": {"id": "8", "name": "Detroit Pistons", "abbreviation": "DET", "score": 121, "shortName": "Pistons", "location": "Detroit", "nickname": "Pistons", "winner": true, "record": "1-0", "rank": null, "linescores": [27, 18, 37, 39], "logo": "https://a.espncdn.com/i/teamlogos/nba/500/scoreboard/det.png", "color": "#1d428a"},
"awayTeam": {"id": "2", "name": "Boston Celtics", "abbreviation": "BOS", "score": 113, "shortName": "Celtics", "location": "Boston", "nickname": "Celtics", "winner": false, "record": "0-1", "rank": null, "linescores": [28, 30, 30, 25], "logo": "https://a.espncdn.com/i/teamlogos/nba/500/scoreboard/bos.png", "color": "#008348"},
"venue": {"name": "Little Caesars Arena", "city": "Detroit", "state": "MI", "country": null, "indoor": true},
"broadcasts": ["NBC"],
"nationalBroadcasts": ["NBC"],
"odds": null,
"season": 2027,
"seasonType": "regular-season",
"week": null,
"neutralSite": false,
"conferenceGame": false,
"attendance": 20178,
"notes": null,
"headline": "NBA season tips off with Pistons rallying to beat Celtics 121-113",
"gameUrl": "https://www.espn.com/nba/game/_/gameId/401909088/celtics-pistons",
"scrapedAt": "2026-10-21T00:11:02+00:00"
}
You pay $0.80 per 1,000 games saved, plus the small platform usage of the run (compute and datacenter proxy traffic; about $0.0003 for a one-day, six-league run in our tests). Example: 1,000 games ≈ $0.80 plus usage. Runs that find no games cost only the usage.
Is it legal to scrape ESPN? The actor reads the public scoreboard data that ESPN shows to every visitor, without logging in. Check that your use of the data fits ESPN's terms and the laws that apply to you.
Do I need an ESPN account, API key or proxy? No account and no key. Datacenter proxies are on by default and work well.
How many games can I get? As many as ESPN lists for the dates you choose. In our tests a weekday of six US leagues returned 14 games, one Saturday of FBS college football 52, and a full NBA, NHL, NFL and MLB season 5,738. Set Maximum games to 0 for all of them.
Why are some fields empty? ESPN only fills some data at certain times: scores and the clock once a game starts, odds before it starts and only for some leagues, attendance after it ends. Empty values are null.
What does "today" mean? The day in your chosen timezone (America/New_York by default). ESPN groups games by US Eastern day, so late-night games show up on the Eastern date.
Can I schedule it or use the API? Yes. Schedule runs (for example every 5 minutes with Live games only), call it over the API, or connect it to your integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
leaguesarrayOptionalLeagues
Leagues to fetch games from. Add more leagues with Custom leagues below.
dateModeenumOptionaldefault "today"Dates
Which days to fetch. Days follow the output timezone. 'Single date' uses Date; 'Date range' uses Start date and End date.
datestringOptionalDate
For 'Single date': the day, as YYYYMMDD or YYYY-MM-DD (e.g. 20261018).
startDatestringOptionalStart date
For 'Date range': first day, YYYYMMDD or YYYY-MM-DD. Ranges up to 400 days (a full season) are supported.
endDatestringOptionalEnd date
For 'Date range': last day, YYYYMMDD or YYYY-MM-DD.
maxResultsintegerOptionaldefault 20Maximum games
Stop after this many games (earliest first). Use 0 for every game that matches.
Narrow the games by team, status, start time and TV network.
teamsarrayOptionalTeams
Only games with these teams. Use ESPN abbreviations (LAL, NYK, KC, ARS) or names (Lakers, Arsenal). Leave empty for all teams.
homeAwayFilterenumOptionaldefault "all"Home or away
With Teams set: only their home games, only their away games, or both.
gameStatusarrayOptionalGame status
Keep games in these states. Leave empty for all.
liveOnlybooleanOptionaldefault falseLive games only
Only games in progress right now. Ignores the date setting.
startingWithinHoursintegerOptionalStarting within hours
Only games that start in the next N hours (1-72). Ignores the date setting.
nationalTvOnlybooleanOptionaldefault falseNational TV only
Only games on a national broadcast in the US.
networkFilterarrayOptionalTV networks
Only games on these networks or streams (e.g. ESPN, ABC, TNT, Peacock). Case-insensitive, partial names match.
More leagues, college coverage, language and timezone.
customLeaguesarrayOptionalCustom leagues
Any other ESPN league as sport/league (e.g. soccer/bel.1, soccer/tur.1, basketball/nba-summer-las-vegas) or an ESPN scoreboard link.
collegeScopeenumOptionaldefault "all"College games
For NCAA basketball and football: every Division I / FBS game, or only ESPN's featured Top 25 scoreboard.
languageenumOptionaldefault "en"Language
Language of status texts and names, where ESPN translates them.
timezonestringOptionaldefault "America/New_York"Timezone
IANA timezone for dateLocal and for 'today' (e.g. America/New_York, America/Los_Angeles, Europe/London).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for ESPN and are the cheapest option.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| gameId | any | ESPN game ID |
| sport | any | Sport (basketball, football, soccer, ...) |
| league | any | League code |
| leagueName | any | League name |
| date | any | Start time (UTC, ISO 8601) |
| dateLocal | any | Start time in the chosen timezone |
| name | any | Game name, e.g. Boston Celtics at Detroit Pistons |
| shortName | any | Short name, e.g. BOS @ DET |
| status | any | state (pre, in, post), description, detail, clock, period, completed |
| homeTeam | any | Home team: id, name, abbreviation, score, record, rank, winner, linescores, logo, color |
| awayTeam | any | Away team: same fields as homeTeam |
| venue | any | Venue name, city, state, country, indoor |
| broadcasts | any | TV networks and streams |
| nationalBroadcasts | any | National US broadcasts |
| odds | any | Betting line: provider, details, spread, overUnder, home and away moneyline (when ESPN shows one) |
| season | any | Season year |
| seasonType | any | Season type, e.g. regular-season |
| week | any | Week number (football) |
| neutralSite | any | Played at a neutral site |
| conferenceGame | any | Conference game (college) |
| attendance | any | Attendance |
| notes | any | Game notes, e.g. playoff round |
| headline | any | Recap or preview headline |
| gameUrl | any | ESPN game page |
| scrapedAt | any | When the row was scraped (UTC) |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Game | One game saved to the dataset (score, status, teams, venue, TV and odds). | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/espn-scraper').call({
"leagues": [
"nba",
"nfl",
"mlb",
"nhl",
"epl",
"mls"
],
"dateMode": "today",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/espn-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/espn-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Date range across NBA and Premier League, filtered to two teams.
Premier League, LALIGA, Bundesliga, Serie A and Ligue 1 results for a single day, Berlin time.
One NBA date filtered to national broadcasts and final scores.
All FBS games on a Saturday, limited to 10.
A built-in league plus a custom ESPN league path, with Spanish status texts.
The next 10 games across NBA, NHL, MLB, NFL and Premier League.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.