Live Sports Scores API avatar

Live Sports Scores API

Pricing

$0.05 / 1,000 games

Go to Apify Store
Live Sports Scores API

Live Sports Scores API

Get current, upcoming, and completed game scores across supported leagues and sports. Search competitions by date, status, or team, or request details for known event IDs. Receive normalized game data with teams, scores, live context, odds, and source links when available.

Pricing

$0.05 / 1,000 games

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🏟️ Build a live sports scores API

For sports app builders, analysts, and automation teams, Live Sports Scores API returns one normalized game row for each saved game. Search supported leagues and competitions by date, recent date window, status, and team, or request an identified game by source event ID. Read teams, scores, competition context, live context, odds, optional match details, and source links in a dataset built for programmatic access.

📦 Normalized game rows

What you get

Each saved row uses one normalized game shape. It can include the event ID, sport, competition and season, home and away teams, start time, status, scores, live context, venue, odds, requested match details, and source data when available. Scores are absent before play begins, and optional values are not filled with guesses.

▶️ Search leagues or inspect known games

  1. Set findBy to competition for a league or competition search, or to eventId for identified games.
  2. For a competition search, enter one or more supported competition names or IDs. Add a date, status, and optional team names or IDs.
  3. For an identified-game request, enter one or more source event IDs. Fields for the other choice are ignored.
  4. Add a supported language code when you want localized team names and labels.
  5. Leave maxItems empty to return all available results until the source is exhausted, or set a positive row limit.
  6. Start the Actor and open the default dataset to read or export the normalized rows.

⚙️ Input

Input fields

FieldTypeWhat it does
findBystringChooses competition for a multi-competition search or eventId for identified game details.
competitionsarray of stringsNames or IDs of the supported leagues or competitions to search.
datestringA calendar date or supported relative date expression for past, future, or recent games. Empty uses the current date.
statusstringKeeps all, live, upcoming, or completed games in a competition search.
teamsarray of stringsOptional team names or IDs that narrow a competition search.
eventIdsarray of stringsSource event IDs for identified games.
languagestringA supported code for team names and labels: en, es, fr, de, it, or pt.
maxItemsintegerOptional game-row limit. Leave it empty to return all available results until the source is exhausted.

Example input

This is the public input from a successful current-beta default run.

{
"findBy": "competition",
"competitions": [
"nfl"
],
"date": "last 7 days",
"status": "all",
"maxItems": 100
}

🧾 Output

The run output provides a dataset URL that opens the game rows in the default dataset. The dataset uses one normalized game-row shape. Optional fields appear only when the request and source provide them.

Game row fields

FieldTypeWhat it does
eventIdstringSource event ID for the game.
sportstringSport for the game.
competitionobjectLeague or competition context.
competition.namestringName of the league or competition.
competition.idstringSource ID for the competition, when available.
competition.codestringSource code for the competition, when available.
competition.seasonstringSeason containing the game, when available.
competition.roundstringRound or stage of the competition, when available.
teamsobjectHome and away team data.
teams.homeobjectHome team and its available context.
teams.home.namestringHome team name.
teams.home.idstringSource ID for the home team, when available.
teams.home.codestringShort source code for the home team, when available.
teams.home.rankingintegerHome team ranking, when the source provides it.
teams.home.recentFormarray of stringsRecent home-team result labels in source order, when available.
teams.awayobjectAway team and its available context.
teams.away.namestringAway team name.
teams.away.idstringSource ID for the away team, when available.
teams.away.codestringShort source code for the away team, when available.
teams.away.rankingintegerAway team ranking, when the source provides it.
teams.away.recentFormarray of stringsRecent away-team result labels in source order, when available.
startTimestringScheduled game start in ISO 8601 format.
venueobjectGame venue, when the source provides it.
venue.namestringVenue name.
venue.idstringSource ID for the venue, when available.
venue.citystringVenue city, when available.
venue.countrystringVenue country, when available.
statusstringNormalized game status, such as scheduled, live, or completed.
scoresobjectHome and away scores after play begins, when available.
scores.homeintegerCurrent or final home score.
scores.awayintegerCurrent or final away score.
liveContextobjectSport-specific live information, when available.
liveContext.periodstringCurrent period, inning, quarter, set, or similar stage.
liveContext.clockstringGame clock or another live time display.
liveContext.progressstringSource progress label, such as a set count or scheduled time.
liveContext.phasestringCurrent game phase, such as halftime or overtime.
oddsarray of objectsAvailable match-outcome odds.
odds[].marketstringMarket for the odds.
odds[].bookmakerstringBookmaker that supplied the odds, when available.
odds[].formatstringOdds format: decimal, fractional, or american.
odds[].homenumber or stringOdds for the home outcome.
odds[].drawnumber or stringOdds for a draw, when that outcome exists.
odds[].awaynumber or stringOdds for the away outcome.
detailsobjectEvents, lineups, and match statistics when requested and available.
details.eventsarray of objectsRecorded events from the game.
details.events[].typestringType of game event.
details.events[].teamstringTeam linked to the event, when available.
details.events[].playerstringPlayer linked to the event, when available.
details.events[].minutenumberGame minute for the event, when available.
details.events[].descriptionstringSource description of the event, when available.
details.lineupsarray of objectsPlayers listed in the game lineups.
details.lineups[].teamstringTeam for the lineup entry.
details.lineups[].playerIdstringSource ID for the player, when available.
details.lineups[].playerNamestringPlayer name.
details.lineups[].positionstringPlayer position, when available.
details.lineups[].starterbooleanWhether the player started the game, when available.
details.statisticsarray of objectsNamed statistics for the home and away teams.
details.statistics[].namestringName of the statistic.
details.statistics[].homenumber or stringHome value for the statistic.
details.statistics[].awaynumber or stringAway value for the statistic.
dataSourceobjectSource that provided the game, when the source name is available.
dataSource.namestringName of the data source.
dataSource.urlstring URLSource page for the game, when available.

Genuine completed row

This complete row came from a successful current-beta competition run.

{
"eventId": "401872948",
"sport": "football",
"competition": {
"name": "National Football League",
"id": "28",
"code": "NFL",
"season": "2026",
"round": "3"
},
"teams": {
"home": {
"name": "Green Bay Packers",
"id": "9",
"code": "GB"
},
"away": {
"name": "Atlanta Falcons",
"id": "1",
"code": "ATL"
}
},
"startTime": "2026-09-25T00:15:00.000Z",
"status": "completed",
"scores": {
"home": 14,
"away": 35
},
"venue": {
"name": "Lambeau Field",
"id": "3798",
"city": "Green Bay",
"country": "USA"
},
"liveContext": {
"period": "4",
"clock": "0:00"
},
"dataSource": {
"name": "ESPN",
"url": "https://www.espn.com/nfl/game/_/gameId/401872948/falcons-packers"
}
}

Genuine scheduled detail row

This complete row came from a successful current-beta identified-event run. It shows that scores may be absent before play and that optional statistics and odds can appear.

{
"eventId": "401879268",
"sport": "soccer",
"competition": {
"name": "English Premier League",
"id": "700",
"code": "Premier League",
"season": "2026"
},
"teams": {
"home": {
"name": "Arsenal",
"id": "359",
"code": "ARS",
"recentForm": [
"L",
"W",
"W",
"W",
"W"
]
},
"away": {
"name": "Leeds United",
"id": "357",
"code": "LEE",
"recentForm": [
"D",
"W",
"L",
"D",
"D"
]
}
},
"startTime": "2026-10-10T11:30:00.000Z",
"status": "scheduled",
"liveContext": {
"progress": "10/10 - 7:30 AM EDT"
},
"dataSource": {
"name": "ESPN",
"url": "https://www.espn.com/soccer/match/_/gameId/401879268/leeds-united-arsenal"
},
"details": {
"statistics": [
{
"name": "goalDifference",
"home": "4",
"away": "4"
},
{
"name": "totalGoals",
"home": "8",
"away": "7"
},
{
"name": "goalAssists",
"home": "6",
"away": "4"
},
{
"name": "goalsConceded",
"home": "4",
"away": "3"
}
]
},
"odds": [
{
"market": "Moneyline",
"bookmaker": "DraftKings",
"format": "american",
"home": -270,
"draw": 380,
"away": 650
}
]
}

💳 Pricing

Charged event

One saved normalized game is one charged event. The buyer-facing event is Game; check the Pricing tab for the current rate.

🔌 Integrations

Use the Apify API or the default dataset URL to read rows from code and pass them to a sports app, report, or data pipeline. Source links stay with the row when they are available.

Watch the Apify workflow video:

❓ FAQ

Can I search more than one league or competition?

Yes. Set findBy to competition and enter one or more supported names or IDs. The Actor returns normalized rows for that set in one coherent request.

Can I request a known game?

Yes. Set findBy to eventId and enter one or more source event IDs. The row can include events, lineups, and match statistics when the source provides them.

What happens when a game has not started?

The scores field is absent before play begins. The row can still include the scheduled status, start time, teams, venue, and other available context.

Are odds and match details always present?

No. odds and details are optional. They appear when the request and source provide them, and some nested values may still be unavailable.

Can I use a past date or a recent date window?

Yes. Enter a calendar date for past or future games, or use a supported relative date expression such as last 7 days. Leave the field empty for the current date.

Does the language setting translate every field?

No. It applies to team names and labels. Other source fields follow the data that the source provides.

Does maxItems have a fixed upper limit?

No schema-defined upper limit is set. Leave it empty to return all available results until the source is exhausted.

What happens when no game matches my filters?

The request may return no game rows when a competition has no game for the date, status, or team you chose. Try a different date or filter when you need another set of games.

📝 Changelog

v0.0 (30-09-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré