TikTok API endpoint
Returns one place's compact record, keyed by the `poi_id` that the place search endpoint returns. The upstream is TikTok's POI read (`/tiktok/poi/get/v1`), the record behind a place card: `name`, `address`, `category`, `average_price`, `latitude`/`longitude`, `city_code`/`region_code`, `review_score` with `review_count`/`no_rating`, `video_count`, `favorite_count`, `opening_hours`/`opening_status`, `cover`, `share_url`/`share_desc` and `parent_poi`, plus the upstream POI object unmodified in `place` so a richer field is never lost. This is the cheap lookup to use instead of the ~1 MB slash detail page when only the place record is needed. A nonexistent id answers 400 (the upstream business status 3009009 "poi not exist" is a caller error, not an outage). Measured 2026-10-21 with the pure-Go (device-free) signer: 4,594 B for a coffee shop (score 4.7 / 2 reviews, price "$", hours "8:00 AM – 5:00 PM", 11 videos), 4,623 B for a second location (score 4.8 / 13 reviews). The route is not signature-gated, so it does not need the device-backed signer.
/tiktok/mobile/place/infoOne place's compact record, keyed by the poi_id the place search endpoint returns. The upstream is TikTok's POI
read GET /tiktok/poi/get/v1, captured from the running 47.4.3 app on the place detail screen and reproduced
end-to-end against the live gateway. This is the record behind a place card — use it instead of the ~1 MB
place detail page when you only need the place itself.
Typed fields plus the raw record. The response projects the fields callers key on (name, address,
category, average_price, latitude/longitude, review_score with review_count and no_rating,
video_count, favorite_count, opening_hours/opening_status, cover, share_url/share_desc,
parent_poi, city_code/region_code) and also returns the upstream POI object unmodified in place, so a
richer or newly added field is never lost.
Device-free. The route is not signature-value gated: the pure-Go placeholder signer returned the same record,
so a deployment needs TIKTOK_MOBILE_PARAMS but not the device-backed signer
(TIKTOK_MOBILE_SIGNER_URL). It answers on the core aggr16-normal.tiktokv.us / api16-normal-useast5.tiktokv.us
pair (and also on aggr32/api32, so there is no required origin host like the slash detail page).
Query parameters:
poi_id: required. The numeric place id from /api/v1/tiktok/mobile/search/place (poi_info rows).Errors:
poi_id is missing, non-numeric, or does not resolve. A nonexistent id answers the upstream
business status 3009009 "poi not exist", which is a caller error here rather than an outage.Measured 2026-10-21 (placeholder/device-free signer, core pair):
| call | result |
|---|---|
poi_id=42203861086875992 (304 Ord St) | 4,594 B; "Nam Coffee", "304 Ord St, Los Angeles, CA 90012, USA", Coffee Shop, "$", score 4.7 / 2 reviews, hours "8:00 AM – 5:00 PM", 11 videos |
poi_id=21568226355448582 (4876 Fountain Ave) | 4,623 B; same chain, score 4.8 / 13 reviews, 364 favourites |
poi_id=1 | upstream status 3009009 "poi not exist" → 400 |
| shipped-service canary | name="Nam Coffee" score=4.7 reviews=2 videos=11, 1.837 s |
Example request:
GET /api/v1/tiktok/mobile/place/info?poi_id=42203861086875992
Example response (truncated):
{
"code": 200,
"msg": "OK",
"data": {
"poi_id": "42203861086875992",
"name": "Nam Coffee",
"address": "304 Ord St, Los Angeles, CA 90012, USA",
"category": "Coffee Shop",
"average_price": "$",
"latitude": "34.060090",
"longitude": "-118.239007",
"review_score": 4.7,
"review_score_display": "4.7",
"review_count": 2,
"no_rating": false,
"video_count": 11,
"favorite_count": 1,
"opening_hours": "8:00 AM – 5:00 PM",
"opening_status": true,
"cover": {"uri": "tiktok-obj/poi_detail_cover_3x.png", "url_list": ["..."]},
"share_url": "https://www.tiktok.com/place/Nam-Coffee-42203861086875992",
"share_desc": "Nam Coffee",
"is_collected": false,
"claim_store_status": false,
"parent_poi": {"id": "22535796484723736", "keyword": "East Los Angeles", "scheme": "aweme://poi/detail"},
"place": {"poi_name": "Nam Coffee", "collect_info": "{\"has_hours\":1,...}", "...": "the upstream POI object"},
"host": "aggr16-normal.tiktokv.us",
"fetched_at": "2026-10-21T16:22:08Z"
}
}
Notes for callers:
video_count is the app's own counter, not the length of the place video list: one measured place reported
video_count: 0 while /api/v1/tiktok/mobile/place/videos returned 17 videos. Use the video list for the real
set.opening_hours is the app's display string (OpeningHoursForPoiDetail); the structured flags live in the raw
place.collect_info string and store_info.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| poi_id | string | Yes | Place id from the place search endpoint | 42203861086875992 |
curl -X GET "https://api.crawlora.net/api/v1/tiktok/mobile/place/info?poi_id=42203861086875992" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"poi_id": "42203861086875992",
"name": "Nam Coffee",
"address": "304 Ord St, Los Angeles, CA 90012, USA",
"category": "Coffee Shop",
"average_price": "$",
"latitude": "34.060090",
"longitude": "-118.239007",
"review_score": 4.7,
"review_score_display": "4.7",
"review_count": 2,
"no_rating": false,
"video_count": 11,
"favorite_count": 1,
"opening_hours": "8:00 AM – 5:00 PM",
"opening_status": true,
"cover": {
"uri": "tiktok-obj/poi_detail_cover_3x.png",
"url_list": [
"..."
]
},
"share_url": "https://www.tiktok.com/place/Nam-Coffee-42203861086875992",
"share_desc": "Nam Coffee",
"is_collected": false,
"claim_store_status": false,
"parent_poi": {
"id": "22535796484723736",
"keyword": "East Los Angeles",
"scheme": "aweme://poi/detail"
},
"place": {
"poi_name": "Nam Coffee",
"collect_info": "{\"has_hours\":1,...}",
"...": "the upstream POI object"
},
"host": "aggr16-normal.tiktokv.us",
"fetched_at": "2026-10-21T16:22:08Z"
}
}Request schema
No body schema
Response schema
#/definitions/tiktokmobile.placeInfoResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| address | string | No | 304 Ord St, Los Angeles, CA 90012, USA | |||
| average_price | string | No | $ | |||
| category | string | No | Coffee Shop | |||
| city_code | string | No | 116023605 | |||
| claim_store_status | boolean | No | false | |||
| cover | unknown | No | ||||
| favorite_count | integer | No | 1 | |||
| fetched_at | string | No | ||||
| host | string | No | aggr16-normal.tiktokv.us | |||
| is_collected | boolean | No | false | |||
| latitude | string | No | 34.060090 | |||
| longitude | string | No | -118.239007 | |||
| name | string | No | Nam Coffee | |||
| no_rating | boolean | No | false | |||
| opening_hours | string | No | 8:00 AM – 5:00 PM | |||
| opening_status | boolean | No | true | |||
| parent_poi | unknown | No | ||||
| place | object | No | ||||
| poi_id | string | No | 42203861086875992 | |||
| region_code | string | No | 6252001 | |||
| review_count | integer | No | 2 | |||
| review_score | number | No | 4.7 | |||
| review_score_display | string | No | 4.7 | |||
| share_desc | string | No | Nam Coffee | |||
| share_url | string | No | https://www.tiktok.com/place/Nam-Coffee-42203861086875992 | |||
| video_count | integer | No | 11 |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid input, or the place id does not exist | #/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/place/info?poi_id=42203861086875992" \
-H "x-api-key: $CRAWLORA_API_KEY"