Endpoint Playground
Calls the app's cached-pull feed route - `GET /tiktok/feed/offline/v2` - which answers protobuf, and returns a schema-free decode: field numbers become keys, printable length-delimited fields become strings and nested messages become objects, plus a flat list of every string leaf (`strings`), which is the fastest way to mine video ids and captions. Field numbering is inferred because TikTok publishes no schema for this message. This is the cached/offline pull variant, not the primary `POST /aweme/v2/feed/` feed already exposed as `/tiktok/mobile/feed/post`. The route is signature-validated, so it needs device-backed request signing to be configured for the deployment and fails with an error when it is not.
curl 'https://api.crawlora.net/api/v1/tiktok/mobile/feed/offline' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| pull_type | integer | No | Pull type forwarded to the app route (measured 0 and 11; default 11) | |
| count | integer | No | Page size, bounded at 50 (upstream default when omitted) |
{
"code": 200,
"msg": "OK",
"data": {
"pull_type": 11,
"count": 10,
"items": {
"f1": {
"f1": "7691695255472898698",
"f3": "This Bread Bowl Melts Perfectly Over Campfire ..."
},
"f2": 0
},
"strings": [
"7691695255472898698",
"This Bread Bowl Melts Perfectly Over Campfire ...",
"..."
],
"host": "aggr16-normal.tiktokv.us",
"note": "field numbers are inferred; this route answers protobuf with no published schema"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.