TikTok API endpoint
Returns the complete LIVE effects/sticker asset catalogue in one call: `data.assets` (2,032 assets, each with `id`, `name`, `describe`, `resource_url`, `resource_uri`, `md5`, `size`, `resource_type`, `download_type`, `model_requirements`, `sticker_asset_variant` and `video_resource_list`). There are no request parameters and no paging, and the body is large because the catalogue is complete.
/tiktok/mobile/live/effectsReturns the complete LIVE effects/sticker asset catalogue in a single call: data.assets (2,032 assets in the measured response), where each asset carries id, name, describe, resource_url, resource_uri, md5, size, resource_type, download_type, model_requirements, sticker_asset_variant and video_resource_list.
This route takes no request parameters and has no paging: the upstream response is one complete catalogue dump (the measured body is 2,265,625 bytes), so the envelope carries no cursor and no has_more. The response is large because the catalogue itself is large, not because of paging; request it once and cache it rather than polling.
Query parameters: none.
Example response (truncated to one asset; a real response contains the full catalogue):
{
"code": 200,
"msg": "OK",
"data": {
"data": {
"assets": [
{
"id": "1",
"name": "example",
"describe": "example",
"resource_url": {"url_list": ["https://example.invalid/asset.webp"]},
"resource_uri": "example",
"md5": "example",
"size": 1,
"resource_type": 1,
"download_type": 1,
"model_requirements": [],
"sticker_asset_variant": 1,
"video_resource_list": []
}
]
},
"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/effects" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"data": {
"assets": [
{
"id": "1",
"name": "example",
"describe": "example",
"resource_url": {
"url_list": [
"https://example.invalid/asset.webp"
]
},
"resource_uri": "example",
"md5": "example",
"size": 1,
"resource_type": 1,
"download_type": 1,
"model_requirements": [],
"sticker_asset_variant": 1,
"video_resource_list": []
}
]
},
"extra": {
"log_id": "example",
"now": 1792283000
},
"status_code": 0
}
}Request schema
No body schema
Response schema
#/definitions/tiktokmobile.liveEffectsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tiktokmobile.WebcastEffectsResponse | No | ||||
| data.data | tiktokmobile.WebcastEffectsData | No | ||||
| data.data.assets | array | 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/effects" \
-H "x-api-key: $CRAWLORA_API_KEY"