ESPN Sports Scores, Schedules, Standings, Odds & News
Pricing
$1.00 / 1,000 stored row (game, standing, team or article)s
ESPN Sports Scores, Schedules, Standings, Odds & News
Pricing
$1.00 / 1,000 stored row (game, standing, team or article)s
Rating
0.0
(0)
Developer
Arthur
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
22 days ago
Last modified
Categories
Share
Get scores, schedules, results, betting lines, standings, team directories and news for the major US and European leagues straight from ESPN's public JSON endpoints — the same data the ESPN site and app show. One run covers any mix of leagues and any date window. No API key, no browser, no proxies; runs take seconds and cost a fraction of a cent per row.
Covered: NBA, WNBA, NFL, MLB, NHL, college basketball & football, Premier League, La Liga, Bundesliga, Serie A, Ligue 1, Eredivisie, MLS, Champions League, Europa League, World Cup, ATP/WTA tennis, PGA/LPGA golf — plus any other ESPN league via an explicit sport/league path (UFC, F1, cup competitions, …).
Typical uses: sports betting models and odds tracking, live score widgets and Discord/Slack bots, fantasy tools, results archives and datasets for analysis or LLMs, schedule feeds for calendars, news monitoring per league.
What you get
scoreboard → one game row per fixture (tennis: one match row per match; golf: one tournament row with the leaderboard):
| field | description |
|---|---|
league, sport, league_name, event_id, date (UTC ISO), name, short_name | Identity — e.g. Tampa Bay Rays at Detroit Tigers, TB @ DET |
status, status_state, status_detail, completed, period, clock | STATUS_SCHEDULED / STATUS_IN_PROGRESS / STATUS_FINAL, pre/in/post, Final, Q3 4:12, 90'+6' |
home_team, home_team_name, home_team_id, home_score, home_winner, home_record, home_form, home_logo, home_linescores | Home side; same set for away_*. home_form = last-5 results in soccer; linescores = per period/inning/set |
spread, over_under, moneyline_home, moneyline_away, moneyline_draw, odds_details, odds_provider | Betting lines (DraftKings via ESPN) — present for upcoming and live games, null after the final whistle |
venue, venue_city, venue_state, venue_country, attendance, neutral_site | Venue |
season_year, season_type, week, broadcasts, headline, url | Context: regular-season/postseason, NFL week, TV networks, ESPN recap headline, ESPN game page |
standings → one standing row per team: group (conference/division/table), rank, team, abbreviation, wins, losses, ties, ot_losses, win_percent, games_played, games_behind, points, points_for, points_against, point_differential, streak, home_record, away_record, last_ten, playoff_seed, note (e.g. "Champions League" qualification zone) plus stats / stats_display objects with every stat ESPN publishes for that league.
teams → one team row per team: team_id, abbreviation, display_name, short_name, location, name, color, alternate_color, logo, is_active, url.
news → one news row per article: article_id, headline, description, published, last_modified, kind (Story/Media/…), byline, premium, url, image, categories.
Unknown league codes or endpoints ESPN does not serve return a type: "error" row (free) and the run continues.
Export as JSON, CSV or Excel, or push rows to Google Sheets, Make, Zapier, webhooks or your code through the Apify API.
Input
| field | default | meaning |
|---|---|---|
leagues | — | nba, nfl, mlb, nhl, wnba, ncaab, ncaaf, atp, wta, pga, soccer codes like eng.1, esp.1, ger.1, ita.1, ned.1, usa.1, uefa.champions, aliases (epl, laliga, mls, ucl), or explicit paths like soccer/eng.fa, mma/ufc |
dataTypes | ["scoreboard"] | any of scoreboard, standings, teams, news |
dateFrom, dateTo | today | scoreboard window (UTC days, inclusive); past = results, future = schedule + lines |
maxItems | 500 | hard cap on stored rows across everything |
maxNewsPerLeague | 25 | articles per league for news |
Example — NFL week-1 schedule with lines, plus current NBA and Premier League tables:
{"leagues": ["nfl", "nba", "eng.1"],"dataTypes": ["scoreboard", "standings"],"dateFrom": "2026-09-10","dateTo": "2026-09-15","maxItems": 1000}
Schedule the actor (every 5–15 minutes on match days) and deduplicate on event_id to build a live feed; status_state tells you whether a game is pre, in or post.
Pricing
Pay per event: $0.001 per stored row ($1 per 1,000 games, standings lines, teams or articles). Error rows are free. Apify platform usage (a few seconds of compute per run) is billed separately by Apify.
Limitations — please read
- ESPN's public endpoints are undocumented; field availability varies by league (e.g. no
over_underfor golf, noattendancefor soccer in some leagues, no standings for tennis/golf/MMA). Rows containnullwhere ESPN has no value. - Betting lines come from one provider (currently DraftKings) as shown on ESPN, only for upcoming/live games. Not every league has lines.
- One request per league per day in the window; a 365-day window for 5 leagues is ~1,800 requests (≈ 15 minutes at the polite rate this actor uses). Tennis matches are filtered to the window; golf returns the tournaments active in it.
- Player-level box scores, play-by-play and injuries are not included (open an issue if you need them).
Not affiliated with ESPN. Uses only publicly accessible endpoints; data is for informational use — check ESPN's terms for redistribution.