Ids and records, sports data API
Ids and recordsEvery 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.
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.
{
"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
}
}The endpoints
Every sport that answers it.