Skip to content

TikTok API

Nine endpoints under /v1/tiktok/*. All are GET, authenticated with Authorization: Bearer sk_live_..., and return the standard { data, meta?, request_id } envelope. TikTok is the richest surface: transcripts, summaries, stats, comments, channel data, keyword and hashtag search, and downloads.

GET /v1/tiktok/transcript

Full transcript of a TikTok video with timestamped segments.

Credits: 8 per video · Caching: Cached forever

Parameters

Name Description
url required Public TikTok content URL.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/transcript?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": {
"platform": "tiktok",
"entity_id": "7231338487075638570",
"language": "en",
"source": "subtitles",
"text": "Today I want to show you the three settings everyone ignores when they set this up for the first time...",
"segments": [
{
"start": 0,
"end": 3.2,
"text": "Today I want to show you the three settings"
},
{
"start": 3.2,
"end": 5.9,
"text": "everyone ignores when they set this up"
}
]
},
"request_id": "req_01JZX4M8Q2TE9W"
}

GET /v1/tiktok/summary

Short AI summary of a TikTok video, built on its transcript.

Credits: 10 per video · Caching: Cached forever

Parameters

Name Description
url required Public TikTok content URL.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/summary?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": {
"platform": "tiktok",
"entity_id": "7231338487075638570",
"language": "en",
"summary": "A quick tutorial covering three commonly missed configuration steps, with a before/after comparison and a call to check the pinned comment for the full guide."
},
"request_id": "req_01JZX4M8Q2TE9W"
}

GET /v1/tiktok/stats

Views, likes, comments and shares for a single TikTok video.

Credits: 3 per video · Caching: Age-aware cache (15 min - 7 days)

Parameters

Name Description
url required Public TikTok content URL.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/stats?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570" \
-H "Authorization: Bearer sk_live_..."

Response

{
"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"
}

GET /v1/tiktok/comments

Paginated comments on a TikTok video; charged per comment returned.

Credits: 2 per comment · Caching: Age-aware cache (15 min - 7 days) · Paginated (cursor/limit)

Parameters

Name Description
url required Public TikTok content URL.
limit optional Items per page (default 20, max 50 sync; larger via async jobs).
cursor optional Opaque cursor from the previous page's meta.cursor.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": [
{
"id": "c_9021",
"text": "This fixed it for me, thank you",
"author": {
"handle": "dev.casey"
},
"likes": 412,
"posted_at": "2026-07-01T09:12:00Z"
},
{
"id": "c_9022",
"text": "Can you do a follow-up on the advanced settings?",
"author": {
"handle": "mariana.codes"
},
"likes": 96,
"posted_at": "2026-07-01T10:44:00Z"
}
],
"meta": {
"count": 2,
"limit": 50,
"cursor": "eyJvZmZzZXQiOjUwfQ",
"has_more": true
},
"request_id": "req_01JZX4M8Q2TE9W"
}

GET /v1/tiktok/channel-stats

Follower counts and profile metadata for a TikTok account.

Credits: 3 per profile · Caching: Cached 12 hours

Parameters

Name Description
handle required Public TikTok handle (without @).
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/channel-stats?handle=tiktok" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": {
"platform": "tiktok",
"handle": "tiktok",
"name": "Example Creator",
"bio": "Tutorials and behind-the-scenes. New video every Tuesday.",
"verified": true,
"metrics": {
"followers": 2450318,
"following": 132,
"posts": 842
}
},
"request_id": "req_01JZX4M8Q2TE9W"
}

GET /v1/tiktok/channel-videos

Latest videos from a TikTok account with per-video metrics.

Credits: 3 per video · Caching: Cached 3 hours (page 1: 1 hour) · Paginated (cursor/limit)

Parameters

Name Description
handle required Public TikTok handle (without @).
limit optional Items per page (default 20, max 50 sync; larger via async jobs).
cursor optional Opaque cursor from the previous page's meta.cursor.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/channel-videos?handle=tiktok" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": [
{
"id": "7231338487075638570",
"url": "https://www.tiktok.com/@tiktok/video/7231338487075638570",
"caption": "Behind the scenes of our new feature",
"posted_at": "2026-07-02T18:00:00Z",
"metrics": {
"views": 1204593,
"likes": 88410,
"comments": 2314
}
},
{
"id": "72313384870756385701",
"url": "https://www.tiktok.com/@tiktok/video/7231338487075638570",
"caption": "Behind the scenes of our new feature",
"posted_at": "2026-07-02T18:00:00Z",
"metrics": {
"views": 1204593,
"likes": 88410,
"comments": 2314
}
}
],
"meta": {
"count": 2,
"limit": 20,
"cursor": "eyJwYWdlIjoyfQ",
"has_more": true,
"item": "video"
},
"request_id": "req_01JZX4M8Q2TE9W"
}

Keyword search over TikTok videos.

Credits: 4 per result · Caching: Age-aware cache (15 min - 7 days) · Paginated (cursor/limit)

Parameters

Name Description
query required Search keywords.
limit optional Items per page (default 20, max 50 sync; larger via async jobs).
cursor optional Opaque cursor from the previous page's meta.cursor.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/search?query=coffee%20brewing" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": [
{
"id": "v_77120",
"url": "https://example-result-url",
"caption": "How I plan a week of posts in 30 minutes",
"author": {
"handle": "plannerpro"
},
"metrics": {
"views": 88210,
"likes": 5120
},
"posted_at": "2026-07-08T16:20:00Z"
},
{
"id": "v_771201",
"url": "https://example-result-url",
"caption": "How I plan a week of posts in 30 minutes",
"author": {
"handle": "plannerpro"
},
"metrics": {
"views": 88210,
"likes": 5120
},
"posted_at": "2026-07-08T16:20:00Z"
}
],
"meta": {
"count": 2,
"limit": 20,
"cursor": "eyJwYWdlIjoyfQ",
"has_more": true,
"item": "result"
},
"request_id": "req_01JZX4M8Q2TE9W"
}

Videos posted under a TikTok hashtag.

Credits: 3 per result · Caching: Age-aware cache (15 min - 7 days) · Paginated (cursor/limit)

Parameters

Name Description
query required Search keywords.
limit optional Items per page (default 20, max 50 sync; larger via async jobs).
cursor optional Opaque cursor from the previous page's meta.cursor.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/hashtag-search?query=coffee%20brewing" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": [
{
"id": "v_77120",
"url": "https://example-result-url",
"caption": "How I plan a week of posts in 30 minutes",
"author": {
"handle": "plannerpro"
},
"metrics": {
"views": 88210,
"likes": 5120
},
"posted_at": "2026-07-08T16:20:00Z"
},
{
"id": "v_771201",
"url": "https://example-result-url",
"caption": "How I plan a week of posts in 30 minutes",
"author": {
"handle": "plannerpro"
},
"metrics": {
"views": 88210,
"likes": 5120
},
"posted_at": "2026-07-08T16:20:00Z"
}
],
"meta": {
"count": 2,
"limit": 20,
"cursor": "eyJwYWdlIjoyfQ",
"has_more": true,
"item": "result"
},
"request_id": "req_01JZX4M8Q2TE9W"
}

GET /v1/tiktok/download

Resolves a downloadable media URL for a TikTok video (URL expires within 1h).

Credits: 7 per video · Caching: Cached 7 days (media URLs max 1h)

Parameters

Name Description
url required Public TikTok content URL.
fresh optional true bypasses the cache at the same credit price.
format optional json (default), csv or text where applicable.

Request

Terminal window
curl "https://api.scrapersocial.com/v1/tiktok/download?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570" \
-H "Authorization: Bearer sk_live_..."

Response

{
"data": {
"platform": "tiktok",
"entity_id": "7231338487075638570",
"media_url": "https://cdn.example/video/master.mp4?sig=...",
"mime_type": "video/mp4",
"expires_at": "2026-07-15T13:00:00Z",
"warning": "media_url is short-lived (max 1h) — download promptly or re-request."
},
"request_id": "req_01JZX4M8Q2TE9W"
}

Related: Instagram API · Pagination · Caching & freshness