Library for scraping soccer data from the internet
Node.js >=24 and <26 must be installed first
npm install soccerbot
or
bun add soccerbot
Type this into your ts file.
import { soccerway, transfermarkt, fotbalunas, eurofotbal, sportnet, worldfootball } from 'soccerbot';
console.log(soccerway.leagueUrl('czech-republic/chance-liga/standings/bNFMkskm')); // show url
soccerway.league('czech-republic/chance-liga/standings/bNFMkskm').then((res) => console.log(res));
console.log(soccerway.teamUrl('slavia-prague/viXGgnyB')); // show url
soccerway.team('slavia-prague/viXGgnyB').then((res) => console.log(res));
console.log(soccerway.playerUrl('kolar-ondrej/xfBGcS1U')); // show url
soccerway.player('kolar-ondrej/xfBGcS1U').then((res) => console.log(res));
console.log(transfermarkt.teamUrl('62')); // show url
transfermarkt.team('62').then((res) => console.log(res));
console.log(fotbalunas.teamUrl('62')); // show url
fotbalunas.team('62').then((res) => console.log(res));
console.log(eurofotbal.teamUrl('cesko/sparta-praha')); // show url
eurofotbal.team('cesko/sparta-praha').then((res) => console.log(res));
console.log(sportnet.teamUrl('fk-inter-bratislava-1/tim/dospeli-m-a')); // show url
sportnet.team('fk-inter-bratislava-1/tim/dospeli-m-a').then((res) => console.log(res));
console.log(worldfootball.leagueUrl('co7093/mexico-lp---serie-b')); // show url
worldfootball.league('co7093/mexico-lp---serie-b').then((res) => console.log(res));
console.log(worldfootball.teamUrl('te237557/artesanos-metepec')); // show squad url
worldfootball.team('te237557/artesanos-metepec').then((res) => console.log(res));
console.log(worldfootball.playerUrl('pe599828/oscar-altamirano')); // show url
worldfootball.player('pe599828/oscar-altamirano').then((res) => console.log(res));Transfermarkt players also include an optional FIFA-style detailed position:
import { SoccerBotPositionDetail, transfermarkt } from 'soccerbot';
const response = await transfermarkt.team('62');
const centreBacks = response.data?.filter((player) => player.positionDetail === SoccerBotPositionDetail.CB);| Source | Speed | Stability | Coverage |
|---|---|---|---|
| transfermarkt | ⚽⚽⚽ | ⚽⚽⚽ | World |
| soccerway | ⚽ | ⚽ | World |
| fotbalunas | ⚽ | ⚽⚽⚽ | Czech Republic |
| eurofotbal | ⚽⚽ | ⚽⚽ | Europe |
| sportnet | ⚽ | ⚽ | Slovakia |
| worldfootball | ⚽⚽ | ⚽ | World |
Note: Soccerway, Fotbalunas and sportnet take data from multiple pages, so they need more time. WorldFootball uses its HEIM:SPIEL sister site as a fallback when the primary site returns a Cloudflare challenge.
Copyright © 2021 - 2026 Dominik Hladik
All contents are licensed under the MIT license.