Soccer Live Scores & Results – 200+ Leagues, Fixtures & Odds avatar

Soccer Live Scores & Results – 200+ Leagues, Fixtures & Odds

Pricing

from $1.00 / 1,000 matches

Go to Apify Store
Soccer Live Scores & Results – 200+ Leagues, Fixtures & Odds

Soccer Live Scores & Results – 200+ Leagues, Fixtures & Odds

ESPN soccer scores for 200+ leagues: live/scheduled/finished matches, goals with scorers, red cards, and matched Kalshi exchange odds (home/away/draw). No login, no proxy.

Pricing

from $1.00 / 1,000 matches

Rating

0.0

(0)

Developer

Rowfeed

Rowfeed

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Get live soccer scores, finished results and upcoming fixtures as one clean JSON row per match: goals with scorers, red cards, and Kalshi exchange odds (home/away/draw) joined in. Built for score-tracking bots, sports dashboards and AI agents that need current soccer data without a login, an API key or a headless browser. Sourced straight from ESPN's own public scoreboard API - the same data that powers espn.com/soccer - across 200+ leagues and cups worldwide, so results and goal times are accurate as soon as ESPN has them.

What you get

  • One row per match - kickoff time, live/scheduled/finished status (with the live match clock and a best-effort halftime score), home/away teams with score and winner, venue and attendance.
  • Goals and red cards - every goal's minute, scoring team and scorer name (plus own-goal/penalty flags), and every red card's minute, team and player - pulled straight from ESPN's match detail feed, no extra requests.
  • Kalshi odds joined in - for English Premier League, Champions League, La Liga, Serie A, Bundesliga, Ligue 1 and MLS, each upcoming or live match gets Kalshi's home/away/draw YES-ask prices and vig-removed probabilities while the market is trading, matched by team name and kickoff date. No match found, an ambiguous one, or a market Kalshi has already settled (a settled market has no price left) simply means kalshi: null - this Actor never guesses a price onto the wrong fixture.
  • 200+ leagues - top domestic leagues, continental cups (Champions League, Europa League) and more, resolved live from ESPN's own league list every run. Filter to a handful of leagues or sweep everything with "all".

Sample row

One real row from a default run (includeKalshi: true):

{
"match_id": "761830",
"league": { "slug": "usa.1", "name": "MLS" },
"season_year": 2026,
"season_slug": "regular-season",
"kickoff": "2026-09-26T23:30Z",
"status": "STATUS_SCHEDULED",
"status_detail": "Sat, September 26th at 7:30 PM EDT",
"minute": null,
"home": { "name": "Atlanta United FC", "abbreviation": "ATL", "score": 0.0, "winner": false },
"away": { "name": "New York City FC", "abbreviation": "NYC", "score": 0.0, "winner": false },
"halftime_score": null,
"goals": [],
"red_cards": [],
"venue": "Mercedes-Benz Stadium",
"attendance": 0,
"kalshi": {
"event_ticker": "KXMLSGAME-26SEP26ATLNYC",
"home_yes_ask": 0.43,
"away_yes_ask": 0.32,
"draw_yes_ask": 0.26,
"probabilities": { "home": 0.4271, "away": 0.3166, "draw": 0.2563 },
"url": "https://kalshi.com/markets/kxmlsgame"
},
"scraped_at": "2026-09-25T08:59:15+00:00",
"url": "https://www.espn.com/soccer/match/_/gameId/761830/new-york-city-fc-atlanta-united-fc"
}

A finished match carries real goals entries too, for example: {"minute": "57'", "team": "Liverpool", "scorer": "Alexander Isak", "own_goal": false, "penalty": false}.

Filters

InputDefaultWhat it does
leagues["eng.1","esp.1","ger.1","ita.1","fra.1","uefa.champions","usa.1"]ESPN league slugs (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, Champions League, MLS). Use "all" to sweep every league ESPN covers (219 measured 25.09.2026) - slower, and most contribute zero rows on a given day. An unknown slug fails the run with a helpful error listing real examples.
dateFrom / dateTo"" / ""YYYY-MM-DD. Both empty = today through 2 days ahead (most leagues don't play every day, so a single-day default would often be empty). Set dateFrom alone to pin one specific day. Capped at 31 days.
statusallall, live, upcoming or finished.
includeKalshitrueJoin Kalshi 3-way odds for the 7 leagues Kalshi lists (see above). Off skips those requests entirely.
maxMatches500Cap on rows (1-2000). Each row is one charged match event.

Leagues or date ranges with nothing scheduled simply contribute zero rows - not an error.

Pricing

Pay per event, no subscription: $1 per 1,000 matches and $1 per 1,000 run starts. A run that finds nothing for your filters (e.g. an off day for that league) still succeeds with zero charged rows - you only pay for matches actually returned.

Details

  • Source: ESPN's public site API (site.api.espn.com) and core API (sports.core.api.espn.com) for the league list. No authentication, no proxies, no browser. Not affiliated with ESPN or Kalshi.
  • Kalshi join: matched by normalised team name (either side, diacritics-insensitive) and kickoff date within a 30-hour window via Kalshi's public trade API (api.elections.kalshi.com). Only markets still trading are used. Zero or more than one candidate match means kalshi: null - never a guess. kalshi.url is a link to Kalshi's market page for people in a browser; Kalshi's website turns away scripts, so fetch prices through this Actor rather than that page.
  • Halftime score: derived from the goal timeline (ESPN's scoreboard has no halftime field of its own), so it is null until a match reaches the second half and whenever it can't be derived with confidence.
  • Reliability: 429 and 5xx responses retry with exponential backoff (5 tries), a 200 without the expected data counts as a failure, and one league's outage never stops the run - it becomes an uncharged error row and the rest continues. A run fails only when it returned zero rows and a request genuinely failed; a quiet day with no matches is a successful run with zero charged rows.
  • Run stats: the STATS record in the run's key-value store holds matches, Kalshi-matched count, error rows, leagues swept, request and error counts per category.
  • Output: one dataset row per match. Export as JSON, CSV or Excel, fetch through the Apify API, or schedule runs and pipe them into Google Sheets, Make, Zapier, n8n or your own code. Eligible for agentic use via Apify's MCP server.