What Sofascore Covers and How Its Ids Are Layered
Sofascore is a live score and statistics service published by Sofa IT d.o.o. of Zagreb, Croatia. It puts football beside basketball, tennis, ice hockey, baseball, handball, American football, volleyball, cricket, MMA, motorsport, esports, rugby, futsal, darts, snooker, padel and more under one grammar, so a Sofascore scraper written for the first sport largely fits the rest.
Ids come in layers, and confusing two of them is the usual cause of a broken join. A competition has a uniqueTournament id that never moves - Premier League 17, LaLiga 8, Serie A 23, Bundesliga 35, Ligue 1 34, Champions League 7, NBA 132, NHL 234 - while each edition carries a separate tournament id and each season its own season id with a label such as 25/26. Above them sits a category, the country container, also numbered. Teams, players, managers, venues and referees are flat numeric ids. A fixture has two: a numeric event id used in the payload and a short alphanumeric customId, which is what appears in the address.
Addresses follow: /football/tournament/{category}/{slug}/{id}, /football/team/{slug}/{id}, /football/player/{slug}/{id}, /football/match/{home-away}/{customId} and /football/{YYYY-MM-DD} for a day of results. Slugs translate across the language prefixes while the number stays put, so a Sofascore data pipeline keys on the id and keeps the slug as a label.
The long tail is filled differently from the top divisions. Contributors report scores, scorers, assists and start times for local clubs and earn a reputation score against approved suggestions; a game followed that way is flagged as not an official result until confirmed. Amateur and minor competitions run through Torneo by Sofascore, and seasons created there carry an editor flag.
Get a Quote