InsightSocial API
How-to

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
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.

Response (shortened)
{
  "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
}
FieldWhat it holds
data.items[].postOne video in the shared post shape: caption, video and thumbnail URLs, duration, views, likes, comments, shares, saves, publish time.
data.items[].post.authorThe account that posted the video.
data.items[].post.ext.regionThe 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_textsText typed onto the video with TikTok's text tool, when there is any.
data.totalnull: 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.

Python: walk the first 5 pages
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.total is null; you find the end when has_more is false.

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.

On this page