tiktok-post
One public TikTok video post as one row: its text and hashtags, when it was posted, the author (handle, name, followers, verified), plays, likes, comments, shares and saves, length, cover, sound and subtitles. post is the post's URL or its id (the long number after /video/). About 1 s; when TikTok does not answer, a slower second source does.
Recipes are not open yet.
What this recipe returned on its last run. No key needed to look.
Fields
12 columns on every row. null means the site does not state it.| field | type | meaning |
|---|---|---|
| post_id | string | TikTok's id of the post (digits, as a string). |
| url | string | The post's page, https://www.tiktok.com/@<handle>/video/<id>. |
| description | string | The post's text as written, emoji 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-06-22T02:11:46Z). |
| author | object | {username, name, id, verified, followers}: username is the handle without @. |
| stats | object | {plays, likes, comments, shares, saves}, integers, as TikTok rounds them on the page. |
| 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 post. |
| subtitles | object[] | The caption tracks, a list of {language, url}; each URL is signed and short-lived. |
| region | string | The country code TikTok gives for the post (US). |
null means the site does not state it.
How it behaves
Cost. 1 unit; 1 record when it falls back. 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-post with your key and post. You get rows with the 12 fields above. The recipe is tested against the live site every 6 hours.
1 unit; 1 record when it falls back. 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.