Guides

Get TikTok user videos

List a TikTok user's videos with one GET request. Normalized posts with metrics, cursor pagination, and a since filter.

To get a TikTok user's videos, call the profile posts endpoint with the user's handle or ID. Each page returns normalized video posts with metrics; pass the cursor back for the next page.

curl "https://api.openhandle.dev/v1/tiktok/profiles/@tiktok/posts" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
{
  "platform": "tiktok",
  "resource": "post",
  "capturedAt": "2026-08-06T12:04:11Z",
  "source": "live",
  "data": ["…normalized posts…"],
  "meta": {
    "cursors": { "next": "b3BhcXVlLWN1cnNvcg" }
  }
}

Each post includes id, url, caption, publishedAt, the author, media, hashtags, mentions, and metrics: views, likes, comments, shares, reposts, saves, downloads. TikTok views count loops; see metric semantics before comparing across platforms. Missing metrics are null, never 0.

Paginate

Pass meta.cursors.next back as cursor:

curl "https://api.openhandle.dev/v1/tiktok/profiles/@tiktok/posts?cursor=b3BhcXVlLWN1cnNvcg" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"

When next is null, you have every visible video. Each page is one billable request; cursors are opaque and bound to the request that produced them. Full rules in pagination.

Limit history with since

Only need recent videos? Pass an RFC 3339 timestamp and pagination stops when posts get older than it:

curl "https://api.openhandle.dev/v1/tiktok/profiles/@tiktok/posts?since=2026-07-01T00:00:00Z" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"

Freshness and price

Add ?freshness=live|24h|7d|30d. The default is 24h. Cached pages are cheaper than live pages. A 30-day cache hit is free. A cache miss falls back to a live fetch at the live price. See pricing.

On this page