DataSportAPI

Sports data API

Sixteen sports, one key, one shape of answer

Football, racing, cricket, rugby, darts, badminton and ten more, through the same REST calls and the same JSON. Pick the sports you need and add the rest whenever you like: your key reads them at once.

Free key reads every sportHistory back to 1871Live within seconds
GET /v1/{sport}/results09:54:56 UTC
one key, every sport14 rows
16
sports, one schema
11
serving now, 5 connecting
110
endpoints, one key
1871
earliest record held
$19
a month, per sport, from

Every sport

Pick a sport and see everything it answers

Each sport has its own page with its endpoints, how far back it goes, a real answer and its price.

Football
Serving
Football results and fixtures across leagues worldwide, with live scores and more
Measuring
history
12
endpoints
$79
a month
Horses
Serving
Horse racing racecards for today and the days ahead and more
2017
history from
9
endpoints
$79
a month
Greyhounds
Serving
Greyhound racing in Great Britain, Ireland and Australia: today's cards with every trap and more
Measuring
history
8
endpoints
$79
a month
Tennis
Connecting
Live scores, draws, results set by set, rankings, players and head to head
Soon
history
Soon
endpoints
$49
a month
Cricket
Serving
International, franchise and domestic matches, men and women, with live scores ball by ball and more
2001
history from
9
endpoints
$49
a month
Basketball
Serving
Basketball games, scores and standings across more than forty competitions, with box scores and more
Measuring
history
12
endpoints
$49
a month
Ice hockey
Connecting
Ice hockey scores by period, goals, line-ups, league tables, teams and players
Soon
history
Soon
endpoints
$49
a month
Baseball
Connecting
Baseball scores inning by inning, rosters, standings, teams and players
Soon
history
Soon
endpoints
$49
a month
Rugby
Serving
Results and fixtures, live scores, line-ups for both sides, every score by the minute and more
1871
history from
12
endpoints
$29
a month
Darts
Serving
Darts results back to 1994 with averages and match statistics, live scores, fixtures and more
1994
history from
10
endpoints
$29
a month
Boxing
Serving
Fights to come with prices, finished bouts, fighter records, each judge's card round by round and more
Measuring
history
7
endpoints
$29
a month
Cycling
Connecting
Road cycling races and stages, stage results, general, points and mountains classifications and more
Soon
history
Soon
endpoints
$29
a month
Volleyball
Serving
Live scores, results with every set, rally by rally points, line-ups, league tables, teams and more
Measuring
history
12
endpoints
$29
a month
Handball
Connecting
Handball results and history, fixtures, league tables and teams
Soon
history
Soon
endpoints
$29
a month
Table tennis
Serving
Events and their draws, results with every game score, live scores, players and head to head
Measuring
history
9
endpoints
$19
a month
Badminton
Serving
Results and fixtures, draws back to 1899, players, head to head and more
1899
history from
10
endpoints
$19
a month

Side by side

What every sport carries

Sort by any column. A tick means the endpoint answers today on that sport's plan.

SportLiveFixturesResultsLine-upsTablesPlayersHead to headRankingsStatsHistory fromEndpointsPrice
Footballmeasuring12$79Open
Horses20179$79Open
Greyhoundsmeasuring8$79Open
Tennis Connectingsoonsoon$49Open
Cricket20019$49Open
Basketballmeasuring12$49Open
Ice hockey Connectingsoonsoon$49Open
Baseball Connectingsoonsoon$49Open
Rugby187112$29Open
Darts199410$29Open
Boxingmeasuring7$29Open
Cycling Connectingsoonsoon$29Open
Volleyballmeasuring12$29Open
Handball Connectingsoonsoon$29Open
Table tennismeasuring9$19Open
Badminton189910$19Open

One shape

Code written for one sport works for the rest

Every sport answers in the same structure. Swap the sport in the address and the same parser reads it. Both answers are real, kept from the API last night.

GET /v1/football/results200, 1903 ms
{
    "data": [
        {
            "match_id": "fb_3npnahqb09",
            "league_id": "fb_9vq1mbqrgz",
            "country_name": "Brazil",
            "league_name": "Serie B",
            "season_start_year": 2026,
            "kickoff_utc": "2026-11-02T23:30:00Z",
            "kickoff_date": "2026-11-02",
            "kickoff_local_date": "2026-11-02",
            "kickoff_local_time": "23:30",
            "match_status": "finished",
            "home_team_id": "fb_mw96mceske",
            "home_team_name": "Goias",
            "away_team_id": "fb_1cycjasdqh",
            "away_team_name": "CRB",
            "home_goals": 2,
            "away_goals": 1,
            "full_time_result": null,
            "half_time_home_goals": 1,
            "half_time_away_goals": 0,
            "half_time_result": null,
            "stoppage_minutes": null,
            "is_kickoff_rescheduled": false,
            "elapsed_minutes": null,
            "home_league_position": 17,
            "away_league_position": 18,
            "away_travel_km": 1662,
            "venue_name": "Estádio da Serrinha",
            "city_name": "Goiânia",
            "latitude": -16.635209,
            "longitude": -49.265904,
            "location_precision": "ground",
            "daylight_minutes": 763,
            "sun_elevation_deg": -29.3,
            "public_holiday": null,
            "kickoff_temperature_c": null,
            "kickoff_rain_mm": null,
            "kickoff_wind_ms": null,
            "attendance": null,
            "referee_name": "Felipe Fernandes de Lima",
            "kickoff_book_pct": 1.0138,
            "regular_time_home_goals": null,
            "regular_time_away_goals": null,
            "regular_time_result": null,
            "extra_time_home_goals": null,
            "extra_time_away_goals": null,
            "shootout_home_goals": null,
            "shootout_away_goals": null,
            "statistics_status": null,
            "best_odds": {
                "home": 2.16,
                "draw": 3.8,
                "away": 3.55,
                "book_pct": 1.0078,
                "taken_utc": "2026-11-02T23:25:02Z"
            },
            "team_figures": null,
            "statistics_reason": null
        }
    ],
    "meta": {
        "sport": "football",
        "endpoint": "/results",
        "count": 100,
        "page": 1,
        "per_page": 100,
        "total": 229,
        "total_pages": 3,
        "next_cursor": "MTc5MzYzODgwMDoxNTU1MjAw",
        "next_page": 2,
        "prev_page": null,
        "as_of": "2026-11-02T05:16:53Z",
        "cached": false,
        "age_seconds": 0
    }
}
GET /v1/badminton/results200, 2181 ms
{
    "data": [],
    "meta": {
        "sport": "badminton",
        "endpoint": "/results",
        "count": 0,
        "cached": false,
        "age_seconds": 0
    }
}
Every sport, $249 a month

Complete reads all 16, double the calls a minute, and every sport that opens later at no extra cost.

Questions

About the sports

Can I try a sport before I pay?

Yes. The free key reads yesterday's data for every sport, so you can check its shape and depth before you add it.

What does connecting mean?

Tennis, Ice hockey, Baseball, Cycling, Handball are being connected now. Each answers the moment it opens, on every plan that holds it.

Do I need a key per sport?

No. One key reads every sport on your plan. Add a sport and the same key calls it at once.

How far back does each sport go?

It depends on the sport: rugby union to 1871, badminton draws to 1899, darts to 1994 and cricket ball by ball to 2001. The coverage page has every sport.