Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in
All collectors

TikTok video scraper API

Social & communities · v1.1.0 · tiktok_video

$0.004 / video

$4.00 / 1K · pay per delivered video

A TikTok video scraper API that returns per-video metrics for a list of URLs or ids: views, likes, comments, shares and saves, plus caption, publish time, author and author follower count, duration, music and hashtags.

$0.004 per delivered video · $2 free every month · Failed runs never billed

What it does

What a TikTok video scraper API does

Campaign reporting lives at the video level. This collector takes the URLs you already have — from a brief, a creator report or a hashtag list — and returns the five engagement counts TikTok publishes, exact, with the author's follower count on the same row so engagement rate is one division away.

Worth knowing how failure looks here: TikTok answers a removed, private or region-locked video with HTTP 200 and an error code buried in the page data. The collector reads that status, so those ids land under failed with TikTok's own reason instead of being billed as delivered rows.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
videosarrayyesVideo URLs (https://www.tiktok.com/@user/video/123…) or numeric ids.
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
max_resultsintegernoHow many videos to deliver at most (1–50). You pay only for delivered videos.

Outputs — 39 fields, one row per video

What one video looks like

Every delivered video carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based delivery order.
video_idstringTikTok video id.
urlstringVideo URL.
descriptionstring · nullableCaption.
created_atstring · nullablePublish time (ISO 8601).
authorstring · nullableAuthor handle.
author_namestring · nullableAuthor display name.
author_idstring · nullableAuthor id.
author_verifiedbooleanAuthor verified badge.
author_followersinteger · nullableAuthor follower count.
viewsinteger · nullablePlay count.
likesinteger · nullableLike count.
commentsinteger · nullableComment count.
sharesinteger · nullableShare count.
savesinteger · nullableSave/collect count.
duration_secondsinteger · nullableDuration in seconds.
musicstring · nullableMusic title.
music_authorstring · nullableMusic author.
hashtagsstring[]Hashtags in the caption.
coverstring · nullableCover image URL.
mentionsstring[]Accounts mentioned in the caption.
repostsinteger · nullableRepost count.
author_followinginteger · nullableAccounts the author follows.
author_likesinteger · nullableTotal likes on the author's videos.
author_videosinteger · nullableVideos published by the author.
author_signaturestring · nullableAuthor bio.
music_idstring · nullableTikTok sound id.
music_originalboolean · nullableTrue when the sound is the author's original.
location_createdstring · nullableCountry the video was posted from.
languagestring · nullableCaption language.
widthinteger · nullableVideo width (px).
heightinteger · nullableVideo height (px).
is_adbooleanMarked as an ad.
ai_generatedbooleanLabelled AI-generated by TikTok.
duet_enabledboolean · nullableDuets allowed.
stitch_enabledboolean · nullableStitches allowed.
is_photo_postbooleanPhoto carousel rather than a video.
subtitle_languagesstring[]Subtitle languages available.
related_searchesstring[]Searches TikTok suggests next to the video.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/tiktok_video/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/tiktok_video/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"videos":["https://www.tiktok.com/@nasa/video/7668779420412284191"],"max_results":5}'

Example response

POST /v1/scraper/collectors/tiktok_video/run
$ curl $QD/tiktok_video/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"videos": ["https: //www.tiktok.com/@nasa/video/7668779420412284191"], "max_results": 5}'
{ "status": "done", "count": 5,
  "results": [
    {
      "video_id": "…",
      "url": "…",
      "description": "…",
      "created_at": "…" } ],
  "cost": 0.02 }
# 5 videos × $0.004 · nothing delivered, nothing charged

Try it

TikTok video, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
TikTok video scraper API: from videos, QuanticData reads the TikTok video page and returns one row per video with author_name, description and created_at, at $0.004 per delivered video.
You send videos and country; the run goes out through a residential exit and comes back as videos with rank, video_id and description — 39 fields on every row — and you are billed $0.004 for each video actually delivered, nothing for a run that delivers none.
$0.004 / video500 videos on the free $2 every month
Semantic inputvideos, country, max_results — no URL lists
Up to 50videos per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Pricing

TikTok video scraper API pricing

$0.004 per delivered video. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 500 videos before you spend anything.

$0.004per delivered video$4 per 1,000 delivered videos
500 videoson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

What people build with the TikTok video scraper API

Three shapes of work this endpoint was designed around.

Campaign reporting

Measure delivered views and engagement per posted video, with author reach attached.

Creative benchmarking

Compare hooks, duration and music against engagement across a set of videos.

Contract verification

Check that the videos an influencer invoiced for exist and performed as claimed.

TikTok video scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Removed videosHTTP 200, parsed as empty, billedStatus read, reported under failed, not billed
Engagement rateTwo separate callsAuthor followers on the same row

What people search for

Live autocomplete demand around TikTok video, pulled with our own Keyword ideas collector.

Metrics for videos nobody authorised you to read

The Display API covers videos belonging to users who connected their account to your app — the right tool for a creator dashboard, useless for analysing a category. The Research API covers public video data properly and is limited to approved academic institutions. Between those sits every marketing team that needs engagement metrics on competitors' content and on creators they are considering paying.

For a dataset the decisive property is exactness. TikTok's interface abbreviates to 1.2M and 45.3K; the payload carries integers, and this delivers those. Engagement rate, share-to-view ratio and week-over-week deltas are all arithmetic on numbers that rounding would destroy.

Limits, failures and the legal bit

Up to 50 videos per run, public videos only. Private, removed and region-locked videos return under failed with TikTok's own reason and are never billed — a monitoring pipeline needs to tell "this was taken down" from "our fetch broke", because they mean different things. Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

Collecting publicly visible data is generally lawful in most jurisdictions, and courts have repeatedly declined to treat reading a public page as unauthorised access. Author fields identify people, which brings data-protection law into scope, and TikTok's terms restrict automated collection. Metadata only: no media is downloaded. None of this is legal advice — get some for your actual use case.

TikTok video scraper API: the POST to the tiktok_video collector, 5 videos delivered and the bill, 5 × $0.004 = $0.02 in usage.cost_usd; zero videos would cost $0.
The same call you would paste into a terminal: a Bearer key, videos and country in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many videos arrived and usage.cost_usd is $0.02, which is 5 × $0.004. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the TikTok video scraper API.

Something else? Ask us

What input does it take?

Full video URLs or bare numeric ids — up to 50 per run, fetched three at a time.

Why did a video come back as failed?

Because TikTok reported it as unavailable: removed, private or blocked in the exit country. The reason is TikTok's own message, passed through verbatim, and the row is not charged.

Is there a free TikTok video scraper API?

Every account gets $2 of credit every month with no card, which is about 500 delivered videos on this endpoint at $0.004 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.004. A run capped at 50 videos — the maximum for this collector — costs $0.2 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

What is the saves field good for?

It is TikTok's bookmark count, and it is the strongest intent signal on the platform — a save means someone means to come back. Ranking a content set by saves surfaces genuinely different videos than ranking by likes.

How do removed videos appear?

Under failed, with the platform's own reason attached, and unbilled. Keeping them separate from delivered rows is what lets a scheduled job distinguish a takedown from a transient error.

Run the TikTok video scraper API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Run in dashboard
Illustration: three coloured zones of the page that is read (TikTok video page) turn into clean JSON with the fields author_name, description and created_at; 39 fields on every row.