tiktok-user-videos
The latest videos of one public TikTok account, newest first, one row per video: its text and hashtags, when it was posted, the author, plays, likes, comments, shares and saves, length, cover and sound. account is the @handle, the profile URL, or TikTok's secUid (MS4wLjABAAAA…, one call less); limit how many videos (default 20, at most 100). About 1 to 3 s; when TikTok does not answer, a slower second source does for a handle (minutes). An unknown or private account gives 0 rows with the reason in the warnings.
Recipes are not open yet.
What this recipe returned on its last run. No key needed to look.
Fields
10 columns on every row. null means the site does not state it.| field | type | meaning |
|---|---|---|
| post_id | string | TikTok's id of the video (digits, as a string). |
| url | string | The video's page, https://www.tiktok.com/@<handle>/video/<id>. |
| description | string | The video's text as written, emoji and hashtags included; null when it has none. |
| hashtags | any[] | The hashtags in the text, without the #, in order, each once. |
| created_at | string | When it was posted, ISO 8601 UTC (2026-10-08T13:12:22Z). |
| author | object | {username, name, followers}: username is the handle without @, name the display name, followers an integer. |
| stats | object | {plays, likes, comments, shares, saves}, integers, as TikTok counts them (large counts are rounded by TikTok: 1400000). |
| duration_s | number | The video's length in seconds. |
| cover | string | The cover image URL; it is signed by TikTok and stops working after some hours. |
| music | object | The sound, {title, author, original}: original is true for a sound made for this video. |
null means the site does not state it.
How it behaves
Cost. 2 units + 1 per 15 (1 by secUid). A failed run costs 0.
Freshness 15 min. The same input within 15 min is served from cache at 0 units.
How it answers. Answers at once for one input; a large run goes as a job you poll.
Questions about this recipeQuestions
Short answers. The API reference has the long ones.
Call POST /recipes/tiktok-user-videos with your key and account and limit. You get rows with the 10 fields above. The recipe is tested against the live site every 6 hours.
2 units + 1 per 15 (1 by secUid). A failed run costs 0. The same input within 15 min costs 0.
Yes. Sign up with Google, GitHub or email for a free key with 1,000 credits every month. No credit card.
The health check runs every 6 hours against the live site. A failing recipe shows as failing on this page until we fix it.
Extra fields, higher volume, or a private copy with a freshness SLA. We build it on Enterprise.
Request a changeMore for social listening
All 24 recipes →The latest messages of a public Telegram channel, from its web preview page: text, time, view count, the message's link and id, newest…
A public Facebook page's posts as its first load carries them (no paging): one row per post with id, URL, text (first 1000 chars), time…
One public Facebook post as one row: id, URL, author, text, time posted, reactions in total and by type, comments, shares, photos and…
For developers
Get a free API key and run your first crawl.
1,000 credits every month. No credit card. Your self-hosted setup keeps working.
For teams
Talk to us about volume, regions and an SLA.
A 30-minute call with the team that writes the crawler. DPA on request, invoice billing, your choice of US, EU or Singapore.