DataSportAPI
Docs
Your first call in one line

The free key reads yesterday for every sport, 50 calls a day. No card.

Get a free key
Every sport, one key

Complete reads all sixteen sports for $249 a month.

Take Complete
Ask in plain words

"Who won at Kempton yesterday?" Your assistant picks the tool and answers from your plan.

Connect in two minutes
Showing
Documentation / Guides

Ids and records, sports data API

Ids and records

Every record has an id of ours. It never changes, and it opens its own endpoint.

What an id looks like

Two letters for the sport, an underscore, then ten letters and digits: fb_p04h38sesj is a football record, ck_nkqf0zm4cy a cricket one. The same team, player or match has the same id in every answer, today and in a year.

Fields that hold an id end in _id, or are called id inside a record. In cricket, records are named by their own field: match, player, team.

Following ids

Ask for a list, then follow the ids in it. A result carries the match id and both team ids; the match id opens the match, its line-ups and its timeline, and a team id opens the team.

GET/v1/football/results
GET/v1/football/events/fb_p04h38sesj/lineups

An id from another sport

An id only opens records of its own sport. Sending a cricket id to a football endpoint answers 404 not_found and says so. So does an id we never issued.

Try it

Football: A match, with your key.

GET
200 OK1286 ms1 recordReal answer from 2026-11-03, trimmed
{
    "data": {
        "match_id": "fb_p04h38sesj",
        "league_id": "fb_3ecv7ykzb0",
        "country_name": "Japan",
        "league_name": "J2 League",
        "season_start_year": 2026,
        "kickoff_utc": "2026-11-03T04:55:00Z",
        "kickoff_date": "2026-11-03",
        "kickoff_local_date": "2026-11-03",
        "kickoff_local_time": "04:55",
        "match_status": "scheduled",
        "home_team_id": "fb_3y29vg3tte",
        "home_team_name": "Kataller Toyama",
        "away_team_id": "fb_nb55pjkdzs",
        "away_team_name": "Vegalta Sendai",
        "home_goals": null,
        "away_goals": null,
        "full_time_result": null,
        "half_time_home_goals": null,
        "half_time_away_goals": null,
        "half_time_result": null,
        "stoppage_minutes": null,
        "is_kickoff_rescheduled": false,
        "elapsed_minutes": null,
        "home_league_position": 3,
        "away_league_position": 2,
        "away_travel_km": 370,
        "venue_name": "Toyama Stadium",
        "city_name": "Toyama",
        "latitude": 36.695916666667,
        "longitude": 137.21369444444,
        "location_precision": "city",
        "daylight_minutes": 638,
        "sun_elevation_deg": 28.9,
        "public_holiday": null,
        "kickoff_temperature_c": null,
        "kickoff_rain_mm": null,
        "kickoff_wind_ms": null,
        "attendance": null,
        "referee_name": null,
        "kickoff_book_pct": 1.012,
        "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,
        "home_formation": null,
        "away_formation": null,
        "venue_id": null,
        "capacity": null,
        "surface": null,
        "best_odds": {
            "home": 2.98,
            "draw": 3.85,
            "away": 2.4,
            "book_pct": 1.012,
            "taken_utc": "2026-11-03T04:00:03Z"
        },
        "team_figures": null,
        "statistics_reason": null,
        "statistics": null,
        "lineups": null
    },
    "meta": {
        "sport": "football",
        "endpoint": "/events/{id}",
        "as_of": "2026-11-02T05:16:53Z",
        "cached": false,
        "age_seconds": 0
    }
}
No key yet? Get a free key: it reads yesterday for every sport and is filled in here once made.

The endpoints

Every sport that answers it.

GET /v1/football/resultsFootball: Finished matches by date, with the final scoreOpen page ›GET /v1/horses/resultsHorses: Results by date with every finisher and starting priceOpen page ›GET /v1/greyhounds/resultsGreyhounds: Results with sectionals and starting pricesOpen page ›GET /v1/cricket/resultsCricket: Finished matches by dateOpen page ›GET /v1/basketball/resultsBasketball: Finished games by date, with the final scoreOpen page ›GET /v1/rugby/resultsRugby: Finished matches by date, with the final scoreOpen page ›GET /v1/darts/resultsDarts: Finished matches by date, with every leg scoreOpen page ›GET /v1/boxing/resultsBoxing: Finished bouts by dateOpen page ›GET /v1/volleyball/resultsVolleyball: Finished matches by date, with the final scoreOpen page ›GET /v1/table-tennis/resultsTable tennis: Finished matches by date, with every game scoreOpen page ›GET /v1/badminton/resultsBadminton: Finished matches by date, with every game scoreOpen page ›GET /v1/football/events/{id}Football: One match in full: both sides, the score, the venue and the officialsOpen page ›GET /v1/basketball/events/{id}Basketball: One game in full: both sides, the score, the venue and the officialsOpen page ›GET /v1/rugby/events/{id}Rugby: One match in full: both sides, the score, the venue and the officialsOpen page ›GET /v1/volleyball/events/{id}Volleyball: One match in full: both sides, the score, the venue and the officialsOpen page ›GET /v1/football/teams/{id}Football: A team and its recordOpen page ›GET /v1/basketball/teams/{id}Basketball: A team and its recordOpen page ›GET /v1/rugby/teams/{id}Rugby: A team and its recordOpen page ›GET /v1/volleyball/teams/{id}Volleyball: A team and its recordOpen page ›