TikTok API endpoint
Returns the complete LIVE gift catalogue in one call: `data.gifts` (771 gift objects with `diamond_count`, `describe`, `duration`, `gift_resources`, `gift_skins`, `batch_gift_info` and `combo`) plus the gift config and resource maps (`gift_configs`, `gifts_info`, `doodle_templates`, `gift_name_group_map`, `gift_resource_group_map`). There are no request parameters and no paging: the response is a single complete catalogue.
/tiktok/mobile/live/giftsReturns the complete LIVE gift catalogue in a single call: data.gifts (771 gift objects in the measured response, each carrying diamond_count, describe, duration, combo, batch_gift_info, biz_extra, can_put_in_gift_box, color_infos, gift_resources and gift_skins) plus the gift config and resource maps (gift_configs, gifts_info, doodle_templates, exclusive_recommend_infos, beacon_bubble_priorities, gift_name_group_map, gift_resource_group_map).
This route takes no request parameters and has no paging: the upstream response is one complete catalogue dump (the measured body is 1,734,168 bytes), so the envelope carries no cursor and no has_more. data is returned as an opaque object so every upstream key survives unmodified.
Query parameters: none.
Example response (truncated to one gift; a real response contains the full catalogue):
{
"code": 200,
"msg": "OK",
"data": {
"data": {
"gifts": [
{
"diamond_count": 1,
"describe": "example",
"duration": 5,
"combo": true,
"can_put_in_gift_box": false,
"batch_gift_info": {},
"biz_extra": {},
"color_infos": [],
"gift_resources": {"resource_url": {"url_list": ["https://example.invalid/gift.png"]}},
"gift_skins": []
}
],
"gift_configs": {},
"gifts_info": {},
"doodle_templates": [],
"exclusive_recommend_infos": [],
"beacon_bubble_priorities": [],
"gift_name_group_map": {},
"gift_resource_group_map": {}
},
"extra": {"log_id": "example", "now": 1792283000},
"status_code": 0
}
}
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/tiktok/mobile/live/gifts" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"data": {
"gifts": [
{
"diamond_count": 1,
"describe": "example",
"duration": 5,
"combo": true,
"can_put_in_gift_box": false,
"batch_gift_info": {},
"biz_extra": {},
"color_infos": [],
"gift_resources": {
"resource_url": {
"url_list": [
"https://example.invalid/gift.png"
]
}
},
"gift_skins": []
}
],
"gift_configs": {},
"gifts_info": {},
"doodle_templates": [],
"exclusive_recommend_infos": [],
"beacon_bubble_priorities": [],
"gift_name_group_map": {},
"gift_resource_group_map": {}
},
"extra": {
"log_id": "example",
"now": 1792283000
},
"status_code": 0
}
}Request schema
No body schema
Response schema
#/definitions/tiktokmobile.liveGiftsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tiktokmobile.WebcastGiftListResponse | No | ||||
| data.data | unknown | No | ||||
| data.extra | unknown | No | ||||
| data.status_code | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid input | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/tiktok/mobile/live/gifts" \
-H "x-api-key: $CRAWLORA_API_KEY"