Skip to Content

Sports

Get a list of all available sports with their leagues and event counts.

Endpoints

GET /api/v1/sports

Requires an API key. Available on all tiers (Free included). Unauthenticated requests return 401.

List All Sports

Example Requests

curl -X GET "https://api.sharpapi.io/api/v1/sports" \ -H "X-API-Key: YOUR_API_KEY"

Response

{ "data": [ { "id": "basketball", "numerical_id": 1, "name": "Basketball", "leagues": ["nba", "ncaab", "wnba"], "event_count": 42, "live_count": 3 }, { "id": "football", "numerical_id": 2, "name": "Football", "leagues": ["nfl", "ncaaf"], "event_count": 28, "live_count": 1 }, { "id": "hockey", "numerical_id": 4, "name": "Hockey", "leagues": ["nhl"], "event_count": 15, "live_count": 2 }, { "id": "baseball", "numerical_id": 3, "name": "Baseball", "leagues": ["mlb"], "event_count": 0, "live_count": 0 }, { "id": "soccer", "name": "Soccer", "leagues": ["epl", "la_liga", "serie_a", "bundesliga", "mls"], "event_count": 35, "live_count": 4 }, { "id": "tennis", "name": "Tennis", "leagues": ["atp", "wta"], "event_count": 18, "live_count": 6 }, { "id": "mma", "name": "MMA", "leagues": ["ufc"], "event_count": 12, "live_count": 0 }, { "id": "golf", "name": "Golf", "leagues": ["pga"], "event_count": 4, "live_count": 1 } ], "meta": { "count": 19, "total": 19, "pagination": { "limit": 50, "offset": 0, "has_more": false, "next_offset": null }, "updated_at": "2026-01-26T12:00:00Z", "filters": {} } }

Sport Object Schema

FieldTypeDescription
idstringSport identifier (lowercase, use in API filters)
numerical_idinteger | nullStable integer key for the sport (frozen, never reused). New (May 2026) — additive, optional. See Entity reference IDs.
namestringHuman-readable sport name
leaguesstring[]League IDs within this sport
event_countintegerTotal events currently available with odds
live_countintegerEvents currently live/in-play

New (May 2026): numerical_id

numerical_id is a frozen, dense-from-1 integer assigned per sport in the SharpAPI atlas. Use it as a compact storage key when you don’t need the human-readable slug.

  • Frozen: never reused or remapped once assigned.
  • Optional: absent (or null) for sports that haven’t been mapped yet — the slug id is always present.
  • Domain-scoped: unique across sports only; pair with the entity domain to disambiguate.

See Entity reference IDs for the full semantics, plus the matching sport_ref block emitted on every odds row and opportunity leg.

Available Sports

IDDisplay NamePopular Leagues
basketballBasketballNBA, NCAAB, WNBA
footballFootballNFL, NCAAF
hockeyHockeyNHL
baseballBaseballMLB
soccerSoccerEPL, La Liga, Serie A, Bundesliga, MLS
tennisTennisATP, WTA
mmaMMAUFC
golfGolfPGA
boxingBoxing
cricketCricket
rugbyRugby Union
rugby_leagueRugby League
lacrosseLacrossePLL
motorsportsMotorsportsF1, NASCAR
curlingCurling
dartsDartsPDC
snookerSnooker
table_tennisTable Tennis
esportsEsportsLoL, CS2, Dota 2

The event_count and live_count values are dynamic and change based on current schedules. Off-season sports will show 0 events.

Using Sports in Filters

Use the sport id as a filter parameter on other endpoints:

# Get odds for basketball only curl "https://api.sharpapi.io/api/v1/odds?sport=basketball" \ -H "X-API-Key: YOUR_API_KEY" # Get events for multiple sports curl "https://api.sharpapi.io/api/v1/events?sport=basketball,football" \ -H "X-API-Key: YOUR_API_KEY"
Last updated on