Skip to Content

Teams

Look up teams and players across all sports and leagues. Returns team names, aliases, league memberships, and current event counts. Useful for building search/autocomplete, mapping team names across sportsbooks, and understanding what’s currently active.

GET /api/v1/teams

Authentication

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

Query Parameters

ParameterTypeDefaultDescription
sportstringallFilter by sport (e.g., basketball, football, soccer)
leaguestringallFilter by league (e.g., NBA, NFL, EPL)
qstring-Search teams by name or alias (case-insensitive)

The q parameter searches both the team name and aliases fields. For example, q=man city will match “Manchester City” via its alias.

Example Requests

# Get all NBA teams curl "https://api.sharpapi.io/api/v1/teams?league=NBA" \ -H "X-API-Key: YOUR_API_KEY" # Search for a team by name curl "https://api.sharpapi.io/api/v1/teams?q=lakers" \ -H "X-API-Key: YOUR_API_KEY" # Get all basketball teams curl "https://api.sharpapi.io/api/v1/teams?sport=basketball" \ -H "X-API-Key: YOUR_API_KEY"

Response

Success (200)

{ "data": [ { "id": "arsenal", "numerical_id": 1042, "name": "Arsenal", "abbreviation": "ARS", "logo": "https://cdn.opticodds.com/team-logos/soccer/12.png", "city": "London", "mascot": "Arsenal", "conference": "England - Premier League", "division": null, "sport": "soccer", "leagues": [ "EPL", "England - FA Cup", "England - Premier League", "England - EFL Cup" ], "aliases": [ "Arsenal Fc" ], "event_count": 18, "live_count": 0 }, { "id": "alabama-crimson-tide", "numerical_id": 318, "name": "Alabama Crimson Tide", "abbreviation": "ALA", "logo": "https://cdn.opticodds.com/team-logos/basketball/333.png", "city": "Alabama", "mascot": "Crimson Tide", "conference": "SEC", "division": null, "sport": "basketball", "leagues": [ "NCAAB" ], "aliases": [ "Alabama", "Bama", "Crimson Tide" ], "event_count": 6, "live_count": 0 } ], "meta": { "count": 15038, "sport_filter": null, "league_filter": null, "query": null, "total_events": 17113, "total_live": 13160, "updated": "2026-02-11T21:00:00.000Z" } }

Team Object Schema

FieldTypeDescription
idstringUnique team identifier (slug format, e.g., alabama-crimson-tide)
numerical_idinteger | nullStable integer key for the team (frozen, never reused). New (May 2026) — additive, optional. See Entity reference IDs.
namestringDisplay name (e.g., Alabama Crimson Tide)
abbreviationstring | nullShort code (e.g., ALA, ARS, NYY). New (May 2026) — populated where a broadly-recognized abbreviation exists.
logostring | nullFull CDN URL for the team crest. New (May 2026) — populated for ~93% of teams. Treat the host as opaque.
citystring | nullThe team’s geographic anchor (e.g., Boston, Los Angeles). New (May 2026).
mascotstring | nullThe team mascot / nickname portion of the name (e.g., Yankees, Lakers). New (May 2026).
conferencestring | nullLeague-defined conference (e.g., AL, Eastern, AFC). Format varies per league. New (May 2026).
divisionstring | nullLeague-defined sub-grouping within the conference (e.g., East Division, AFC West). New (May 2026).
sportstringPrimary sport (e.g., basketball, soccer, football, hockey)
leaguesarrayLeagues this team appears in (e.g., ["NBA", "NCAAB"])
aliasesarrayAlternative names used by different sportsbooks (e.g., ["Alabama", "Bama"])
event_countintegerNumber of current events involving this team
live_countintegerNumber of currently live events involving this team

New (May 2026): numerical_id, abbreviation, and team metadata

numerical_id is a frozen, dense-from-1 integer assigned per team in the SharpAPI atlas (~24,000 entries across all sports). The new metadata fields (abbreviation, logo, city, mascot, conference, division) are sourced from the SharpAPI atlas and populated for the broad majority of teams (≈93% on logo, with comparable coverage on the rest).

  • Frozen: numerical_id is never reused or remapped, even if the team renames or moves leagues.
  • Optional: every new field is absent (or null) for teams that haven’t been mapped or for individual-sport competitors (tennis players, MMA fighters, golfers, drivers — they’re not “teams” in the conventional sense). The slug id and name are always present.
  • Domain-scoped: numerical_id is unique across teams only.

Every odds row and opportunity leg also carries home and away blocks with the same shape ({id, numerical_id, name, abbreviation, logo, city, mascot, conference, division}), so you don’t need to second-fetch this endpoint just to label rows. See Entity reference IDs for the full contract.

Meta Object

FieldTypeDescription
countintegerTotal teams returned
sport_filterstring | nullEcho of the sport filter applied
league_filterstring | nullEcho of the league filter applied
querystring | nullEcho of the q search query
total_eventsintegerTotal events across all returned teams
total_liveintegerTotal live events across all returned teams
updatedstringISO 8601 timestamp of when team data was last refreshed

Use Cases

Team Name Mapping

Different sportsbooks use different names for the same team. The aliases field helps you map across books:

curl "https://api.sharpapi.io/api/v1/teams?q=man%20city"
{ "id": "manchester-city", "name": "Manchester City", "aliases": ["Man City", "Manchester City Fc", "Man. City"] }

Search / Autocomplete

Use the q parameter to power a search-as-you-type UI:

curl "https://api.sharpapi.io/api/v1/teams?q=lak"

Active Teams

Filter by event_count or live_count client-side to show only teams with current or live events.

  • Events - Get events for specific teams
  • Leagues - List available leagues
  • Sports - List available sports
Last updated on