Match Results API
Three different jobs need the same feed: settling a coupon, filling a livescore archive, and back-testing a model against seasons that have already been played. This API answers all three — full-time and period scores, plus the secondary lines most feeds quietly drop.

One finished match, one JSON object
{
"Id": 559317164,
"Name1": "Pachuca",
"Name2": "Deportivo Toluca",
"Start": 1706621200,
"Score": "2:2 (0:1,2:1)",
"Opp1Img": "98045.png",
"Opp2Img": "43765.png",
"SubMatch": [
{ "Name": "Corners", "Score": "6:7 (3:4,3:3)" },
{ "Name": "Cards", "Score": "3:5 (1:1,2:4)" }
]
}Scores, periods and the lines underneath them
Every finished match comes back as one object: the final score, the score at each break, and the secondary markets settled alongside it. Sports and esports share the same shape, so one parser covers both. Volume runs past 100,000 finished events a month.
Score at every break
Full time, halves, quarters, sets, periods — whatever the sport splits into.
Narrow the request
One parameter limits a call to a sport, a country, a championship or a date range.
Settled within the hour
Top matches land the moment the whistle goes; the long tail follows inside twenty minutes.
Back to 1989
The archive is deep enough to train on, not just deep enough to display.
What tends to decide it
Nothing to reconcile
Scores arrive already split by period, so you are not parsing a string to find out who led at half time.
Test before you pay
A trial key hits the real endpoint with real matches — no sandbox with invented fixtures.
One shape for 200+ sports
Cricket and darts come back in the same envelope as football. Adding a sport costs no new code.
Esports in the same feed
Dota, Counter-Strike, FIFA and Mortal Kombat settle through the endpoint you already integrated.
Choose a Service Package
Before you integrate
Where these results usually end up
Most people arrive here with one of three problems. A sportsbook needs finished scores to close out coupons that are still open. A livescore or media site needs yesterday, last week and last season to exist as pages worth indexing. An analyst needs enough completed seasons to test whether a model would have made money.
The three want different things from the same feed. Settlement wants speed and the secondary lines — corners, cards, shots — because that is where the coupons are. An archive wants breadth and stable identifiers, so that a team is the same team across ten seasons. A model wants depth, which is why STAT-REZULT is sold by sport and by year rather than by month.
What they share is the format. One JSON object per finished match, the same envelope whether it is a Champions League tie or a Counter-Strike map, so the parser you write for football keeps working when you add cricket. That is the part that saves the time.
Take the trial key, point it at a sport you know well, and check last weekend against a source you trust. It is a faster way to judge a feed than any description of one.