TikTok API
TikTok video metadata, user profiles, and category browsing.
- Returns up to 50 videos per request
- Video download URLs expire quickly
- Omit the
categoryparameter on/tiktok/categoriesto get trending videos - Fast endpoints (
/videos/:id,/users/:username): 2–5 seconds
Videos
GET /tiktok/videos/:videoId — 4 credits
Get TikTok video metadata by video ID.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
videoId | string | Yes | — | TikTok video ID |
cURL
curl -H "x-api-key: sk_byc_xxx" \
https://api.bycrawl.com/tiktok/videos/7234567890123456789Response
{
"id": "7614295022346784030",
"url": "https://www.tiktok.com/@tiktok/video/7614295022346784030",
"title": "#filmtok LOCK IN, we caught up with your faves...",
"description": "#filmtok LOCK IN, we caught up with your faves...",
"author": "tiktok",
"authorId": "107955",
"duration": 88,
"views": 72400,
"likes": 2346,
"comments": 538,
"shares": 222,
"saves": 192,
"createdAt": "2026-03-06T23:53:48.000Z",
"thumbnail": "https://...",
"music": "original sound"
}Users
GET /tiktok/users/:username — 2 credits
Get TikTok user info and recent videos.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
username | string | Yes | — | TikTok username |
count | integer | No | 30 | Number of recent videos (max 50) |
cURL
curl -H "x-api-key: sk_byc_xxx" \
https://api.bycrawl.com/tiktok/users/cooluserResponse
{
"username": "tiktok",
"displayName": "TikTok",
"verified": true,
"avatarUrl": "https://...",
"bio": "One TikTok can make a big impact",
"followers": 93144898,
"following": 3,
"hearts": 455040412,
"videoCount": 1412,
"videos": [
{
"id": "7614295022346784030",
"url": "https://www.tiktok.com/@tiktok/video/7614295022346784030",
"title": "#filmtok LOCK IN, we caught up with your faves...",
"description": "#filmtok LOCK IN, we caught up with your faves...",
"author": "tiktok",
"authorId": "107955",
"duration": 88,
"views": 72400,
"likes": 2344,
"comments": 538,
"shares": 222,
"saves": 192,
"createdAt": "2026-03-06T23:53:48+00:00",
"thumbnail": "",
"music": "original sound"
}
// ... more videos
]
}GET /tiktok/users/:username/videos — 2 credits
Get TikTok user’s video list.
Note: This endpoint typically takes 5–15 seconds. Use a timeout of at least 30s.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
username | string | Yes | — | TikTok username |
count | integer | No | 30 | Number of videos (max 50) |
cURL
curl -H "x-api-key: sk_byc_xxx" \
"https://api.bycrawl.com/tiktok/users/cooluser/videos?count=10"Response
{
"username": "tiktok",
"displayName": "tiktok",
"videos": [
{
"id": "7614295022346784030",
"url": "https://www.tiktok.com/@tiktok/video/7614295022346784030",
"title": "#filmtok LOCK IN, we caught up with your faves...",
"description": "#filmtok LOCK IN, we caught up with your faves...",
"author": "tiktok",
"authorId": "107955",
"duration": 88,
"views": 72400,
"likes": 2344,
"comments": 538,
"shares": 222,
"saves": 192,
"createdAt": "2026-03-06T23:53:48+00:00",
"thumbnail": "",
"music": "original sound"
}
// ... more videos
]
}Comments
GET /tiktok/videos/:videoId/comments — 90 credits
Get comments for a TikTok video.
Note: This endpoint uses browser automation and typically takes 20–40 seconds. Use a timeout of at least 60s.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
videoId | string | Yes | — | TikTok video ID |
cursor | string | No | — | Pagination cursor from previous response |
cURL
curl -H "x-api-key: sk_byc_xxx" \
https://api.bycrawl.com/tiktok/videos/7234567890123456789/commentsResponse
{
"videoId": "7614295022346784030",
"commentCount": 538,
"comments": [
{
"id": "7614301234567890001",
"text": "This is amazing!",
"likes": 120,
"author": "filmfan42",
"authorAvatar": "https://...",
"createdAt": "2026-03-07T01:15:00+00:00",
"replyCount": 5
}
// ... more comments
],
"cursor": "50",
"hasMore": true
}Search
GET /tiktok/videos/search — 4 credits
Search TikTok videos by keyword.
Note: This endpoint uses browser automation and typically takes 20–40 seconds. Use a timeout of at least 60s.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | Yes | — | Search keyword |
count | integer | No | 20 | Number of results (max 30) |
cURL
curl -H "x-api-key: sk_byc_xxx" \
"https://api.bycrawl.com/tiktok/videos/search?q=cooking&count=10"Response
{
"keyword": "cooking",
"videos": [
{
"id": "7608955538445045014",
"url": "https://www.tiktok.com/@courtneys_bites/video/7608955538445045014",
"title": "Crispy Japanese long fries! the crisp is perfec...",
"description": "Crispy Japanese long fries! the crisp is perfec...",
"author": "courtneys_bites",
"authorId": "6801555983929328646",
"duration": 60,
"views": 1300000,
"likes": 45800,
"comments": 165,
"shares": 11100,
"saves": 21900,
"createdAt": "2026-02-20T14:33:41+00:00",
"thumbnail": "https://...",
"music": "Storytelling"
}
// ... more videos
]
}Subtitles
GET /tiktok/videos/:videoId/subtitles — 4 credits
Get subtitles/captions for a TikTok video. Returns WebVTT-parsed segments with timestamps and full text. Supports 40+ languages.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
videoId | string | Yes | — | TikTok video ID |
language | string | No | en | Subtitle language code (e.g. en, ja, ko, zh-Hans) |
cURL
curl -H "x-api-key: sk_byc_xxx" \
"https://api.bycrawl.com/tiktok/videos/7234567890123456789/subtitles?language=en"Response
{
"videoId": "7614295022346784030",
"title": "#filmtok LOCK IN, we caught up with your faves...",
"language": "en",
"isAutoGenerated": true,
"availableLanguages": ["zh-Hans", "vi", "en", "ja", "ko", "fr", "de", "es"],
"segments": [
{
"start": 0.14,
"end": 1.86,
"text": "Ethan Hawke is standing right behind me."
},
{
"start": 1.861,
"end": 3.621,
"text": "He's like my obsession, you know,"
}
// ... more segments
],
"fullText": "Ethan Hawke is standing right behind me. He's like my obsession, you know, in a normal way, not in a creepy way..."
}Categories
GET /tiktok/categories — 210 credits
Browse TikTok videos by category.
Note: This endpoint uses browser automation and typically takes 20–40 seconds. Use a timeout of at least 60s.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
category | string | No | — | Category name (e.g. Food, Dance, Comedy). Omit for trending. |
count | integer | No | 30 | Number of videos (max 50) |
cURL
curl -H "x-api-key: sk_byc_xxx" \
"https://api.bycrawl.com/tiktok/categories?category=Food&count=10"Response
{
"category": "Food",
"videos": [
{
"id": "7609855487655283982",
"url": "https://www.tiktok.com/@tacobella420/video/7609855487655283982",
"title": "actually played just dance after this hehe #munc...",
"description": "actually played just dance after this hehe #munc...",
"author": "tacobella420",
"authorId": "7457324121388581931",
"duration": 12,
"views": 10400000,
"likes": 1200000,
"comments": 10400,
"shares": 160400,
"saves": 43784,
"createdAt": "2026-02-23T00:46:15+00:00",
"thumbnail": "https://...",
"music": "tranloptruon"
}
// ... more videos
]
}