Endpoint Playground
Returns one page of the videos posted at a place, keyed by the `poi_id` that the place search endpoint returns. The upstream is `/tiktok/poi/video/list/v1`: `aweme_list` holds the app's full video objects (id, description, author, statistics, media URLs, music, anchors, ...) and `item_count` is this page's size. Page with `cursor`: the returned `cursor` is a reusable next-page token (measured page 1 `cursor: 20` with `has_more: 1`, page 2 `cursor: 40`), never with arithmetic on `count`. `count` is a page-size hint, not a strict size: 1/2/5 returned exactly that many items on the first page, a later page returned 8 for count=5, and 10/20/50 were all server-capped at 17. Measured 2026-10-21 with the pure-Go (device-free) signer: 11 videos (940-944 KB) on one place, 17 videos (1.4 MB) on another. The route exposes no sort control: `sort_type` and `order` were measured and did not change the page or its order. The upstream throttles bursts, so paced clients are expected. The route is not signature-gated, so it does not need the device-backed signer.
curl 'https://api.crawlora.net/api/v1/tiktok/mobile/place/videos?poi_id=42203861086875992' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| poi_id | string | Yes | 42203861086875992 | Place id from the place search endpoint |
| count | integer | No | Page-size hint: 1-50 measured, server caps larger pages (default is the app default) | |
| cursor | integer | No | Next-page token from the previous response (0 = first page) |
{
"code": 200,
"msg": "OK",
"data": {
"poi_id": "21568226355448582",
"aweme_list": [
{
"aweme_id": "7381867551816469803",
"desc": "lychee green tea @Nam Coffee 👌🏼",
"author": {
"unique_id": "amanda.bynes_"
},
"statistics": {
"digg_count": 15068,
"comment_count": 42,
"play_count": 2668020,
"share_count": 1569
}
}
],
"item_count": 5,
"cursor": 5,
"has_more": true,
"host": "aggr16-normal.tiktokv.us",
"fetched_at": "2026-10-21T16:30:12Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.