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
2 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.