Fanatics Live API endpoint
Returns the live and upcoming shows currently listed under a Fanatics Live league: name, status, cover image, viewers, and the hosting channel/shop.
/fanaticslive/browseQuery parameters:
league (required) -- a Fanatics Live league type code. See
GET /fanaticslive/leagues for the full
enumerated list. One of: NFL, NCAA_FB, NBA, MLB, SOCCER, NHL,
POKEMON, STAR_WARS, MLS, UFC, WWE, F1, NASCAR, DISNEY,
GARBAGE_PAIL_KIDS, MAGIC_THE_GATHERING, WNBA, NCAA_BK, GOLF,
VEE_FRIENDS, DUDE_PERFECT, OTHER, ORIGINALS.Notable response behavior:
id is a show's live-stream id -- pass it directly as the id path
parameter to /fanaticslive/show/{id} for that
show's detail page.status reflects Fanatics Live's own show state: ACTIVE (currently
live), PREPARING (scheduled, not yet started), or COMPLETE (ended).
COMPLETE never actually appears from this endpoint -- ended shows drop
out of Fanatics Live's own league feeds essentially immediately; use
GET /fanaticslive/shop/{slug}/shows?status=replay
to browse ended shows by shop.shows array with 200, not 404.league returns 400 before any upstream request is made; an
unrecognized league also returns 400.| Field | Filled in, of 19 checked | Values in the sample |
|---|---|---|
| id | 19 | |
| name | 19 | “POKEMON LIVE AT THEHOBBY!!🥳🚀” and 18 other values |
| cover_image_url | 19 | d10w40ipypj16l.cloudfront.net |
| status | 19 | PREPARING (12), ACTIVE (7) |
| starts_at | 19 | 2026-10-13 to 2026-12-31 |
| viewers | 7 | 3 to 36, median 9 |
| leagues | 19 | median 3 entries |
| channel | 19 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| league | string | Yes | Fanatics Live league type code. See GET /fanaticslive/leagues for the full list. Allowed values: NFL, NCAA_FB, NBA, MLB, SOCCER, NHL, POKEMON, STAR_WARS, MLS, UFC, WWE, F1, NASCAR, DISNEY, GARBAGE_PAIL_KIDS, MAGIC_THE_GATHERING, WNBA, NCAA_BK, GOLF, VEE_FRIENDS, DUDE_PERFECT, OTHER, ORIGINALS. | POKEMON | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanaticslive/browse?league=POKEMON" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"league": "POKEMON",
"shows": [
{
"id": "1b1aeec0-346b-4c8f-941a-bcb8af558a5a",
"name": "$300 151 GODPACK BOUNTY!!",
"cover_image_url": "https://d10w40ipypj16l.cloudfront.net/breaking/live_streams/...jpg?auto=compress",
"status": "ACTIVE",
"starts_at": "2026-09-15T14:24:03.157788Z",
"viewers": 42,
"leagues": [
"Pokemon",
"MTG",
"Other"
],
"channel": {
"id": "29a128bc-98ce-435f-9a5b-f122c779626e",
"name": "WeTheHobby Pokemon",
"shop": {
"id": "8ee6cf3e-96c9-420b-9129-9b4b36c3727f",
"slug": "we-the-hobby",
"name": "WeTheHobby",
"logo_url": "https://d10w40ipypj16l.cloudfront.net/shops/8ee6cf3e-96c9-420b-9129-9b4b36c3727f/logo.png?auto=compress"
}
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/fanaticslive.browseResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanaticslive.BrowseResponse | No | ||||
| data.league | string | No | ||||
| data.shows | array | No | ||||
| data.shows[].channel | fanaticslive.LiveShowChannel | No | ||||
| data.shows[].channel.id | string | No | ||||
| data.shows[].channel.name | string | No | ||||
| data.shows[].channel.shop | fanaticslive.LiveShowShop | No | ||||
| data.shows[].channel.shop.id | string | No | ||||
| data.shows[].channel.shop.logo_url | string | No | ||||
| data.shows[].channel.shop.name | string | No | ||||
| data.shows[].channel.shop.slug | string | No | ||||
| data.shows[].cover_image_url | string | No | ||||
| data.shows[].description | string | No | ||||
| data.shows[].id | string | No | pass as the :id path param to /fanaticslive/show/{id} | |||
| data.shows[].leagues | array | No | ||||
| data.shows[].name | string | No | ||||
| data.shows[].starts_at | string | No | ||||
| data.shows[].status | string | No | ACTIVE, PREPARING, COMPLETE | ACTIVE | Status is the show's own lifecycle state: ACTIVE (currently live), PREPARING (scheduled, not yet started), or COMPLETE (ended -- confirmed live 2026-09-16 via a shop's replay list; ended shows drop out of Fanatics Live's own league/browse feeds essentially immediately, which is why COMPLETE only ever surfaces through a replay-scoped list like GET /fanaticslive/shop/{slug}/shows?status=replay, never from Browse). | |
| data.shows[].viewers | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/fanaticslive/browse?league=POKEMON" \
-H "x-api-key: $CRAWLORA_API_KEY"