Get TikTok videos tagged at a location
List public TikTok videos tagged at a place, with views, likes, captions and authors, by TikTok place ID. 10 credits per page of 20 videos.
To list the TikTok videos tagged at a place, call GET /v1/tiktok/location/posts with TikTok's location_id for that place. Each page returns 20 public videos with their view, like, comment, share and save counts, caption, author and a playable video URL. It costs 10 credits a page.
Cost
10 credits per page of 20 videos. Walking 10 pages (200 videos) costs 100 credits. Asking for the same page again within 6 hours is answered from the shared cache for 2 credits. Failed calls and empty results are free, and so is an unknown place ID.
How do I find the location ID?
The location_id is TikTok's own place ID, the long number in the URL of that place's page on TikTok. Open a video that has a location tag, tap the place name, and copy the number from the URL: a place page whose URL ends in 22535865202815278 has that ID.
The API has no TikTok place search, so you cannot look up an ID by name; take it from the place page. GET /v1/instagram/search/location returns Instagram's location IDs, which are a different system.
The optional region parameter takes a two-letter country code (US, GB, …) and fetches the videos as seen from that country. It defaults to US.
Make the request
curl "https://api.insightsocial.app/v1/tiktok/location/posts?location_id=22535865202815278" \
-H "x-api-key: $INSIGHTSOCIAL_API_KEY"What comes back
A real response from 2026-10-14 for the place ID above; its videos are from Seoul. Shortened: one video instead of 20, long URLs cut, and the poster's account replaced with a placeholder.
{
"success": true,
"endpoint": "/v1/tiktok/location/posts",
"schema_version": "2",
"data": {
"items": [
{
"post": {
"id": "7695743564919213364",
"url": "https://www.tiktok.com/@example_creator/video/7695743564919213364",
"kind": "short",
"content": {
"text": "✨ Myeongdong Street 명동 거리 — Seoul’s Vibrant Heart 🇰🇷 …",
"media_urls": ["https://v16m.tiktokcdn-us.com/…"],
"thumbnail_url": "https://p19-common-sign.tiktokcdn-us.com/…",
"duration_seconds": 21.034
},
"author": { "id": "…", "username": "example_creator", "display_name": "Example Creator", "verified": false },
"engagement": { "views": 4951, "likes": 324, "comments": 6, "shares": 12, "saves": 50 },
"published_at": "2026-10-12T11:35:36.000Z",
"ext": { "music_id": "7695743622973131528", "download_count": 7, "region": "KR" }
}
}
],
"total": null,
"truncated": null
},
"pagination": { "next_cursor": "v2c.sscG5h7wUiZWtLX_…", "has_more": true, "page_size": 20 },
"unavailable": [],
"credits_used": 10
}| Field | What it holds |
|---|---|
data.items[].post | One video in the shared post shape: caption, video and thumbnail URLs, duration, views, likes, comments, shares, saves, publish time. |
data.items[].post.author | The account that posted the video. |
data.items[].post.ext.region | The region TikTok assigns to the video, not the place. One Seoul page carried KR, US, IT, DE, KE, VN and TH. |
data.items[].post.ext.on_screen_texts | Text typed onto the video with TikTok's text tool, when there is any. |
data.total | null: TikTok does not say how many videos are tagged at the place. |
How do I get more than 20 videos?
Send pagination.next_cursor back as cursor, with the same location_id and region, and stop when pagination.has_more is false. Each page is 10 credits.
import os
import requests
BASE = "https://api.insightsocial.app/v1"
HEADERS = {"x-api-key": os.environ["INSIGHTSOCIAL_API_KEY"]}
params = {"location_id": "22535865202815278"}
videos = []
for _ in range(5):
body = requests.get(f"{BASE}/tiktok/location/posts", params=params, headers=HEADERS, timeout=120).json()
videos += body["data"]["items"]
if not body["pagination"]["has_more"]:
break
params["cursor"] = body["pagination"]["next_cursor"]See Pagination for the full rules.
What are the limits?
- Place ID only. There is no TikTok place search in the API. Copy the ID from the place page URL.
- Unknown place versus quiet place. An ID TikTok does not know is a 404 not-found and is refunded. A real place with nothing recent returns an empty list, which is also free.
- Order. Videos are not sorted by date: one page mixed videos posted between January 30 and October 14, 2026. Sort in your own code if you need to.
- Public videos only. Videos from private accounts never appear.
- No total.
data.totalisnull; you find the end whenhas_moreisfalse.
What can I build with it?
- Venue and destination monitoring. Track views and new videos at a hotel, restaurant, venue or city over time.
- Local creator discovery. The authors of the most-viewed videos at a place are creators already covering it.
- Event coverage. Pull the videos tagged at a stadium or festival ground in the days after an event.
Related
GET /v1/tiktok/location/postsreference: every parameter and field.GET /v1/instagram/location/posts: the same question on Instagram, withGET /v1/instagram/search/locationto find the ID by name.- TikTok endpoints: everything the API covers on TikTok.
Find TikTok creators similar to one you know
Get about 30 TikTok accounts similar to a seed creator, with bio, verified badge and follower, video and like counts. 50 credits per call.
Read on-screen text from TikTok and Instagram posts
Get the text burned into a TikTok video or shown on an Instagram post's images, read by OCR, from the post URL. 50 credits per post.