How do I get the view count of a TikTok video?
Call the Openhandle post endpoint with the video ID. The response has metrics.views, plus likes, comments, shares, and saves, as integers. You need an API key, not a TikTok login or a Research API application.
If you have the video URL, pass it to the fetch endpoint first. It returns the video with its id. Short links from the app are expanded for you.
Checked September 2026 · request and response run against the API · no affiliate links
curl "https://api.openhandle.dev/v1/tiktok/posts/920100000000000001" \
-H "Authorization: Bearer $OPENHANDLE_API_KEY"import { OpenHandle } from '@openhandle/sdk';
const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
const response = await openhandle.tiktok.post('920100000000000001').get();
console.log(response.data.metrics.views); // 23000{
"platform": "tiktok",
"resource": "post",
"capturedAt": "2026-09-18T09:31:07Z",
"source": "live",
"data": {
"id": "920100000000000001",
"url": "https://www.tiktok.com/@pixel_orchard_tt_test/video/920100000000000001",
"caption": "A synthetic orchard loop. #pixelorchard",
"createdAt": "2026-08-09T15:30:00Z",
"metrics": {
"views": 23000,
"likes": 1200,
"comments": 24,
"shares": 73,
"saves": 88
}
}
}Trimmed to the fields this question needs. The full post has the author, media renditions, sound, hashtags, and more. The example is a Test video, so you can run it on a free Test key.
Why the official TikTok APIs do not do this
The TikTok Research API is for approved academic and non-profit research and needs an application. The Display API only reads the account that logged in. Neither lets a brand or a developer read the view count of a video they do not own.
What a view means
On TikTok a view is a play. Loops count. A video watched three times in a row by one person adds three. That is the same number the app shows, without the "23K" rounding. See metric semantics for how views, likes, and shares differ per platform.
Payouts and reports
- —Use live for money. Add
?freshness=livewhen the number decides a payout or a contract. The default answers from a capture up to 24 hours old at a lower price. - —Store the capture time. Every answer carries
capturedAt. Store it with the number so a report can be repeated and disputed. - —Fresh uploads. A video posted minutes ago can show low or missing metrics for a while. A metric TikTok has not published yet is
null, never0.
When this does not work
These answers are definitive. Store them, do not retry them.
| Situation | Status | Code |
|---|---|---|
| The video is deleted or never existed | 404 | POST_NOT_FOUND |
| The account is private | 403 | PROFILE_PRIVATE |
| The identifier is malformed | 400 | INVALID_IDENTIFIER |
{
"error": {
"code": "POST_NOT_FOUND",
"message": "This post was not found.",
"requestId": "req_01j8…",
"retryable": false
}
}A region-locked video that is public in one country and hidden in another answers as the platform shows it to a logged-out visitor. Every new workspace starts with 100 free live requests, no card needed.
Read next
More TikTok questions
Send your agent ahead.
Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.