100 free credits on signup · no card required

TikTok Stats API

One URL in. Clean JSON out.

Pass a TikTok video URL, get back its view, like, comment, share and save counts as JSON. No login, no TikTok developer account, no scraping code to maintain. One GET request, 3 credits, and the numbers arrive in a couple of seconds.

Credits 3 / video
Input ?url=
Cache 15m–7d
GET · BEARER
Request composing…
Fresh when it matters
age-aware cache
Works with your stack
cURL Python Node.js Zapier n8n Make MCP
One key · one credit balance · plain REST

The difference

Stop parsing markup. Start reading fields.

On the left, what a headless browser hands you. On the right, what the endpoint hands you.

Scraping it yourself raw HTML · every call
<div class="css-1qb2n7d-DivItemContainer e148ts220" data-e2e="recommend-list-item"><div class="css-x6y88p-DivContainer"><a class="css-1g95xhm-AVideoContainer" href="/@tiktok/video/7231338487075638570"><video src="blob:https://www.tiktok.com/8f3a..."></video></a></div><div class="css-1f5bbrz-DivCardFooter"><strong data-e2e="video-views" class="css-ws4x78">1.2M</strong><strong data-e2e="like-count">88.4K</strong><strong data-e2e="comment-count">2,314</strong></div><h3 class="css-1yy6f0h">Behind the scenes of our new feature</h3><script id="__UNIVERSAL_DATA_FOR_REHYDRATION__" type="application/json">{"__DEFAULT_SCOPE__":{"webapp.video-detail"...
×Class names rotate; your selectors break weekly ×Headless browsers, proxies, blocks to babysit ×Counts arrive as strings, not numbers
One GET request 13 typed fields
{
"data": {
"platform": "tiktok",
"entity_id": "7231338487075638570",
"url": "https://www.tiktok.com/@tiktok/video/7231338487075638570",
"author": {
"handle": "tiktok",
"name": "Example Creator"
},
"posted_at": "2026-06-30T14:05:00Z",
"metrics": {
"views": 1204593,
"likes": 88410,
"comments": 2314,
"shares": 10092
}
},
"request_id": "req_01JZX4M8Q2TE9W"
}
Stable field names, documented nulls No proxies, no browser, no login session Counters are integers you can sort on

The payload

What comes back

{ data, meta?, request_id }
01 One object per video

A single object describing one video: the engagement counters, the caption and hashtags, how long the video runs, when it was posted, and who posted it. This is the raw material for a performance dashboard or a competitor tracker — everything you would read off the video page yourself, in a shape you can put straight into a database.

02 Counters move on fresh videos

Counters are whatever TikTok is showing publicly at the moment of the call. They move constantly on fresh videos, which is why this endpoint is cached for minutes rather than hours: sample a video that went up an hour ago twice and you should expect two different numbers.

Field explorer Pick a key to see its type and the caveats.
number|null Nullable Sortable metric
likes

Public like (heart) count.

{
"id": "…",
"url": "https://www.tiktok.com/@tiktok/video/7231338487075638570",
"caption": "…",
"views": 1204593,
"likes": 88410,
"comments": 2314,
"shares": 10092,
"saves": 0,
"duration_sec": 0,
"posted_at": "2026-06-30T14:05:00Z",
"author": { … },
"music": "…",
"hashtags": ["…"]
}
Good fit

Reach for this when

  • Tracking how a set of videos performs over time — poll each URL on a schedule and store the counters with a timestamp to build a velocity curve.
  • Competitor and category research, where you have a list of video URLs and need their numbers side by side without opening 200 browser tabs.
  • Influencer vetting: pull the last 20 videos from a creator, and check whether engagement is consistent or driven by one viral outlier.
  • Enriching a content calendar or CMS entry with live performance data after you publish.
Different job?

There's an endpoint for that

  • You want the spoken words, not the numbers — use the TikTok Transcript API, which returns the speech as text.
  • You want a creator's follower count and total likes rather than one video's stats — that is the TikTok Channel Stats API.
  • You have a handle and want their recent videos — start with the TikTok Channel Videos API, which returns one batch of their recent uploads you can then feed here.
  • You need the comment text itself. This endpoint returns the comment count only.

Pricing

Start free, pay for what comes back

One video is 3 credits — about 1.5¢ on the monthly plan. $5 covers roughly 333 videos, a cached repeat costs the same as a fresh call, and failed calls are never charged.

Estimate your bill
$10/ month
30 videos/day × 3 credits × 365 days = 32,850 credits/yr, or $117/yr on the annual plan plus 21 top-up blocks Whichever plan is cheaper for that volume, divided by 12.
30
102,000
Credits / yr 32,850
Plan Annual $54/yr
Per video

Estimate only, on a full-year basis. 3 credits per returned video. Monthly: $5 per 1,000 credits with $4/1,000 top-ups. Annual: $54 per 12,000 credits with $3/1,000 top-ups. We show whichever plan is cheaper for your annual volume, divided by 12. Failed calls are never charged; cache hits cost the same as fresh calls.

Free trial
100 credits

On signup, no card. Your key is on screen immediately.

Get your free API key
Monthly $5/mo 1,000 credits. Top-ups $4 per extra 1,000.
Annual $54/yr 12,000 credits. Top-ups $3 per extra 1,000.

Entry price, side by side

Cheapest way to start

Verified July 2026 from each vendor's live pricing page
ScraperSocial
$5 / mo 1,000 credits · 100 free credits, no card
Supadata
$5 / mo 300 credits, annual commitment · 100 free/mo
SocialKit
$29 / mo 12,000 credits · 20 free credits
Dumpling AI
$40 / mo Billed annually · free tier size unpublished
ScrapeCreators
$47 pack 25,000 credits, no subscription · 100 free once

Credits are not equivalent units across vendors — each meters differently. Price your own workload on both before deciding on entry price alone. At high volume, several of these are cheaper per credit than we are.

Engineering notes

Docs you can build on

We document exactly how every endpoint behaves — nulls, caching, billing — so what you ship on day one is still running in month six. No surprises, no support tickets.

Failed calls are never charged Public data only, no login session Built for parallel traffic

TikTok publishes these numbers on a delay and rounds aggressively at scale. Treat them as the platform's public figure at call time rather than an audited count, and never diff two numbers taken seconds apart and call the delta real growth.

For anything trend-shaped, sample on a fixed cadence — hourly or daily at the same minute — so your intervals are even. Uneven sampling is the most common reason a velocity chart looks wrong.

Private, deleted and region-blocked videos return an error rather than a partial object, but a live video can still omit individual fields: no caption, no attached sound, no hashtags. Code defensively — null is a normal response, not a failure.

Responses are cached in the fast class, so repeated calls for the same video inside the window return instantly and set x-cache: hit. A cache hit costs the same 3 credits. Add fresh=true when you genuinely need to bypass it — for example on the first poll of a monitoring run.

vm.tiktok.com and vt.tiktok.com share links are accepted and resolved upstream, so you can pass URLs copied straight out of the TikTok app without unrolling them first.

Questions

Frequently asked

Send a GET request to /v1/tiktok/stats with the video URL and your API key. You do not need a TikTok developer account, an app review, or OAuth — the endpoint reads public data and returns JSON. TikTok's own Display API requires an approved app and only reaches content the authenticating user owns, which is why most performance-tracking projects cannot use it.

3 credits per video. Credits are $0.005 each on the monthly plan and $0.0045 on annual, so a call is roughly 1.5 cents, and $5 covers about 333 videos. Cached responses cost the same as fresh ones. Failed calls are never charged.

Close, but not exact. TikTok updates public counters on its own delay and rounds large numbers, so a call reflects what the platform is showing at that moment. For a video posted minutes ago the figure can move noticeably between calls. Sample on a fixed schedule if you are measuring growth rather than reading a single number.

This endpoint takes one URL per call. Run the calls concurrently — each is independent and the API is built for parallel traffic. If you are starting from a creator rather than a list of URLs, the TikTok Channel Videos API returns a batch of their recent videos in a single call, and you can pass those URLs through here.

No. Only public content is reachable. A private, deleted or region-restricted video returns an error rather than a partial object, and the call is not charged. This is a deliberate limit — we read the same public pages you can open in a browser, with no logged-in session.

Stats returns the numbers — views, likes, comments, shares, saves — plus caption and author. Transcript returns the spoken words as text — on TikTok the `segments` field comes back null, so do not plan on timings. They are separate calls with separate prices because most projects need one or the other, not both.

Next

Pairs well with

Full TikTok API reference →
/v1/tiktok/transcript
TikTok Transcript API Full transcript of a TikTok video with timestamped segments. 8 cr / video
/v1/tiktok/comments
TikTok Comments API Paginated comments on a TikTok video; charged per comment returned. 2 cr / comment
/v1/tiktok/channel-stats
TikTok Channel Stats API Follower counts and profile metadata for a TikTok account. 3 cr / profile
/v1/tiktok/channel-videos
TikTok Channel Videos API Latest videos from a TikTok account with per-video metrics. 3 cr / video

More TikTok endpoints

/v1/tiktok/transcript Full transcript of a TikTok video with timestamped segments. 8 credits / video /v1/tiktok/summary Short AI summary of a TikTok video, built on its transcript. 10 credits / video /v1/tiktok/comments Paginated comments on a TikTok video; charged per comment returned. 2 credits / comment /v1/tiktok/channel-stats Follower counts and profile metadata for a TikTok account. 3 credits / profile /v1/tiktok/channel-videos Latest videos from a TikTok account with per-video metrics. 3 credits / video /v1/tiktok/search Keyword search over TikTok videos. 4 credits / result /v1/tiktok/hashtag-search Videos posted under a TikTok hashtag. 3 credits / result /v1/tiktok/download Resolves a downloadable media URL for a TikTok video (URL expires within 1h). 7 credits / video

Try the TikTok Stats endpoint free

100 trial credits on signup — no card, key on screen immediately.

1 Sign up free no card · 30 seconds
2 Copy your key sk_live_...
3 GET the endpoint /v1/tiktok/stats
Get your free API key