Livesport Scores & Fixtures Scraper avatar

Livesport Scores & Fixtures Scraper

Pricing

Pay per event

Go to Apify Store
Livesport Scores & Fixtures Scraper

Livesport Scores & Fixtures Scraper

Extract live scores, fixtures, final results, league metadata, team IDs, match URLs, and optional odds-link context from Livesport scoreboards.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract live scores, fixtures, final results, league metadata, team IDs, match URLs, and optional odds-link context from public Livesport scoreboards.

What does Livesport Scores & Fixtures Scraper do?

Livesport Scores & Fixtures Scraper turns public Livesport scoreboard feeds into clean Apify dataset rows.

It is built for recurring sports monitoring workflows where teams need structured match data without manually checking the Livesport website.

The actor can collect:

  • โšฝ today's soccer scoreboard
  • ๐Ÿ•’ upcoming fixtures
  • โœ… finished results
  • ๐Ÿ”ด live matches
  • ๐Ÿ† country and league metadata
  • ๐Ÿ‘ฅ home and away team names
  • ๐Ÿ”ข current or final scores
  • ๐Ÿงฉ period score fragments when available
  • ๐Ÿ”— match and league URLs
  • ๐Ÿ’ธ optional odds/bookmaker link context

Who is it for?

Sports analytics teams

Use the actor to collect daily fixtures and results for downstream models, dashboards, or quality-control checks.

Betting research teams

Monitor public scoreboards, match IDs, team metadata, and optional bookmaker links for pre-match or post-match workflows.

Fantasy and media teams

Track schedules and final results across leagues so editors and fantasy operations can prepare alerts and coverage.

Data engineering teams

Run it on a schedule, export JSON/CSV, and load match rows into a warehouse.

Why use this actor?

Livesport is broad, fast, and widely used by sports fans.

This actor focuses on the stable public scoreboard feed instead of expensive browser automation.

That means:

  • lower compute costs
  • faster runs
  • fewer moving browser parts
  • predictable dataset columns
  • simple scheduled monitoring

Data fields

FieldDescription
sportIdLivesport numeric sport ID
sportNameSport slug/name used for generated URLs
countryCountry or category name
leagueCompetition name
leagueUrlPublic Livesport league URL when present
tournamentIdFeed tournament identifier
matchIdLivesport match identifier
matchUrlGenerated public match URL
homeTeamHome participant name
awayTeamAway participant name
homeTeamIdFeed home team ID
awayTeamIdFeed away team ID
homeScoreCurrent/final home score when available
awayScoreCurrent/final away score when available
homePeriodScoresPeriod score fragments for home side
awayPeriodScoresPeriod score fragments for away side
statusCodeRaw Livesport status code
statusTextHuman-readable status bucket
startTimestampISO start time
startTimestampUnixUnix start time in seconds
homeSlugHome team slug
awaySlugAway team slug
homeLogoUrlHome logo asset URL
awayLogoUrlAway logo asset URL
oddsLinksOptional bookmaker/link metadata
sourceFeedUrlFeed URL used for the row
scrapedAtExtraction timestamp

How much does it cost to scrape Livesport scores and fixtures?

The actor uses pay-per-event pricing.

You pay a small run-start fee and then a per-match event for each dataset row produced.

Because this is an HTTP-first actor, typical scoreboards are designed to be inexpensive compared with browser-based scraping.

Use small maxItems values for testing.

Raise maxItems for complete daily scoreboards or scheduled production runs.

How to use it

  1. Open the actor on Apify.
  2. Choose a sportId.
  3. Keep sportName aligned with that sport.
  4. Choose one or more dateOffsets.
  5. Select mode if you only need live, finished, or scheduled matches.
  6. Optionally add a country or league filter.
  7. Run the actor.
  8. Export the dataset as JSON, CSV, Excel, RSS, or via API.

Input options

sportId

Livesport internal sport ID.

Common values include:

  • 1 soccer
  • 2 tennis
  • 3 basketball
  • 4 hockey
  • 13 baseball
  • 16 American football

sportName

A readable sport slug used in generated match URLs.

For soccer, leave the default soccer.

dateOffsets

Relative days to scrape.

Examples:

  • [0] today
  • [-1] yesterday
  • [1] tomorrow
  • [-1, 0, 1] yesterday, today, and tomorrow

mode

Filter after fetching the scoreboard.

Available values:

  • all
  • live
  • finished
  • scheduled

maxItems

Maximum number of match rows to emit.

countryFilter

Case-insensitive country text filter.

Example: Brazil.

leagueFilter

Case-insensitive league text filter.

Example: Serie B.

When enabled, the actor parses optional Livesport link metadata if present in the feed.

Example input

{
"sportId": 1,
"sportName": "soccer",
"dateOffsets": [0],
"mode": "all",
"maxItems": 100,
"includeOddsLinks": false
}

Example output

{
"sportId": 1,
"sportName": "soccer",
"country": "Brazil",
"league": "Serie B",
"matchId": "MsKPu55e",
"matchUrl": "https://www.livesport.com/en/match/soccer/athletic-club-operario-pr/MsKPu55e/",
"homeTeam": "Athletic Club",
"awayTeam": "Operario-PR",
"homeScore": 0,
"awayScore": 1,
"statusText": "finished",
"startTimestamp": "2026-07-08T03:00:00.000Z",
"oddsLinks": []
}

Tips for reliable runs

  • Start with maxItems: 100 for validation.
  • Use dateOffsets: [-1] with mode: finished for results.
  • Use dateOffsets: [1] with mode: scheduled for fixtures.
  • Keep includeOddsLinks off unless you need link context.
  • Use filters after confirming the country and league names in the output.

Integrations

Sports warehouse refresh

Schedule the actor daily and export results to your database.

Betting research notebook

Call the actor from Python and merge match IDs with internal odds or prediction data.

Editorial monitoring

Run the actor every few minutes with mode: live and alert on changed match status.

BI dashboards

Connect the dataset to Google Sheets, Make, Zapier, or your own ETL.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/livesport-scores-fixtures-scraper').call({
sportId: 1,
sportName: 'soccer',
dateOffsets: [0],
maxItems: 100
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/livesport-scores-fixtures-scraper').call(run_input={
'sportId': 1,
'sportName': 'soccer',
'dateOffsets': [0],
'maxItems': 100,
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~livesport-scores-fixtures-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"sportId":1,"sportName":"soccer","dateOffsets":[0],"maxItems":100}'

MCP usage

Use this actor from Claude or other MCP-compatible tools through Apify MCP.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/livesport-scores-fixtures-scraper

Claude Code setup:

$claude mcp add apify-livesport https://mcp.apify.com/?tools=automation-lab/livesport-scores-fixtures-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-livesport": {
"url": "https://mcp.apify.com/?tools=automation-lab/livesport-scores-fixtures-scraper"
}
}
}

Example prompts:

  • "Scrape today's soccer fixtures from Livesport and summarize matches by country."
  • "Get finished Livesport soccer results from yesterday and return CSV-ready rows."
  • "Monitor live Livesport soccer matches and flag games with non-null scores."

Other automation-lab actors that may complement this workflow:

Limitations

The MVP focuses on scoreboard rows.

It does not yet open every match detail tab for lineups, incidents, or statistics.

Public feed structure can change.

When Livesport does not include a field in the scoreboard feed, the actor returns null or an empty array.

Legality

This actor extracts publicly available data.

Always use it responsibly and respect Livesport terms, robots guidance, and applicable laws.

Do not collect personal data unless you have a lawful basis.

FAQ

Why did I get fewer rows than expected?

Check maxItems, mode, countryFilter, and leagueFilter.

A restrictive filter can remove rows after the feed is fetched.

Livesport only includes link metadata for some matches and regions.

Set includeOddsLinks to true if you need this optional field.

Why are scores null for fixtures?

Scheduled fixtures usually do not have scores yet.

Use mode: finished for final result rows.

Changelog

0.1

Initial HTTP-first Livesport scoreboard scraper with date offsets, status filtering, league/team metadata, scores, match URLs, and optional odds links.

Support

If you need another sport ID, additional match-detail tabs, or a new output field, open an Apify issue on the actor page with an example Livesport URL and desired dataset columns.