Teams API
Teams in a league (paginated) and single-team detail: names, abbreviation, colors, logos, record, standing summary and home venue. Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.
- College football lists 800+ teams across all divisions; use the group endpoint for FBS only.
Paths and parameters
GET/api/v1/sports/{sport}/leagues/{league}/teams
List teams. Paginated. College football has 800+ teams across all divisions; for FBS only use the group endpoint (/seasons/{season}/types/2/groups/80/teams).
sport(path, required): Sport slug: football, basketball, baseball, hockey, soccer.league(path, required): League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.limit(query): Maximum teams to return (default 50, max 200).page(query): Page number (1-based).
GET/api/v1/sports/{sport}/leagues/{league}/teams/{teamId}
Get a team
sport(path, required): Sport slug: football, basketball, baseball, hockey, soccer.league(path, required): League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.teamId(path, required): Team id, as returned by the teams endpoints.
Live example
Request
curl -H "Authorization: Bearer $RSA_API_KEY" \
"https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/teams?limit=1"Response captured from live data at 2026-10-05 02:14 UTC (refreshed every few minutes). Long arrays are trimmed; meta.rateLimit values are illustrative for a Free key.
Response
{
"success": true,
"data": [
{
"id": "22",
"uid": "s:20~l:28~t:22",
"slug": "arizona-cardinals",
"location": "Arizona",
"name": "Cardinals",
"nickname": "Cardinals",
"abbreviation": "ARI",
"displayName": "Arizona Cardinals",
"shortDisplayName": "Cardinals",
"color": "a40227",
"alternateColor": "ffffff",
"logos": [
{
"href": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0HVl9AUlxGAl8ASkoYVg",
"width": 500,
"height": 500,
"alt": "",
"rel": [
"full",
"default"
],
"lastUpdated": "2024-06-25T18:43Z"
},
{
"href": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0HVl9AUlxEB0wbDxUXQ1MXFl0E",
"width": 500,
"height": 500,
"alt": "",
"rel": [
"full",
"dark"
],
"lastUpdated": "2024-06-25T18:43Z"
},
{
"href": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0HVl9AUlxGEE4GFl8UXltLAhwCQF5KQQtf",
"width": 500,
"height": 500,
"alt": "",
"rel": [
"full",
"scoreboard"
],
"lastUpdated": "2024-06-25T18:44Z"
},
"... 14 more"
],
"league": {},
"venue": {
"id": "3970",
"name": "State Farm Stadium",
"city": "Glendale",
"state": "AZ",
"indoor": true,
"grass": true
},
"isActive": true,
"isAllStar": false
}
],
"meta": {
"pagination": {
"page": 1,
"pageSize": 1,
"pageCount": 32,
"total": 32
},
"rateLimit": {
"limit": 125,
"remaining": 124,
"reset": 1793491200000
}
}
}Fields
| Field | Type | Notes |
|---|---|---|
| id | string | |
| uid | string | |
| slug | string | |
| location | string | |
| name | string | |
| nickname | string | |
| abbreviation | string | |
| displayName | string | |
| shortDisplayName | string | |
| color | string | |
| alternateColor | string | |
| logos | object[] | |
| record | string | |
| standingSummary | string | |
| league | object | |
| venue | object | |
| isActive | boolean | |
| isAllStar | boolean |
League support
Checked against live data on 2026-10-04: 29 available, 0 limited, 0 seasonal or not verified, 0 not available.
Code samples
curl
curl -H "Authorization: Bearer $RSA_API_KEY" \
"https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/teams?limit=1"JavaScript (fetch)
const res = await fetch("https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/teams?limit=1", {
headers: { Authorization: `Bearer ${process.env.RSA_API_KEY}` }
});
const { success, data, meta } = await res.json();
console.log(data, meta.rateLimit);Python (requests)
import os, requests
res = requests.get(
"https://www.realtimesportsapi.com/api/v1/sports/football/leagues/nfl/teams?limit=1",
headers={"Authorization": f"Bearer {os.environ['RSA_API_KEY']}"},
timeout=10,
)
body = res.json()
print(body["data"])MCP prompt (Claude, Cursor, ChatGPT)
Using the Realtime Sports MCP server (https://www.realtimesportsapi.com/api/mcp), call list_teams with sport "football" and league "nfl" and list the teams for NFL.Connect the hosted MCP server first: setup guide. Each tool call counts as one API call.
Rate limits and pricing
| Plan | Price | Calls | Rate | WebSocket | Webhooks |
|---|---|---|---|---|---|
| Free | $0 | 125/mo (1,000 first 30 days) | 1/s | 500 msgs/mo | No |
| Starter | $29/mo ($290/yr) | 10,000/mo | 5/s | Shares monthly pool | Shares monthly pool |
| Growth | $49/mo ($490/yr) | 25,000/mo | 10/s | Shares monthly pool | Shares monthly pool |
| Pro | $99/mo ($990/yr) | 50,000/mo | 20/s | 100,000 msgs/mo | 25,000/mo |
| Scale | $299/mo ($2,990/yr) | 500,000/mo | 100/s | 500,000 msgs/mo | 100,000/mo |
Every successful REST call counts as one call. Over the limit you get HTTP 429 with a Retry-After header. No SLA. Full pricing.
FAQ
- What does the teams endpoint return?
- Teams in a league (paginated) and single-team detail: names, abbreviation, colors, logos, record, standing summary and home venue.
- Which leagues support teams?
- All 29 monitored leagues returned data when we checked on 2026-10-04.
- Is it free to try?
- Yes. The Free plan is $0 with 125 calls per month (1,000 in the first 30 days) at 1 request per second, no card required. Every successful call counts as one call.
- How fresh is the data?
- Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.
- Can I get updates pushed instead of polling?
- Webhooks are included on every paid plan (Starter, Growth, Pro, Scale). WebSocket is included on paid plans, and the Free plan gets a 500-message monthly preview.