API Reference
REST API for live events, schedules, and results. Base URL: https://api.sportsledger.com (use your deployment URL for self-hosted).
Authentication
All API requests (except health) require an API key. Send it via header:
Authorization: Bearer YOUR_API_KEYX-API-Key: YOUR_API_KEY
Get an API key from the dashboard after signing in. Rate limits depend on your tier (Free: 100/min, Pro: 1000/min, Enterprise: 10000/min).
Health
No authentication required.
GET https://api.sportsledger.com/api/health
{
"ok": true,
"timestamp": "2026-02-06T12:00:00.000Z"
}Events
List and fetch sport events (EPL, UFC, Boxing, F1).
List events
GET https://api.sportsledger.com/api/v1/events
Query:
sport (optional) — epl, ufc, boxing, f1[
{
"id": "epl-1",
"sport": "epl",
"title": "Premier League",
"subtitle": "Arsenal vs Chelsea",
"venueName": "Emirates Stadium",
"venueCity": "London",
"venueCountry": "England",
"venueTimezone": "Europe/London",
"startTime": "2026-02-14T12:30:00.000Z",
"broadcast": [
{ "platform": "Sky Sports", "region": "UK" }
]
}
]Get event by ID
GET https://api.sportsledger.com/api/v1/events/:id
{
"id": "epl-1",
"sport": "epl",
"title": "Premier League",
"subtitle": "Arsenal vs Chelsea",
"venueName": "Emirates Stadium",
"venueCity": "London",
"venueCountry": "England",
"venueTimezone": "Europe/London",
"startTime": "2026-02-14T12:30:00.000Z",
"broadcast": [{ "platform": "Sky Sports", "region": "UK" }]
}Favourites
Manage a user's favourite events by device ID.
Use a stable deviceId (e.g. from your app) to identify the user.
List favourites
GET https://api.sportsledger.com/api/v1/favourites?deviceId=DEVICE_ID
["epl-1", "ufc-1"]Add favourite
POST https://api.sportsledger.com/api/v1/favourites
Body:
{ "deviceId", "eventId" }{ "success": true }Remove favourite
DELETE https://api.sportsledger.com/api/v1/favourites/:eventId?deviceId=DEVICE_ID
{ "success": true }Preferences
Get and update favourite sports and teams per device.
Get preferences
GET https://api.sportsledger.com/api/v1/preferences?deviceId=DEVICE_ID
{
"favouriteSports": ["epl", "f1"],
"favouriteTeams": [
{ "sport": "epl", "team": "Arsenal" }
]
}Update preferences
PATCH https://api.sportsledger.com/api/v1/preferences
Body:
{ "deviceId", "favouriteSports"?, "favouriteTeams"? } — sports: epl, ufc, boxing, f1{
"favouriteSports": ["epl", "f1"],
"favouriteTeams": [{ "sport": "epl", "team": "Arsenal" }]
}Add favourite sport
POST https://api.sportsledger.com/api/v1/preferences/sports
Body:
{ "deviceId", "sport" }Remove favourite sport
DELETE https://api.sportsledger.com/api/v1/preferences/sports/:sport?deviceId=DEVICE_ID
Add favourite team
POST https://api.sportsledger.com/api/v1/preferences/teams
Body:
{ "deviceId", "sport", "team" }Clear favourite teams
DELETE https://api.sportsledger.com/api/v1/preferences/teams?deviceId=DEVICE_ID
Errors return JSON with statusCode and message. 401 for missing/invalid API key, 429 when rate limit is exceeded.
