Endpoint Playground
Returns one place detail page, keyed by the `poi_id` that the place search endpoint returns. The upstream is TikTok's server-driven UI (`/tiktok/poi/slash/v1`) frame stream, assembled here into the component map of the place-detail screen: `food_head_info` (place name, formatted address, category, phone, coordinates, opening hours, rating/score with mention count, price range, tags and photo album), `poi_top_videos` (top videos strip), `poi_limited_post` (posts about the place: full video items plus `aweme_cursor`/`has_more_aweme`), `poi_review` (review preview with `has_more`) and `ai_summary` when the place has one. `nodes` is opaque and complete, `frames` keeps the raw ordered frames, and the typed counters (`top_video_count`, `post_count`, `post_cursor`, `has_more_posts`, `review_count`, `has_more_reviews`) are convenience projections. The measured page-size controls are forwarded with the app's defaults but the server applies its own bounds. 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/detail?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 |
| review_count | integer | No | Review preview size forwarded upstream (default 20, bounded at 50) | |
| review_cursor | integer | No | Review cursor forwarded upstream (default 0) | |
| merged_count | integer | No | Posts page size forwarded upstream (default 9, bounded at 50) | |
| video_cursor | integer | No | Top-videos cursor forwarded upstream (default 0) | |
| enter_from | string | No | Forwarded analytics origin (default search_places) |
{
"code": 200,
"msg": "OK",
"data": {
"poi_id": "42203861086875992",
"page_id": "100614404",
"frame_count": 4,
"nodes": {
"food_head_info": {
"data": {
"poi_name": "Nam Coffee",
"formatted_address": "304 Ord St, Los Angeles, CA 90012, USA",
"category_name": "Coffee Shop",
"recommend_score": {
"score": "4.4",
"max_score": "5.0",
"mentioned_count": "33",
"desc": "Good choice"
},
"store_info": {
"OpeningHoursForPoiDetail": "Opens 8:00 AM"
},
"location": {
"lat": "34.060090",
"lng": "-118.239007"
}
}
},
"poi_top_videos": {
"data": {
"item_list": [
{
"item_type": 1,
"aweme_topic_tag_en": "Iced Vietnamese Coffee"
}
]
}
},
"poi_limited_post": {
"data": {
"item_list": [],
"aweme_cursor": 9,
"has_more_aweme": 1
}
},
"poi_review": {
"data": {
"reviews": [],
"has_more": 0
}
}
},
"top_video_count": 6,
"post_count": 9,
"post_cursor": 9,
"has_more_posts": true,
"review_count": 3,
"has_more_reviews": false,
"host": "aggr32-normal.tiktokv.us"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.