Fanatics Live API endpoint
Returns a Fanatics Live live show's detail page: status, viewers, hosting channel/shop, its currently active break/lot, and its full break/lot list.
/fanaticslive/show/{id}Path parameters:
id (required) -- a Fanatics Live show id, e.g. from a
GET /fanaticslive/browse result's id field.Notable response behavior:
status values observed: ACTIVE, PREPARING, COMPLETE (ended -- see GET /fanaticslive/shop/{slug}/shows?status=replay for a way to reach an ended show's id, since ended shows drop out of /fanaticslive/browse's league feeds essentially immediately).current_break is the show's presently active break/lot, omitted when
the show has none active (e.g. between breaks, or before the show
starts). For a break's live digital-instant-rip progress (spot claim
state, the currently revealing item), see
GET /fanaticslive/show/{id}/instant-rips.breaks[].status values observed live: READY, RIPPING, COMPLETE.breaks[].type values observed live: PERSONAL (single buyer),
GROUP (sold by the spot -- see break_spots_counts on
current_break).breaks[].pricing_type values observed live: SET_PRICE. Fanatics
Live's own bidding UI and currentBreakSpotAuction field strongly imply
an auction-priced value also exists but it was not observed live.minimum_bid is omitted when a break has no minimum bid set.id returns 404.id returns 400 before any upstream request is made.| Field | Filled in, of 19 checked | Values in the sample |
|---|---|---|
| id | 19 | |
| title | 19 | “Scarlet Violet SIR's” and 17 other values |
| status | 19 | READY (16), COMPLETE (3) |
| type | 19 | PERSONAL (18), GROUP (1) |
| pricing_type | 19 | SET_PRICE (18), AUCTION (1) |
| minimum_bid | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Fanatics Live show id, e.g. from a browse result's id field | 1b1aeec0-346b-4c8f-941a-bcb8af558a5a | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanaticslive/show/1b1aeec0-346b-4c8f-941a-bcb8af558a5a" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "1b1aeec0-346b-4c8f-941a-bcb8af558a5a",
"name": "$300 151 GODPACK BOUNTY!!",
"status": "ACTIVE",
"starts_at": "2026-09-15T14:24:03.157788Z",
"cover_image_url": "https://d10w40ipypj16l.cloudfront.net/breaking/live_streams/...jpg?auto=compress",
"viewers": 42,
"country": "US",
"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",
"description": "WeTheHobby global sports card entertainment company...",
"follower_count": 85378
}
},
"current_break": {
"id": "2b86dd9c-80e5-42fb-8534-be5007254f0f",
"title": "THE SUN(BREON) BREAK 6x Prismatic Booster Bundle PYE Break (36x Prismatic Booster Packs) #0915-3",
"status": "READY",
"type": "GROUP",
"pricing_type": "SET_PRICE",
"break_spots_counts": {
"available": 5,
"claimed": 3,
"total": 8
}
},
"breaks": [
{
"id": "743e3e3b-c372-4e85-b1bf-d58c60b1e154",
"title": "Magic The Gathering Lorwyn Eclipsed Play Booster Box",
"status": "READY",
"type": "PERSONAL",
"pricing_type": "SET_PRICE"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/fanaticslive.showResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanaticslive.ShowResponse | No | ||||
| data.breaks | array | No | ||||
| data.breaks[].id | string | No | ||||
| data.breaks[].minimum_bid | fanaticslive.Money | No | ||||
| data.breaks[].minimum_bid.amount | number | No | ||||
| data.breaks[].minimum_bid.amount_display | string | No | ||||
| data.breaks[].minimum_bid.currency | string | No | ||||
| data.breaks[].pricing_type | string | No | SET_PRICE | SET_PRICE | ||
| data.breaks[].status | string | No | READY, RIPPING, COMPLETE | READY | ||
| data.breaks[].title | string | No | ||||
| data.breaks[].type | string | No | PERSONAL, GROUP | PERSONAL | ||
| data.channel | fanaticslive.ShowChannel | No | ||||
| data.channel.id | string | No | ||||
| data.channel.name | string | No | ||||
| data.channel.shop | fanaticslive.ShowChannelShop | No | ||||
| data.channel.shop.description | string | No | ||||
| data.channel.shop.follower_count | integer | No | ||||
| data.channel.shop.id | string | No | ||||
| data.channel.shop.logo_url | string | No | ||||
| data.channel.shop.name | string | No | ||||
| data.channel.shop.slug | string | No | ||||
| data.country | string | No | ||||
| data.cover_image_url | string | No | ||||
| data.current_break | fanaticslive.CurrentBreak | No | ||||
| data.current_break.break_spots_counts | fanaticslive.BreakSpotsCounts | No | ||||
| data.current_break.break_spots_counts.available | integer | No | ||||
| data.current_break.break_spots_counts.claimed | integer | No | ||||
| data.current_break.break_spots_counts.total | integer | No | ||||
| data.current_break.id | string | No | ||||
| data.current_break.minimum_bid | fanaticslive.Money | No | ||||
| data.current_break.minimum_bid.amount | number | No | ||||
| data.current_break.minimum_bid.amount_display | string | No | ||||
| data.current_break.minimum_bid.currency | string | No | ||||
| data.current_break.pricing_type | string | No | SET_PRICE | SET_PRICE | PricingType: SET_PRICE was observed live; Fanatics Live's own bid/ bidV2 mutations and currentBreakSpotAuction field strongly imply an auction-priced value also exists but it was not observed live. | |
| data.current_break.status | string | No | READY, RIPPING, COMPLETE | READY | Status: READY, RIPPING, and COMPLETE were observed live; other transitional states almost certainly also exist but were not observed. | |
| data.current_break.title | string | No | ||||
| data.current_break.type | string | No | PERSONAL, GROUP | PERSONAL | Type: PERSONAL (single buyer) and GROUP (sold by the spot) were observed live. | |
| data.description | string | No | ||||
| data.id | string | No | ||||
| data.leagues | array | No | ||||
| data.name | string | No | ||||
| data.starts_at | string | No | ||||
| data.status | string | No | ACTIVE, PREPARING, COMPLETE | ACTIVE | Status: see LiveShow.Status for the full confirmed enum. | |
| data.viewers | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/show/1b1aeec0-346b-4c8f-941a-bcb8af558a5a" \
-H "x-api-key: $CRAWLORA_API_KEY"