Livesport Scores, Fixtures & Results
Pricing
from $1.81 / 1,000 results
Livesport Scores, Fixtures & Results
Scores, fixtures, live matches, standings and match details across 20+ sports from Livesport: football, tennis, basketball, hockey, baseball and more. Export to JSON, CSV or Excel.
Pricing
from $1.81 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Master
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Turn public Livesport pages into clean, structured sports data: daily fixtures and results, live scores, full match details, league tables and the schedule of any team. It covers 21 sports, including football (soccer), tennis, basketball, ice hockey, baseball, handball, volleyball, rugby union, American football and MMA.
Data comes from Livesport (livesport.com). This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Livesport or its owners.
Modes
Pick one with the mode input. Every mode honors maxItems.
| Mode | What you get | Main inputs |
|---|---|---|
fixtures | One row per match for a day or a date range (up to 15 days, from 7 days back to 7 days ahead) | sport, date or dateFrom/dateTo, status, countryFilter, tournamentFilter |
live | Matches in play right now, with score and period or minute | sport, optional filters |
match-detail | One row per match with nested sections: lineups, statistics, incidents, match info and head-to-head | matchIds, include* switches |
standings | One row per team in a tournament table | tournamentUrl, standingsType |
team-fixtures | Upcoming matches and/or past results of a team | teamUrl, teamScope |
Example inputs
Fixtures for a week of tennis, finished matches only:
{ "mode": "fixtures", "sport": "tennis", "dateFrom": "-3", "dateTo": "today", "status": "finished", "maxItems": 200 }
Everything live in basketball:
{ "mode": "live", "sport": "basketball", "maxItems": 100 }
Match details (id, or a match URL that contains ?mid=):
{ "mode": "match-detail", "matchIds": ["plkwWY3D"], "includeLineups": true, "includeStatistics": true, "includeIncidents": true, "includeH2H": true, "h2hMatchesPerSection": 10 }
A league table (overall, home or away):
{ "mode": "standings", "tournamentUrl": "https://www.livesport.com/en/soccer/germany/bundesliga/", "standingsType": "overall" }
Matches of one team:
{ "mode": "team-fixtures", "teamUrl": "https://www.livesport.com/en/team/dortmund/nP1i5US1/", "teamScope": "both", "maxItems": 60 }
Dates accept YYYY-MM-DD, today, tomorrow, yesterday or an offset such as +2 and -3.
Output
Each dataset row has a recordType field: match, match-detail, standing or error. The dataset has table views for each of them.
Match rows (fixtures, live, team-fixtures)
| Field | Description |
|---|---|
matchId | Livesport match id |
sport, country, tournament, tournamentId, tournamentUrl | Competition context (for tennis the "country" is the tour category, for example ATP - SINGLES) |
startTime | Kick-off, ISO 8601 in UTC |
status | scheduled, live, finished, not-played (postponed, cancelled, walkover without score) or other |
statusDetail, minute | Human readable status. For live football, the phase and an approximate minute computed from the phase start time; for other sports the current period |
homeTeam, awayTeam, homeTeamId, awayTeamId | Participants |
homeScore, awayScore | Current or final score (sets for tennis, goals for football). null if not started |
periodScores | List of { period, home, away } (half-time for football; sets, quarters, periods or innings for other sports) |
matchUrl | Public match page |
teamId | Only in team-fixtures: the team that was requested |
Match-detail rows
Each match is one row and one billable item. The sections are nested fields:
| Field | Description |
|---|---|
matchId, sport, country, tournament, round, startTime, status, homeTeam, awayTeam, homeScore, awayScore, matchUrl | Header data |
statistics | List of { period, group, name, home, away } |
incidents | List of { period, side, minute, type, player, playerId, reason, score, commentary, related[] }. related holds assists and the player coming on |
matchInfo | Referee, venue, town, attendance and capacity when published |
lineups | { home, away }, each with formation, starters, substitutes, coaches (player id, name, number, country, rating, roles, events) |
h2h | List of { tab, title, matches[] }: head-to-head and recent form lists |
sectionErrors | Present only if one section could not be loaded |
A section is null or empty when Livesport does not publish it for that match (for example lineups for lower leagues). Not every sport has every section.
Standings rows
table, groupType, group, rank, team, teamId, teamUrl, played, wins, draws (null for sports without draws), losses, goalsFor, goalsAgainst, goalDifference, points, winPercentage (where published), form (most recent result first, W/D/L), tournamentId, stageId, sourceUrl. Leagues with conferences or divisions return one block of rows per grouping.
Errors
If a request fails, the run continues and an error row (recordType: "error", with a message) is added to the dataset. Error rows are not charged.
Notes and limitations
- Public data only. No login, no personal data. Requests are rate limited (at most 3 concurrent, 0.4 to 1.2 seconds between requests, retry with backoff on 429/5xx).
- Odds are not included: Livesport serves them from a separate service that is not part of the plain public feed.
- Livesport lists 7 days back and 7 days ahead of today; other dates are skipped with an error row.
- Day lists follow the Livesport daily grouping in UTC; matches close to midnight can be listed on the neighboring day.
- Minute for live football is an estimate (phase start time based). Stoppage-time and pauses are not modelled.
- Status codes for postponed or cancelled games are not documented by the source, so they are reported as
not-playedwith the raw code instatusDetail. - Some sports publish fewer details than football (no lineups, or no incidents).
- Team and tournament pages are identified by the ids in Livesport URLs. If Livesport changes its page structure the Actor may need an update.
Technical notes
The Actor reads the same text feeds the Livesport web client uses (/x/feed/... on livesport.com). Those requests carry the x-fsign header that the site publishes as a constant in its own public JavaScript. The value is kept in one file, src/constants.js, and is re-read from the site's public script if the feed ever answers 401.
Run locally:
npm installsh run-test.sh '{"mode":"fixtures","sport":"soccer","date":"today","maxItems":10}'
Disclaimer
This project is not affiliated with Livesport, Flashscore or their owners. Livesport and related names are trademarks of their respective owners. Make sure your use of the collected data complies with the site's terms and the laws that apply to you.