TikTok API endpoint
Lists the effects one creator published unmodified in `effect`: each row carries the `effect_id`, `name`, `desc`, `icon_url`, `effect_source`, attributions, linked anchors and moderation status, with cursor paging (`cursor`/`has_more`). `user_id` must be the numeric uid. A creator with no published effects returns an empty list.
/tiktok/mobile/user/original-effectsQuery parameters:
user_id: required. The creator's numeric uid.cursor: optional. Paging token from the previous response. Default: 0.count: optional. Effects per page, bounded at 50. Default: 10.Measured 2026-10-24: uid 107955 (@tiktok) -> HTTP 200, 1,142 B, 1 effect,
cursor 1, has_more 0; another creator -> 222 B, 0 effects.
Example request:
GET /api/v1/tiktok/mobile/user/original-effects?user_id=107955&count=10
Example response (truncated):
{
"code": 200,
"msg": "OK",
"data": {
"effect": [
{"effect_id": "...", "name": "...", "desc": "...", "icon_url": {"url_list": ["https://..."]},
"effect_source": 1, "is_top_effect": false, "moderation_status": 1}
],
"cursor": 1,
"has_more": false,
"status_code": 0
}
}
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| user_id | string | Yes | Creator's numeric uid | 107955 | |
| cursor | integer | No | Paging token from the previous response | ||
| count | integer | No | Effects per page (max 50) |
curl -X GET "https://api.crawlora.net/api/v1/tiktok/mobile/user/original-effects?user_id=107955&count=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"effect": [
{
"effect_id": "...",
"name": "...",
"desc": "...",
"icon_url": {
"url_list": [
"https://..."
]
},
"effect_source": 1,
"is_top_effect": false,
"moderation_status": 1
}
],
"cursor": 1,
"has_more": false,
"status_code": 0
}
}Request schema
No body schema
Response schema
#/definitions/tiktokmobile.userOriginalEffectsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tiktokmobile.UserOriginalEffectsResponse | No | ||||
| data.cursor | integer | No | ||||
| data.effect | array | No | ||||
| data.extra | unknown | No | ||||
| data.has_more | boolean | No | ||||
| data.log_pb | unknown | No | ||||
| data.status_code | integer | No | ||||
| data.status_msg | string | 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/user/original-effects?user_id=107955&count=10" \
-H "x-api-key: $CRAWLORA_API_KEY"