🎵 TikTok
TikTok API for public profiles, videos, comments, hashtags, and search.
- User profiles and their videos
- One video, or a batch of videos
- Comments and replies
- Embeds
- Hashtags
- Explore feed
- Keyword search and search suggestions
Read-only. A field TikTok does not show is null.
Video objects share one shape:
idurldescriptioncreateTime— ISO 8601, UTCtype—videoorphotoduration— secondscoverdynamicCoverplayUrl— a time-limited, signed media URLimages— photo postswidthheightisAdlocationCreatedstats—plays,likes,comments,shares,savesauthor—id,secUid,username,nickname,avatar,verifiedmusic—id,title,author,original,duration,cover,playUrlhashtagsmentions
Users
Public profiles.
GET /v1/tiktok/user/info
requires authentication
A user's public profile: id, secUid, username, nickname, url, bio, bioLink, avatar, verified,
private, isOrganization, language, createTime, and stats (followers, following, likes, videos,
friends). A private account still returns its profile with private: true.
An identical request within 10 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/user/info'
params = {
'username': 'tiktok',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/user/info';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'username' => 'tiktok',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/user/info"
);
const params = {
"username": "tiktok",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/user/info?username=tiktok" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"username": "tiktok"
},
"body": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"url": "https://www.tiktok.com/@tiktok",
"bio": "Your next discovery is waiting on TikTok.",
"bioLink": "tiktok.com/discovermore",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=0f588a3a&x-expires=1791219600&x-signature=aqhaM%2FJZw7o1eWrKKqNOPBtgL4w%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": true,
"private": false,
"isOrganization": true,
"language": "en",
"createTime": "2015-02-28T17:22:29Z",
"stats": {
"followers": 96040155,
"following": 1,
"likes": 464921055,
"videos": 1509,
"friends": 1
}
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/user/videos
requires authentication
A user's posted videos, newest first, about 24 per page: user (id, secUid, username, nickname,
private), cursor, hasMore, and videos. Pass the returned cursor for the next page; pages are read in order,
so later pages take longer. A private account or one with no videos returns an empty list.
An identical request within 5 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/user/videos'
params = {
'username': 'tiktok',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/user/videos';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'username' => 'tiktok',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/user/videos"
);
const params = {
"username": "tiktok",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/user/videos?username=tiktok" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"username": "tiktok",
"cursor": "0"
},
"body": {
"user": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"private": false
},
"cursor": "1785429084000",
"hasMore": true,
"videos": [
{
"id": "7692114317151423775",
"url": "https://www.tiktok.com/@tiktok/video/7692114317151423775",
"description": "ATEEZ on the FYF. BTS on tour. dance challenges on repeat. @rachelszero and friends reminisce on K-Pop Summer on TikTok",
"createTime": "2026-10-02T16:52:37Z",
"type": "video",
"duration": 65,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/oM8tULGCGRQNtQAnUfIIpKJA4AHAVfAMfqeuVF~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=QW4r7mJnwPQ%2BuMT4%2BbgOlHTa0DI%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"dynamicCover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/oM8tULGCGRQNtQAnUfIIpKJA4AHAVfAMfqeuVF~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=QW4r7mJnwPQ%2BuMT4%2BbgOlHTa0DI%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/oAcUigEXfRBf6fBAJqEVffAoy3hAeAiBfuvewiB/?a=1988&bti=ODszNWYuMDE6&&bt=1809&ft=-Csk_mH1PD12NLKoon-Ux912GY6e3wv25AcAp&mime_type=video_mp4&rc=ZTk2NjMzPGloZWY6NDQ8NkBpajhpeXk5cmp4ZDMzaTczNEAwNC0wLi42XzMxXjItLzJiYSNsLV41MmRjLnNhLS1kMTJzcw%3D%3D&expire=1791225896&l=20261004024351DC04281A2D8226F8039D&ply_type=2&policy=2&signature=2565b6df5068f5aa91a5e68f4d410efd&tk=tt_chain_token&btag=e00090000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 116800,
"likes": 2286,
"comments": 673,
"shares": 194,
"saves": 178
},
"author": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fc663f04&x-expires=1791223200&x-signature=C04o1M3qhROGZ%2BFZG4fjNtl6mcE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"verified": true
},
"music": {
"id": "7692114426937346847",
"title": "original sound",
"author": "TikTok",
"original": true,
"duration": 65,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fc663f04&x-expires=1791223200&x-signature=C04o1M3qhROGZ%2BFZG4fjNtl6mcE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"playUrl": "https://v58.tiktokcdn.com/video/tos/alisg/tos-alisg-v-2370c799-sg/oQ9nQ1eGUQiem7qQkw6cLfY8fFqJDIKALAAvQA/?a=1180&bti=ODszNWYuMDE6&&bt=125&ft=GcDrcInz7ThdC--GXq8Zmo&mime_type=audio_mpeg&rc=anBvbHI5cm94ZDMzaTU8NEBpanBvbHI5cm94ZDMzaTU8NEAwcWNoMmRzL3NhLS1kMTJzYSMwcWNoMmRzL3NhLS1kMTJzcw%3D%3D&vvpl=1&l=20261004024351DC04281A2D8226F8039D&VExpiration=1791139496&VSignature=3ffSDpWvKMKunRnrgdYNmQ&btag=e00050000&sp_exp=hash_v0"
},
"hashtags": [],
"mentions": [
"rachelszero"
]
},
{
"id": "7691450773619625247",
"url": "https://www.tiktok.com/@tiktok/video/7691450773619625247",
"description": "if your FYF had you hitting the Zara Larsson, you'll know Pop Girl Summer is never-ending. @McCall Mirabella the music and moments that shaped the season 🐬",
"createTime": "2026-09-30T21:57:30Z",
"type": "video",
"duration": 88,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/oM1EAXqI9sdDaCGhAJVcYfE2FEARCAv3leTUAE~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=D3UkG2NJUAiqIZPPUUbzG5tQUyk%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"dynamicCover": "https://p19-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/oM1EAXqI9sdDaCGhAJVcYfE2FEARCAv3leTUAE~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=MyhvO8LySSbI%2BPJHCJljIo5h8VU%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/o8lQUIDfAAnTQvlqGLe2wqGFAkeoeIR3BA0pg7/?a=1988&bti=ODszNWYuMDE6&&bt=1675&ft=-Csk_mH1PD12NLKoon-Ux912GY6e3wv25AcAp&mime_type=video_mp4&rc=NjY1N2c5O2k6NTloZTg2ZkBpanRueXM5cndyZDMzaTczNEA1MzJgLmM2NjQxXmNiNS5fYSNrb2FhMmQ0NnJhLS1kMTJzcw%3D%3D&expire=1791225919&l=20261004024351DC04281A2D8226F8039D&ply_type=2&policy=2&signature=2da7becc0f98f6d7923161fd8e6d2295&tk=tt_chain_token&btag=e00090000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 184500,
"likes": 3570,
"comments": 915,
"shares": 328,
"saves": 336
},
"author": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fc663f04&x-expires=1791223200&x-signature=C04o1M3qhROGZ%2BFZG4fjNtl6mcE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"verified": true
},
"music": {
"id": "7691470224670935838",
"title": "original sound",
"author": "TikTok",
"original": true,
"duration": 87,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fc663f04&x-expires=1791223200&x-signature=C04o1M3qhROGZ%2BFZG4fjNtl6mcE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"playUrl": "https://v58.tiktokcdn.com/video/tos/alisg/tos-alisg-v-2370c799-sg/o0eqdjxGAJAJAmDTAEL6ejUGPerf6ixIQQFC9E/?a=1180&bti=ODszNWYuMDE6&&bt=125&ft=GcDrcInz7ThdC--GXq8Zmo&mime_type=audio_mpeg&rc=M3lnb2w5cjxyZDMzaTU8NEBpM3lnb2w5cjxyZDMzaTU8NEBxbmBjMmRzcHJhLS1kMTJzYSNxbmBjMmRzcHJhLS1kMTJzcw%3D%3D&vvpl=1&l=20261004024351DC04281A2D8226F8039D&VExpiration=1791139518&VSignature=AB4RshuSsIZssy2GjXZB9w&btag=e00050000&sp_exp=hash_v0"
},
"hashtags": [],
"mentions": [
"mccallmirabella"
]
},
{
"id": "7691013160425327903",
"url": "https://www.tiktok.com/@tiktok/video/7691013160425327903",
"description": "K-pop fans have been BUSY. @rachelszero shares how your fan cams, DIYs, and choreo made this a K-pop summer 🫰",
"createTime": "2026-09-29T17:39:33Z",
"type": "video",
"duration": 88,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/osaE1A7E9lIJA1BR9Ti9C3i3LvAAqQ4TAP2Br~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=Jzty50GzXjAVznyThcHS0003URs%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"dynamicCover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/osaE1A7E9lIJA1BR9Ti9C3i3LvAAqQ4TAP2Br~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=Jzty50GzXjAVznyThcHS0003URs%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/o4RG2UqAejhe6t03MQgUN7WNayAFnA80QeRfQB/?a=1988&bti=ODszNWYuMDE6&&bt=1185&ft=-Csk_mH1PD12NLKoon-Ux912GY6e3wv25AcAp&mime_type=video_mp4&rc=ZGc0MzgzZjM3aTg3ZTU8OEBpajY6c3A5cm95ZDMzaTczNEBeNS8zLTI0XzAxXi9gL2JgYSNiXi5nMmRrYXFhLS1kMTJzcw%3D%3D&expire=1791225919&l=20261004024351DC04281A2D8226F8039D&ply_type=2&policy=2&signature=1da5fb8bc54b597f13b7ec0557519f29&tk=tt_chain_token&btag=e00090000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 149000,
"likes": 3746,
"comments": 749,
"shares": 270,
"saves": 368
},
"author": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fc663f04&x-expires=1791223200&x-signature=C04o1M3qhROGZ%2BFZG4fjNtl6mcE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"verified": true
},
"music": {
"id": "7691013272866802463",
"title": "original sound",
"author": "TikTok",
"original": true,
"duration": 88,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fc663f04&x-expires=1791223200&x-signature=C04o1M3qhROGZ%2BFZG4fjNtl6mcE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"playUrl": "https://v58.tiktokcdn.com/video/tos/alisg/tos-alisg-v-2370c799-sg/oMK63J4y9UAeFIIqF7LeQFAqa7IAeqIfmAG9Qv/?a=1180&bti=ODszNWYuMDE6&&bt=125&ft=GcDrcInz7ThdC--GXq8Zmo&mime_type=audio_mpeg&rc=amdlc3k5cm95ZDMzaTU8NEBpamdlc3k5cm95ZDMzaTU8NEBebDVjMmRzY3FhLS1kMTJzYSNebDVjMmRzY3FhLS1kMTJzcw%3D%3D&vvpl=1&l=20261004024351DC04281A2D8226F8039D&VExpiration=1791139519&VSignature=aiK1FJ8Ye2rB7HpDvWF6bQ&btag=e00050000&sp_exp=hash_v0"
},
"hashtags": [],
"mentions": [
"rachelszero"
]
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Videos
Videos and photo posts, their comments, and embeds.
GET /v1/tiktok/video/info
requires authentication
One video or photo post in the shared video shape. Pass id or any TikTok video link, including
vm.tiktok.com short links. An identical request within 5 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/video/info'
params = {
'id': '7106594312292453675',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/video/info';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'id' => '7106594312292453675',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/video/info"
);
const params = {
"id": "7106594312292453675",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/video/info?id=7106594312292453675" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"id": "7106594312292453675"
},
"body": {
"id": "7106594312292453675",
"url": "https://www.tiktok.com/@tiktok/video/7106594312292453675",
"description": "how many frogs did you find? 🐸 check out tiktok’s #Minecraft community today! @Gorillo",
"createTime": "2022-06-07T20:15:29Z",
"type": "video",
"duration": 24,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/beee36ba02ef449397b2d128bc32dd9d_1654632931~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=po0g9uEgJNduBpoBXZ%2B0fEHIzpQ%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/447945bfeb2542759118f06cbe030e9a_1654632930~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=ITopkHdiPAQKuttC1Q6m8AucVYk%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-ve-0068c003-tx/290d9614206e4076b11579a437577a48/?a=1988&bti=ODszNWYuMDE6&&bt=1046&ft=aEeq8qT0mIoPD12_mEmI3wUXt_AbMeF~O5&mime_type=video_mp4&rc=aWdlODs6aDUzOGloMzg7NUBpM3F2cjU6Zmx1ZDMzZzczNEA1LWE2MDAuXzExYGIxNTJgYSNgYmFgcjQwMGNgLS1kMS9zcw%3D%3D&expire=1791221593&l=202610031732490B862DA8C9E3833DB283&ply_type=2&policy=2&signature=0a9388266e4ce9a53fe63372d0c67d47&tk=tt_chain_token&btag=e000b8000",
"images": [],
"width": 576,
"height": 1024,
"isAd": false,
"locationCreated": "US",
"stats": {
"plays": 581500,
"likes": 98900,
"comments": 1269,
"shares": 359,
"saves": 59224
},
"author": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=727755af&x-expires=1791219600&x-signature=rQOf1K4lRR5W9PvHbAPT4F0H4Uc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": true
},
"music": {
"id": "7106594280055130923",
"title": "original sound",
"author": "TikTok",
"original": true,
"duration": 24,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=727755af&x-expires=1791219600&x-signature=rQOf1K4lRR5W9PvHbAPT4F0H4Uc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v16m.tiktokcdn-us.com/c9524de441bc50f80b49f0b240707665/6ac190b9/video/tos/useast5/tos-useast5-v-27dcd7-tx/3b1e3e03a4fe4d4f825b981b86870986/?a=1233&bti=ODszNWYuMDE6&&bt=123&ft=GSDrKInz7Thl-5-GXq8Zmo&mime_type=video_mp4&rc=ajV0bTM6ZnJ1ZDMzZzU8NEBpajV0bTM6ZnJ1ZDMzZzU8NEBiajFxcjRvMGNgLS1kMS9zYSNiajFxcjRvMGNgLS1kMS9zcw%3D%3D&vvpl=1&l=202610031732490B862DA8C9E3833DB283&btag=e00078000"
},
"hashtags": [
"minecraft"
],
"mentions": [
"gorilloyt"
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/video/batch
requires authentication
Up to 5 videos in one call, fetched in parallel. body keeps the order of ids. A video that couldn't be read is
{ "id", "error" }.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/video/batch'
params = {
'ids': '7106594312292453675,6718335390845095173',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/video/batch';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'ids' => '7106594312292453675,6718335390845095173',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/video/batch"
);
const params = {
"ids": "7106594312292453675,6718335390845095173",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/video/batch?ids=7106594312292453675%2C6718335390845095173" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"ids": "7106594312292453675,6718335390845095173",
"count": 2
},
"body": [
{
"id": "7106594312292453675",
"url": "https://www.tiktok.com/@tiktok/video/7106594312292453675",
"description": "how many frogs did you find? 🐸 check out tiktok’s #Minecraft community today! @Gorillo",
"createTime": "2022-06-07T20:15:29Z",
"type": "video",
"duration": 24,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/beee36ba02ef449397b2d128bc32dd9d_1654632931~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=po0g9uEgJNduBpoBXZ%2B0fEHIzpQ%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/447945bfeb2542759118f06cbe030e9a_1654632930~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=ITopkHdiPAQKuttC1Q6m8AucVYk%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-ve-0068c003-tx/290d9614206e4076b11579a437577a48/?a=1988&bti=ODszNWYuMDE6&&bt=1046&ft=aEeq8qT0mIoPD12_mEmI3wUXt_AbMeF~O5&mime_type=video_mp4&rc=aWdlODs6aDUzOGloMzg7NUBpM3F2cjU6Zmx1ZDMzZzczNEA1LWE2MDAuXzExYGIxNTJgYSNgYmFgcjQwMGNgLS1kMS9zcw%3D%3D&expire=1791221593&l=202610031732490B862DA8C9E3833DB283&ply_type=2&policy=2&signature=0a9388266e4ce9a53fe63372d0c67d47&tk=tt_chain_token&btag=e000b8000",
"images": [],
"width": 576,
"height": 1024,
"isAd": false,
"locationCreated": "US",
"stats": {
"plays": 581500,
"likes": 98900,
"comments": 1269,
"shares": 359,
"saves": 59224
},
"author": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"username": "tiktok",
"nickname": "TikTok",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=727755af&x-expires=1791219600&x-signature=rQOf1K4lRR5W9PvHbAPT4F0H4Uc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": true
},
"music": {
"id": "7106594280055130923",
"title": "original sound",
"author": "TikTok",
"original": true,
"duration": 24,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=727755af&x-expires=1791219600&x-signature=rQOf1K4lRR5W9PvHbAPT4F0H4Uc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v16m.tiktokcdn-us.com/c9524de441bc50f80b49f0b240707665/6ac190b9/video/tos/useast5/tos-useast5-v-27dcd7-tx/3b1e3e03a4fe4d4f825b981b86870986/?a=1233&bti=ODszNWYuMDE6&&bt=123&ft=GSDrKInz7Thl-5-GXq8Zmo&mime_type=video_mp4&rc=ajV0bTM6ZnJ1ZDMzZzU8NEBpajV0bTM6ZnJ1ZDMzZzU8NEBiajFxcjRvMGNgLS1kMS9zYSNiajFxcjRvMGNgLS1kMS9zcw%3D%3D&vvpl=1&l=202610031732490B862DA8C9E3833DB283&btag=e00078000"
},
"hashtags": [
"minecraft"
],
"mentions": [
"gorilloyt"
]
},
{
"id": "6718335390845095173",
"url": "https://www.tiktok.com/@scout2015/video/6718335390845095173",
"description": "Scramble up ur name & I’ll try to guess it😍❤️ #foryoupage #petsoftiktok #aesthetic",
"createTime": "2019-07-27T13:32:38Z",
"type": "video",
"duration": 10,
"cover": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-p-0068/2367c7d45cf54a1397abd0e72bf22eac~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=irRpYolM5kjoKRhTfOHE6OfcL%2Fk%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-p-0068/dc1c2b319b174c7eabd57ba4b191cc93~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=gtX5mfysWw6dEOa55KDtEOvrWt4%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-pve-0068-tx/a9d18e19b850455597ce9421ea84a228/?a=1988&bti=ODszNWYuMDE6&&bt=2188&ft=aEeq8qT0mIoPD124mEmI3wU8qOAbMeF~O5&mime_type=video_mp4&rc=PDo2NWU3M2U8ZTM1PGk2ZEBpM245aWhvZ3U4bjMzZzczM0AxL2BiXi8tNTExYF82YjYzYSMzc29gcGdnMXJfLS01MTZzcw%3D%3D&expire=1791221590&l=2026100317325907DBE0E78840855FF812&ply_type=2&policy=2&signature=003dd48542ef1cd937bfd122edb18514&tk=tt_chain_token&btag=e000b0000",
"images": [],
"width": 576,
"height": 1024,
"isAd": false,
"locationCreated": "US",
"stats": {
"plays": 159400,
"likes": 35200,
"comments": 5717,
"shares": 1497,
"saves": 649
},
"author": {
"id": "53279706535428096",
"secUid": "MS4wLjABAAAAPZWNdkF_cmVSPCvV0Y6MCsH29mlAOlMOX3ikzGvlfMm3K6OMZv-JrRImpEHxdIMI",
"username": "scout2015",
"nickname": "Scout, Suki & Stella",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/4cbe05e194623e3f19aef975d9fdf26c~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=cd6fbcb7&x-expires=1791219600&x-signature=N%2Bst87dhPV0TIo8NufqSgj4HHTc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": true
},
"music": {
"id": "6689804660171082501",
"title": "original sound",
"author": "tiff",
"original": true,
"duration": 10,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/62c59c8c91226b51c36d2338519eb63e~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=8ed93f36&x-expires=1791219600&x-signature=tjdHKmZXrJJe%2F92RFP4phEWAPu0%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v19.tiktokcdn-us.com/34b8f4bdf962b4bdb415132a4fb5fd14/6ac190b6/video/tos/useast5/tos-useast5-v-27dcd7-tx/fdec9588d6684e7d97da29739b9d0abf/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7Thc-5-GXq8Zmo&mime_type=audio_mpeg&rc=am48ZmQ6ZnFxNzMzNzU8M0Bpam48ZmQ6ZnFxNzMzNzU8M0BpNWRhcjRfaGBgLS1kMTZzYSNpNWRhcjRfaGBgLS1kMTZzcw%3D%3D&vvpl=1&l=2026100317325907DBE0E78840855FF812&btag=e00070000"
},
"hashtags": [
"foryoupage",
"petsoftiktok",
"aesthetic"
],
"mentions": []
}
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/video/comments
requires authentication
Top-level comments on a video, 20 per page: total, cursor, hasMore, and comments (id, text,
createTime, likes, replyCount, pinned, likedByAuthor, author). Pass the returned cursor to get the next
page. A video without comments, or one that doesn't exist, returns comments: [].
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/video/comments'
params = {
'id': '7106594312292453675',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/video/comments';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'id' => '7106594312292453675',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/video/comments"
);
const params = {
"id": "7106594312292453675",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/video/comments?id=7106594312292453675" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"id": "7106594312292453675",
"cursor": 0
},
"body": {
"total": 1269,
"cursor": "20",
"hasMore": true,
"comments": [
{
"id": "7128453658077397765",
"text": "Tiktok and Minecraft??",
"createTime": "2022-08-05T18:01:11Z",
"likes": 3,
"replyCount": 0,
"pinned": false,
"likedByAuthor": false,
"author": {
"id": "6653810561643937797",
"secUid": "MS4wLjABAAAAskbqyCl5Kyd95nCiTp4EjUdziGoRqyo_zR7A3MMOvwpq2nDhX86lZ5-IbgGaTCxD",
"username": "awwmanbro",
"nickname": "a",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/37c63c610a9c03e111bb4431f517e766~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=46e317f1&x-expires=1791133200&x-signature=wZDLWq%2BBBGPUriMhTkH%2F9RJAn%2Fk%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast5"
}
},
{
"id": "7106606555949433646",
"text": "15?",
"createTime": "2022-06-07T21:03:06Z",
"likes": 156,
"replyCount": 4,
"pinned": false,
"likedByAuthor": false,
"author": {
"id": "7056496677578621998",
"secUid": "MS4wLjABAAAA2cYwQvR7G2OZSW7PYRV1cLh5BwnjGuYmOLKPTQj1X6dNu15GxZnbZ_lmgB0iG9PD",
"username": "0_.preppy._.vids._0",
"nickname": "0_.preppy._.vids._0",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/bfe549787c81bb9281e82b72a327c184~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=d196f3e0&x-expires=1791133200&x-signature=04GNEfD6GwmzrYrvhlyrZCFZIqg%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast5"
}
},
{
"id": "7112196704363414273",
"text": "j thought it was 16 because of the emoji😳",
"createTime": "2022-06-22T22:36:33Z",
"likes": 190,
"replyCount": 1,
"pinned": false,
"likedByAuthor": false,
"author": {
"id": "7103739906774877189",
"secUid": "MS4wLjABAAAAU5E_fuu1r99dykD5XtZzApJE7gJXgy2IRyxPffa_KT_GsGPswYHgk47B625W8PGq",
"username": "t3ss51",
"nickname": "iprobsfartedrnandudidntknow",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/e37adafcb59a27497234a40b807e952a~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=441c60eb&x-expires=1791133200&x-signature=ETk4X7Xa6TGxajkivromPy31LS4%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast5"
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/video/comment-replies
requires authentication
Replies to one comment, 20 per page, in the /video/comments shape. Take commentId from a comment's id.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/video/comment-replies'
params = {
'id': '7106594312292453675',
'commentId': '7106606555949433646',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/video/comment-replies';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'id' => '7106594312292453675',
'commentId' => '7106606555949433646',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/video/comment-replies"
);
const params = {
"id": "7106594312292453675",
"commentId": "7106606555949433646",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/video/comment-replies?id=7106594312292453675&commentId=7106606555949433646" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"id": "7106594312292453675",
"commentId": "7106606555949433646",
"cursor": 0
},
"body": {
"total": 3,
"cursor": "3",
"hasMore": false,
"comments": [
{
"id": "7106694601016640298",
"text": "16",
"createTime": "2022-06-08T02:44:45Z",
"likes": 0,
"replyCount": null,
"pinned": false,
"likedByAuthor": false,
"author": {
"id": "6790110031654355973",
"secUid": "MS4wLjABAAAAvosMfaqbWUGZoNTWOtdJGUpliaOCjQK7D9HLX8b9ACI_WLteuzs09KQ4E8UmAWuV",
"username": "waylonkatty",
"nickname": "Waylon",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/81fe25c4a4c9d723ccf446e989d91806~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=3dd72d8c&x-expires=1791133200&x-signature=0jR%2Barmx0HER%2BxE0wVPA9m40nLE%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast8"
}
},
{
"id": "7106781823955125035",
"text": "16 where?",
"createTime": "2022-06-08T08:23:35Z",
"likes": 0,
"replyCount": null,
"pinned": false,
"likedByAuthor": false,
"author": {
"id": "6875912783813673989",
"secUid": "MS4wLjABAAAAL2Ft3eTjZZRcXbMZ3bT305h0vd-JKtJZ97l-7A95iZk6M9f8ZD-zJHYtxqr0-ClZ",
"username": "yelglazer46",
"nickname": "Riku.bku",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/b507caaaa707d7a35081fae0b88b6e21~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=f90ce250&x-expires=1791133200&x-signature=w9Yxr%2BOlA9gGcaD%2FvXWOAv5ylIs%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast8"
}
},
{
"id": "7106815856383410990",
"text": "Caption",
"createTime": "2022-06-08T10:35:35Z",
"likes": 0,
"replyCount": null,
"pinned": false,
"likedByAuthor": false,
"author": {
"id": "6790110031654355973",
"secUid": "MS4wLjABAAAAvosMfaqbWUGZoNTWOtdJGUpliaOCjQK7D9HLX8b9ACI_WLteuzs09KQ4E8UmAWuV",
"username": "waylonkatty",
"nickname": "Waylon",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/81fe25c4a4c9d723ccf446e989d91806~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=3dd72d8c&x-expires=1791133200&x-signature=0jR%2Barmx0HER%2BxE0wVPA9m40nLE%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast8"
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/video/oembed
requires authentication
TikTok's embed for a video: id, title, author, authorUsername, authorUrl, thumbnail, thumbnailWidth,
thumbnailHeight, and html (the embed snippet).
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/video/oembed'
params = {
'url': 'https://www.tiktok.com/@tiktok/video/7106594312292453675',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/video/oembed';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'url' => 'https://www.tiktok.com/@tiktok/video/7106594312292453675',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/video/oembed"
);
const params = {
"url": "https://www.tiktok.com/@tiktok/video/7106594312292453675",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/video/oembed?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7106594312292453675" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"url": "https://www.tiktok.com/@tiktok/video/7106594312292453675"
},
"body": {
"id": "7106594312292453675",
"title": "how many frogs did you find? 🐸 check out tiktok’s #Minecraft community today! @Gorillo",
"author": "TikTok",
"authorUsername": "tiktok",
"authorUrl": "https://www.tiktok.com/@tiktok",
"thumbnail": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/beee36ba02ef449397b2d128bc32dd9d_1654632931~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=%2Fz%2FFmFFfS5rqBVQiGhdyPWRuXG4%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"thumbnailWidth": 576,
"thumbnailHeight": 1024,
"html": "<blockquote class=\"tiktok-embed\" cite=\"https://www.tiktok.com/@tiktok/video/7106594312292453675\" data-video-id=\"7106594312292453675\" data-embed-from=\"oembed\" style=\"max-width:605px; min-width:325px;\"> <section> <a target=\"_blank\" title=\"@tiktok\" href=\"https://www.tiktok.com/@tiktok?refer=embed\">@tiktok</a> <p>how many frogs did you find? 🐸 check out tiktok’s <a title=\"minecraft\" target=\"_blank\" href=\"https://www.tiktok.com/tag/minecraft?refer=embed\">#Minecraft</a> community today! @Gorillo</p> <a target=\"_blank\" title=\"♬ original sound - TikTok\" href=\"https://www.tiktok.com/music/original-sound-7106594280055130923?refer=embed\">♬ original sound - TikTok</a> </section> </blockquote> <script async src=\"https://www.tiktok.com/embed.js\"></script>"
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Hashtags
Hashtag details and the videos that use them.
GET /v1/tiktok/hashtag/info
requires authentication
A hashtag's id, name, url, description, cover, and stats (videos, views).
An identical request within 30 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/hashtag/info'
params = {
'name': 'cooking',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/hashtag/info';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'name' => 'cooking',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/hashtag/info"
);
const params = {
"name": "cooking",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/hashtag/info?name=cooking" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"name": "cooking"
},
"body": {
"id": "18973",
"name": "cooking",
"url": "https://www.tiktok.com/tag/cooking",
"description": null,
"cover": "https://p16-common-sign.tiktokcdn-us.com/musically-maliva-obj/bbbcb935f04337b7e6bdb05ee1b9f5e5.jpeg~tplv-tiktokx-origin.image?dr=9627&x-expires=1791068400&x-signature=6dB0sONWR369Qo1DW4koWsfuYho%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=useast5",
"stats": {
"videos": 19093625,
"views": 552498276146
}
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/hashtag/videos
requires authentication
Videos using a hashtag, about 30 per page: hashtag (id, name), cursor, hasMore, and videos. Pass name
or the hashtag id from /hashtag/info, and the returned cursor for the next page.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/hashtag/videos'
params = {
'name': 'cooking',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/hashtag/videos';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'name' => 'cooking',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/hashtag/videos"
);
const params = {
"name": "cooking",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/hashtag/videos?name=cooking" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"name": "cooking",
"cursor": 0
},
"body": {
"hashtag": {
"id": "18973",
"name": "cooking"
},
"cursor": "30",
"hasMore": true,
"videos": [
{
"id": "7643566140492352798",
"url": "https://www.tiktok.com/@mariahhcooks/video/7643566140492352798",
"description": "Hot Honey Chicken Pasta 🍯🔥 the viral recipe with over 60+ million views, 20/10 hits every time! Recipe: Chicken Tenders • 1 lb chicken tenderloins • 1 tsp onion powder • 1 tsp garlic powder • 1 tsp seasoned salt • 1 tsp creole seasoning • 1 tsp cayenne pepper (optional, adjust to spice) • 1 tsp all purpose seasoning • 1 sazon packet • 1–2 cups buttermilk • ⅛ cup jalapeño or pickle juice • 3 cups all-purpose flour (season with same seasonings) Hot Honey Sauce • ½ cup buffalo sauce • ¼ cup honey • ⅛ cup hot sauce (optional) Pasta • 1 lb penne pasta • 2 tbsp unsalted butter • 2 garlic cloves, finely minced • ½ yellow onion, finely chopped • 1 ½ cups heavy cream • 1 tsp onion powder • 1 tsp garlic powder • 1 tsp seasoned salt • 1 tsp creole seasoning • 1 tsp cayenne pepper (optional) • 1 tsp all purpose seasoning • 1 tsp black pepper • Grated mozzarella • Grated Parmesan Instructions 1. Season chicken tenderloins add in buttermilk and jalapeño/pickle juice then marinate for at least 30 minutes to an hour. 2. Coat chicken in seasoned flour set aside on wire rack and rest for 10 minutes before frying. Fry at 350°F until golden brown and crispy. Set aside and let cool on a wire rack. 3. In a sauce pan, add 1 tbsp of unsalted butter, buffalo sauce, honey, and hot sauce and simmer until fully combined. Then toss chicken in the hot honey sauce. 4. In a skillet, melt butter and sauté garlic and onion until fragrant. Pour in heavy cream and stir in all seasonings. 5. Add mozzarella and Parmesan until melted and creamy, then toss in cooked pasta. 6. Top creamy pasta with hot honey chicken and extra sauce if desired and enjoy :) #hothoneychickenpasta #hothoney #chickenpasta #pasta #fypシ ",
"createTime": "2026-05-24T21:00:37Z",
"type": "video",
"duration": 65,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oIVDiAiAEAvAIvFAqOuAeZ2fMboRCzEETEEuGL~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=QeieCGPfr8%2B4ATygBs7kg76rXLE%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oIVDiAiAEAvAIvFAqOuAeZ2fMboRCzEETEEuGL~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=4eYdUvnoqQ0x%2BcmM2Q4SQYyhXm0%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast8/tos-useast8-ve-0068c002-tx2/ogCfj2MzJYs8ufpem6yKqFhQAg4WgIUoIRAAla/?a=1988&bti=ODszNWYuMDE6&&bt=1991&ft=aEeq8qT0mIoPD12gmEmI3wUfnOAbMeF~O5&mime_type=video_mp4&rc=NDk3NzNkN2U8ZDM3ZWU1ZUBpMzl4bnE5cm5wOzMzaTczNEAwYDU0Yy1iXjExLTBfYi42YSNoaF4wMmQ0XzZhLS1kMTJzcw%3D%3D&expire=1791221693&l=2026100317334796B780B5591BF720192C&ply_type=2&policy=2&signature=86baaba98478fa0ae87c43cbc451bff8&tk=tt_chain_token&btag=e00090000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 8600000,
"likes": 909700,
"comments": 1986,
"shares": 178200,
"saves": 309631
},
"author": {
"id": "6787900728574903301",
"secUid": "MS4wLjABAAAAE84XQuS3ikwhSKTLkeCR6KQaV5jgRM0wC-LTBIkQRmnYp6UP0NctPDHky2FPUbFr",
"username": "mariahhcooks",
"nickname": "Mariah | Cooking & Baking",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/afea89e75a557c764622ef0ae33d4d7d~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=1b04007e&x-expires=1791219600&x-signature=7MSY3C%2BV7RQ%2F%2FxCSU%2Fp8UCC0SoU%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": false
},
"music": {
"id": "7579333053030451998",
"title": "original sound",
"author": "Mariah | Cooking & Baking",
"original": true,
"duration": 73,
"cover": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/afea89e75a557c764622ef0ae33d4d7d~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=1b04007e&x-expires=1791219600&x-signature=7MSY3C%2BV7RQ%2F%2FxCSU%2Fp8UCC0SoU%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v19.tiktokcdn-us.com/f6ee8b64f9e133858c17fe15e70392f1/6ac19125/video/tos/useast8/tos-useast8-v-27dcd7-tx2/owGeAqCbQCKXGQItteTZooBIeb8wmAxMA5EALS/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7Thi-5-GXq8Zmo&mime_type=audio_mpeg&rc=M2Y5N2o5cnVtNzMzaTU8NEBpM2Y5N2o5cnVtNzMzaTU8NEBiMmxjMmRjM2thLS1kMTJzYSNiMmxjMmRjM2thLS1kMTJzcw%3D%3D&vvpl=1&l=2026100317334796B780B5591BF720192C&btag=e00050000"
},
"hashtags": [
"hothoneychickenpasta",
"hothoney",
"chickenpasta",
"pasta",
"fypシ"
],
"mentions": []
},
{
"id": "7689569942680685854",
"url": "https://www.tiktok.com/@_cookedbyjess/video/7689569942680685854",
"description": "What are you waiting for??😭 Honey Chipotle Chicken Mac & Cheese Tacos🌮 Full recipe on my substack, link in bio💕 Ingredients: Chicken: Boneless, skinless chicken thighs Garlic powder Onion powder Paprika Cayenne pepper Kosher salt Black pepper Chicken bouillon Ground cumin Eggs Cornstarch All-purpose flour Dry Mix: All-purpose flour Cornstarch Rice flour Mac & Cheese: Elbow macaroni Unsalted butter All-purpose flour Chicken bouillon Onion powder Garlic powder Paprika Cayenne pepper Heavy cream Mozzarella cheese Sharp cheddar cheese Honey Chipotle Sauce: Unsalted butter Chipotle peppers in adobo Hot sauce Honey Spicy Pickle Sauce: Mayonnaise Sour cream Sriracha Chipotle peppers in adobo Pickle juice Garlic powder Assembly: Small flour tortillas Mozzarella cheese Vegetable oil #cookedbyjess #comfortfood #tacos #macncheese ",
"createTime": "2026-09-25T20:18:57Z",
"type": "video",
"duration": 60,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/o0lLIeX9AgUffeStQAMAQy2nGKqArJFRA1QK83~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=lCbdhJyXOYjPJ%2BXFWSPypzVjbCE%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/o0lLIeX9AgUffeStQAMAQy2nGKqArJFRA1QK83~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=lCbdhJyXOYjPJ%2BXFWSPypzVjbCE%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast8/tos-useast8-pve-0068-tx2/ogVftFYqA4ARuDzdEo1EP5DfKSEEtq2VAQB2Ip/?a=1988&bti=ODszNWYuMDE6&&bt=2837&ft=aEeq8qT0mIoPD12gmEmI3wUfnOAbMeF~O5&mime_type=video_mp4&rc=ZTkzaTg2NGY5aTo7ZDdoN0BpM3d2Z3M5cjZnZDMzaTczNEBjNC0zXmA1NTYxMGM1MzJhYSNoLTRyMmRzYG9hLS1kMTJzcw%3D%3D&expire=1791221688&l=2026100317334796B780B5591BF720192C&ply_type=2&policy=2&signature=d4cc9791bee8b53373c2fe83fed5d8b7&tk=tt_chain_token&btag=e00090000",
"images": [],
"width": 720,
"height": 1280,
"isAd": true,
"locationCreated": null,
"stats": {
"plays": 1400000,
"likes": 141300,
"comments": 596,
"shares": 43200,
"saves": 44921
},
"author": {
"id": "7237350154695640107",
"secUid": "MS4wLjABAAAA8C8PCVtY40TMT4bSqiE23PRPs0A-lwxNgykMUzbr2fOODGic1ZO-xhm44oOCkF9z",
"username": "_cookedbyjess",
"nickname": "CookedByJess",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/06edcafeed3ed0cb85f8c98929158c34~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=e0f00f9c&x-expires=1791219600&x-signature=JEg3xSGl79b9AsJaJs1QmtlIrrw%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": false
},
"music": {
"id": "6928871887166507009",
"title": "Do For Love - Instrumental",
"author": "The Hit Crew",
"original": false,
"duration": 60,
"cover": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYAwbcjfszitAoApAKB1U8itAjtGwB3E5kvAEW~tplv-tiktokx-cropcenter:200:200.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=81f88b70&idc=useast5",
"playUrl": "https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/okIaDaFgfwF3WWhsTvfyW872gAQflCMDMgpzjW"
},
"hashtags": [
"cookedbyjess",
"comfortfood",
"tacos",
"macncheese"
],
"mentions": []
},
{
"id": "7690673524758924557",
"url": "https://www.tiktok.com/@iramsfoodstory/video/7690673524758924557",
"description": "Crispy cheeseburger wraps Ingredients For the beef mixture: 1 lb ground beef ( 80% lean, 20% fat ) 2 tbsp oil 1 yellow onion, finely diced 1 tbsp fresh garlic, minced 1 tbsp tomato paste Salt to taste 1 tsp black pepper 1 tbsp garlic powder 2 tsp smoked paprika powder 1 tsp onion powder 1 large jalapeño, chopped 1 tbsp Worcestershire sauce 1/2 cup water For the cheese burger sauce: 1/2 cup mayonnaise 2 tbsp ketchup 1 tbsp yellow mustard 1/2 tsp Worcestershire sauce 1 1/2 tbsp finely minced dill pickles 1 tbsp pickle juice 1 tsp finely minced onion 1/2 tsp garlic powder 1/4 tsp smoked paprika 1/2 tsp sugar 1/4 tsp black pepper To assemble: 9 medium tortilla wraps 1 1/2 cup Mexican style four cheese 1/2 cup caramelized onions 1/3 cup picked jalapeños, chopped Oil for pan frying Method: Heat 1 tbsp oil in a large skillet over medium-high heat. Add onion and cook 3–4 minutes until softened. Add garlic and cook 30 seconds. Add beef and cook, breaking it up, until browned and fully cooked. Drain excess fat if needed, leaving a little behind. Add tomato paste, salt, pepper, garlic powder, smoked paprika and onion powder. Cook 1–2 minutes. Add Worcestershire sauce jalapeños and water. Simmer uncovered 5–7 minutes, stirring occasionally, until the liquid has completely reduced and the beef is moist but not watery. Taste and adjust salt if needed. Remove from heat and cool slightly. For the sauce, mix mayonnaise, ketchup, mustard, Worcestershire sauce, pickles, pickle juice, onion, garlic powder, smoked paprika, sugar and black pepper until smooth. Refrigerate until ready to use. Lay out the tortillas and spread about 1 tbsp sauce slightly below the center. Add about 1/4 cup beef, 2 tbsp cheese, caramelized onions and pickled jalapeños. Fold the bottom over the filling, fold in the sides and roll tightly. Heat a thin layer of oil in a skillet over medium heat. Place wraps seam-side down and cook 2–3 minutes per side, pressing gently, until golden and crispy. Continue cooking until all sides are crisp and the cheese is melted. Rest 1–2 minutes, slice in half and serve immediately with extra cheeseburger sauce. #recipe #cheeseburger ",
"createTime": "2026-09-28T19:41:19Z",
"type": "video",
"duration": 61,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oowqrLEJi4yrBi8EPRmCiDKhU6urAIzIgaBB3~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=AkIM6JtNbS3go%2B22%2FnSwAaZmfKc%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/okq6CiBL9rLUrg8BIuaiEj4zIB3lzKiywAPBR~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=8Gi7pu4XskSqOSLcrmpVnLYYFjY%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-pve-0068-tx/ogwq3LEhi4SrBi89PRSCiQKxU6wrAEzIgaBJ3/?a=1988&bti=ODszNWYuMDE6&&bt=1335&ft=aEeq8qT0mIoPD12gmEmI3wUfnOAbMeF~O5&mime_type=video_mp4&rc=aDg1ZjxoODY0Nmk4OWZoaUBpM3Y8NXE5cm1mZDMzZzczNEBeNDYtYDNgXi4xYjUyXjRfYSNlMHEyMmQ0MnFhLS1kMS9zcw%3D%3D&expire=1791221689&l=2026100317334796B780B5591BF720192C&ply_type=2&policy=2&signature=4bfe5e4862b9111fd87a6af097ed7ba1&tk=tt_chain_token&btag=e00090000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 8100000,
"likes": 649100,
"comments": 887,
"shares": 104700,
"saves": 236343
},
"author": {
"id": "6917123643164722182",
"secUid": "MS4wLjABAAAAhDjsksxxyBlDx3D7NJc5gh6N8xPIf_n1q8JymNaebnK17pOpHFzUQt5CB1yB8Dwv",
"username": "iramsfoodstory",
"nickname": "iramsfoodstory",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/913e62a1ab3b4a91e40d9d8c2d3909c4~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=9de4d4a0&x-expires=1791219600&x-signature=mOfdBvvdyIM%2FuR00%2F7tD2FuaYbo%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": false
},
"music": {
"id": "7690673470694329102",
"title": "original sound",
"author": "iramsfoodstory",
"original": true,
"duration": 61,
"cover": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/913e62a1ab3b4a91e40d9d8c2d3909c4~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=9de4d4a0&x-expires=1791219600&x-signature=mOfdBvvdyIM%2FuR00%2F7tD2FuaYbo%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v19.tiktokcdn-us.com/cea120bba64a7a4724f9a8cc94827fee/6ac19119/video/tos/useast5/tos-useast5-v-27dcd7-tx/oMwzIFjUEECEgXu7s6fLfAiCJA9LqDSgDALuBN/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7Thi-5-GXq8Zmo&mime_type=audio_mpeg&rc=ajc0eXM5cnJmZDMzZzU8NEBpajc0eXM5cnJmZDMzZzU8NEBjb2psMmRrMnFhLS1kMS9zYSNjb2psMmRrMnFhLS1kMS9zcw%3D%3D&vvpl=1&l=2026100317334796B780B5591BF720192C&btag=e00050000"
},
"hashtags": [
"recipe",
"cheeseburger"
],
"mentions": []
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Discover
The explore feed and search suggestions.
GET /v1/tiktok/explore
requires authentication
Videos from TikTok's explore page for a category, about 15 per call. The feed changes between calls; an identical request within 10 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/explore'
params = {
'category': 'food',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/explore';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'category' => 'food',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/explore"
);
const params = {
"category": "food",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/explore?category=food" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"category": "all"
},
"body": [
{
"id": "7664782256527002901",
"url": "https://www.tiktok.com/@menlegende/video/7664782256527002901",
"description": "@Légende peyi a😂🔥 @SteveArt #menlégende #funnyvideo #talent #funnybike #fyp ",
"createTime": "2026-07-21T01:10:01Z",
"type": "video",
"duration": 12,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oQaBXuD9FCO3XxeC7REWABIE3ulQQUPfgqs1zE~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=%2B550XT1RFMeY7aF%2FkNhausmVvWc%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/ok3IfcD3QFAXQ3BXWHEUzjEaBusgfRl9q1dCgO~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=H5pRzMq52iZN9WjgYZLbe6Zo79I%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/o8yElxIvQ3uEUuXBOeoDfBWRX3AFgtsgJ9aqI1/?a=1988&bti=ODszNWYuMDE6&&bt=3116&ft=aEeq8qT0mIoPD12LREmI3wUPbTAbMeF~O5&mime_type=video_mp4&rc=NGlpZmk0OTU5NjQ0Zjk7ZkBpajpkeHE5cndmPDMzODczNEA0LmA1MjFeXi0xMGE1NTRiYSMyNWphMmRzX2NhLS1kMTFzcw%3D%3D&expire=1791221119&l=2026100317250692915F34081EC03CC8D3&ply_type=2&policy=2&signature=b7656887ee7f691b0ac9fc00e957aa66&tk=tt_chain_token&btag=e000f8000",
"images": [],
"width": 576,
"height": 1024,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 126100000,
"likes": 4300000,
"comments": 44200,
"shares": 334500,
"saves": 268425
},
"author": {
"id": "7341753264772383749",
"secUid": "MS4wLjABAAAAs2KF0OMOnR7_Xxz4JQmMbbG0tHSzZuz_iA6AtAi1wBVzQKHAkqB2HC4UgCwCTEwA",
"username": "menlegende",
"nickname": "Menlégende😂🔥",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4112dd6e9a5df314afe1b94c37a90b60~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=e5c047ce&x-expires=1791219600&x-signature=T4o6Ix6gmpCug9wkF1dQYmMrwxg%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": false
},
"music": {
"id": "7437246680426122030",
"title": "original sound",
"author": "daily_laugh_akrobetoo",
"original": true,
"duration": 23,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/cf2aea74f2200283486b1ff7df412c61~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=ef2ff0d7&x-expires=1791219600&x-signature=rrC3Bmy17FiD%2FAo95S54QkjNrUA%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v16m.tiktokcdn-us.com/3456715982d4f90274104873d080934f/6ac18eea/video/tos/useast5/tos-useast5-v-27dcd7-tx/oETsin6AEbamCFfBUASIAgD0yDANBwDkUIQfJV/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7Th.m5-GXq8Zmo&mime_type=audio_mpeg&rc=M2Q5Omw5cjM5djMzZzU8NEBpM2Q5Omw5cjM5djMzZzU8NEBwaDYtMmRzZW9gLS1kMS9zYSNwaDYtMmRzZW9gLS1kMS9zcw%3D%3D&vvpl=1&l=2026100317250692915F34081EC03CC8D3&btag=e00078000"
},
"hashtags": [
"menlégende",
"funnyvideo",
"talent",
"funnybike",
"fyp"
],
"mentions": [
"user7796272466038",
"stevedraw"
]
},
{
"id": "7675067268493004052",
"url": "https://www.tiktok.com/@agentoflaughter/video/7675067268493004052",
"description": "pov: first time swimming 😂 💔 #comedy #funny #viral ",
"createTime": "2026-08-17T18:20:58Z",
"type": "video",
"duration": 13,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/ogaABYoCNmBCiOSEAQDl0A4HE6UIAviYxn15A~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=EvSmM%2ByhNdk%2F%2B7YvJ1NhPqScYMA%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/ogaABYoCNmBCiOSEAQDl0A4HE6UIAviYxn15A~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=EvSmM%2ByhNdk%2F%2B7YvJ1NhPqScYMA%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/ooA9avtQEioBAYiUONRaCD8XBi5EGFQFdiIvi/?a=1988&bti=ODszNWYuMDE6&&bt=1600&ft=aEeq8qT0mIoPD12LREmI3wUPbTAbMeF~O5&mime_type=video_mp4&rc=PDs2Ojo6PGRlOTs7aGZnZkBpajh0Onc5cnNvZDMzODczNEAtL2NhMS80XmIxMDBjYTVeYSNqcjVhMmRrLi5hLS1kMWBzcw%3D%3D&expire=1791221120&l=2026100317250692915F34081EC03CC8D3&ply_type=2&policy=2&signature=00ad3aac0372b9f838a2f9279640938c&tk=tt_chain_token&btag=e000f8000",
"images": [],
"width": 576,
"height": 1024,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 20100000,
"likes": 3200000,
"comments": 62300,
"shares": 184700,
"saves": 289169
},
"author": {
"id": "6665668551394148354",
"secUid": "MS4wLjABAAAA7OW7jRcew-23i7542DPpJot1f5_2WwcX84w4tsKuptd23ua-rM9lqnl4qnCLm0SH",
"username": "agentoflaughter",
"nickname": "Agent Of Laughter",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/7315108118353870853~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=7767ee6b&x-expires=1791219600&x-signature=C%2BrpbGsCQP03%2ByZFt2DrZ11zUAA%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": true
},
"music": {
"id": "7675067297878379271",
"title": "original sound",
"author": "Agent Of Laughter",
"original": true,
"duration": 13,
"cover": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/7315108118353870853~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=7767ee6b&x-expires=1791219600&x-signature=C%2BrpbGsCQP03%2ByZFt2DrZ11zUAA%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v16m.tiktokcdn-us.com/a1a234932976801b7cc58e588b9a3c03/6ac18ee0/video/tos/alisg/tos-alisg-v-27dcd7/oAPAciRElAADiIDqGWCQCaYUd1AoEyAUVBDNy/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7Th.m5-GXq8Zmo&mime_type=audio_mpeg&rc=M3BnOm85cjZvZDMzODU8NEBpM3BnOm85cjZvZDMzODU8NEAwXjVpMmQ0Ly5hLS1kMS1zYSMwXjVpMmQ0Ly5hLS1kMS1zcw%3D%3D&vvpl=1&l=2026100317250692915F34081EC03CC8D3&btag=e00078000"
},
"hashtags": [
"comedy",
"funny",
"viral"
],
"mentions": []
},
{
"id": "7669725994743336199",
"url": "https://www.tiktok.com/@lianaparmezana/video/7669725994743336199",
"description": "I’m back…",
"createTime": "2026-08-03T08:54:11Z",
"type": "video",
"duration": 14,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/o891ToujuAb2BI12wIiEOVqBWfIXdzCiACA1wI~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=PCW4RLKm3tf%2BXJubhx0BTb2fP04%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oYzwI129OxIiCVEnAAIxX2ufWjSwmiIBAdqAEC~tplv-tiktokx-origin.image?dr=9636&x-expires=1791219600&x-signature=h6Aff1Xq%2Fx2PMVw0ExQcoucmBfM%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/oEdEwgOI9jAVAu1EIiCWCuiCwB2zfmAXIQAu1q/?a=1988&bti=ODszNWYuMDE6&&bt=1115&ft=aEeq8qT0mIoPD12LREmI3wUPbTAbMeF~O5&mime_type=video_mp4&rc=OWdnaTo8Njs4NWY4Ozg7O0BpM3FnbHA5cmU4PDMzODczNEAxNjRgYWBfNTYxNjUxMF8yYSMvbjFyMmRjYmxhLS1kMTFzcw%3D%3D&expire=1791221121&l=2026100317250692915F34081EC03CC8D3&ply_type=2&policy=2&signature=7158a53784431391f1c62f62212a6f44&tk=tt_chain_token&btag=e000f8000",
"images": [],
"width": 576,
"height": 768,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 49200000,
"likes": 8900000,
"comments": 16900,
"shares": 251200,
"saves": 344286
},
"author": {
"id": "7075744691200050182",
"secUid": "MS4wLjABAAAAbqb06mVlZWvY2jryZJxy9L_20Caqs6DvrwwtSSEuuRJb_E9KxVs7A96aKFZKQg0n",
"username": "lianaparmezana",
"nickname": "just Liana🤪",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/1fa74090ede8616695ba8850b6acc6e1~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=a5d60c68&x-expires=1791219600&x-signature=0NY6LOlwNbfn1EIxy0n44zmHQwc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"verified": false
},
"music": {
"id": "7337009707813800736",
"title": "original sound",
"author": "BEAST EDITS",
"original": true,
"duration": 93,
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/04ebbe6c8f060a83c1ebc16eef5947d0~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=a9673e0d&x-expires=1791219600&x-signature=gVbHiPPfTmw4v5EsZMVsOGupsvg%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"playUrl": "https://v16m.tiktokcdn-us.com/bd7b4e6a75d63f0c990a7d3ea499cf81/6ac18f30/video/tos/useast2a/tos-useast2a-v-2370-euttp/osfvlk1P0BDFNk0IAIrA8ACstUtQulf8DUJkEG/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7Th.m5-GXq8Zmo&mime_type=audio_mpeg&rc=M3B1Ong5cnc3cTMzZjU8M0BpM3B1Ong5cnc3cTMzZjU8M0BxX2QyMmRjajZgLS1kMWNzYSNxX2QyMmRjajZgLS1kMWNzcw%3D%3D&vvpl=1&l=2026100317250692915F34081EC03CC8D3&btag=e00050000"
},
"hashtags": [],
"mentions": []
}
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/search/suggest
requires authentication
Search suggestions for a partial query, as TikTok shows them while typing.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/search/suggest'
params = {
'q': 'cook',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/search/suggest';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'q' => 'cook',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/search/suggest"
);
const params = {
"q": "cook",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/search/suggest?q=cook" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"q": "cook"
},
"body": [
{
"query": "cooking big hyatt"
},
{
"query": "cooking food videos"
},
{
"query": "cookie monster resort"
}
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/resolve
requires authentication
What a TikTok link points to: type is video (with id, username, isPhoto), user (username), hashtag
(name), music (id), or other. vm.tiktok.com and vt.tiktok.com short links are followed.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/resolve'
params = {
'url': 'https://www.tiktok.com/@tiktok/video/7106594312292453675',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/resolve';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'url' => 'https://www.tiktok.com/@tiktok/video/7106594312292453675',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/resolve"
);
const params = {
"url": "https://www.tiktok.com/@tiktok/video/7106594312292453675",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/resolve?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7106594312292453675" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"url": "https://www.tiktok.com/@tiktok/video/7106594312292453675"
},
"body": {
"type": "video",
"id": "7106594312292453675",
"username": "tiktok",
"isPhoto": false
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Search
Keyword search for videos and accounts.
GET /v1/tiktok/search/videos
requires authentication
Videos matching a keyword, 12 per page: cursor, hasMore, searchId, and videos. For the next page pass the
returned cursor and searchId. An identical request within 5 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/search/videos'
params = {
'q': 'cooking',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/search/videos';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'q' => 'cooking',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/search/videos"
);
const params = {
"q": "cooking",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/search/videos?q=cooking" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"q": "cooking",
"cursor": "0"
},
"body": {
"cursor": "12",
"hasMore": true,
"searchId": "20261004024252EA7BA12830AAC432F4B4",
"videos": [
{
"id": "7629084489569832222",
"url": "https://www.tiktok.com/@britscookin/video/7629084489569832222",
"description": "Honey Garlic Chicken! 🍯 🧄 Sticky, sweet, garlicky, and comes together so easy… this one’s a weeknight winner every time!! @Courtney Cook made my recipe the other day and it made me want it all over again!! Serve it over rice with a veggie, so good y’all. Ingredients: • 3 lbs boneless, skinless chicken thighs, cut into bite-size pieces • ½ tbsp garlic salt • 1 tbsp black pepper • ¼ cup cornstarch (plus a little extra if you want more crunch) • 2–3 tbsp vegetable oil (for frying) Sauce: • ½ cup honey • ¼ cup soy sauce • 1 tbsp ginger paste • 2–3 tbsp minced garlic To Finish: • Sesame seeds • Green onions, sliced ⸻ Instructions: 1. Season the chicken In a large bowl, add chicken, garlic salt, black pepper, and cornstarch. Toss until everything is well coated. (Add a little extra cornstarch if you want it extra crispy.) 2. Cook the chicken Heat oil in a large skillet or wok over medium-high heat. Add chicken in batches and cook until browned on both sides with a light crust. Don’t overcrowd the pan. Remove and set aside. 3. Make the sauce Add all the cooked chicken back to the skillet. Pour in honey, soy sauce, ginger paste, and minced garlic. Toss to coat. 4. Simmer Let it simmer for a few minutes until the sauce thickens and gets sticky, coating all the chicken. 5. Finish & serve Top with sesame seeds and green onions. Serve over white rice with your favorite veggie. #yum #easyrecipe #chicken",
"createTime": "2026-04-15T20:24:32Z",
"type": "video",
"duration": 38,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/o4GHfAeXW0peOLLi47yKANosIfgg6gJANGt6Ze~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=ve%2BzRMkaUKPxUCPWhS6pygqTa5o%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my2",
"dynamicCover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/ocFLAVSTvAjDIUmHE5kf2j9CqSffQl6BID2AQD~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=8DQ1uKEOtFOzRitMYbiMoSdN3U0%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my2",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/og9I06GEgHyioMfKpfeGegsNXNALA4eAsGzORJ/?a=1988&bti=ODszNWYuMDE6&&bt=2393&ft=-Csk_mH1PD12Nsgoon-Ux2yvWY6e3wv25-cAp&mime_type=video_mp4&rc=Mzc6Zjs1NzMzNzdkOzQ8PEBpamRudnY5cnN5OjMzaTczNEBjYV80Y141XzMxMy9jNDY1YSNhMGdkMmRrMmNhLS1kMTJzcw%3D%3D&expire=1791225811&l=20261004024252EA7BA12830AAC432F4B4&ply_type=2&policy=2&signature=0a1614322063a36fbedaf8b9c39ce0d5&tk=tt_chain_token&btag=e00088000",
"images": [],
"width": 720,
"height": 1282,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 5900000,
"likes": 175900,
"comments": 485,
"shares": 71700,
"saves": 172842
},
"author": {
"id": "6784503679980520453",
"secUid": "MS4wLjABAAAAJB3YDsCk3csG0eaFkOz1ZZmBmGHEaNGNwuWCuUsrH4bkeBkVRqrWayrF222oMJ1_",
"username": "britscookin",
"nickname": "britscookin",
"avatar": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/e3bd476f75522834dafbbb522ca17c1c~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=f43c6f84&x-expires=1791223200&x-signature=aAYFgdKC31iH2fsj213lFCy7BWc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
"verified": true
},
"music": {
"id": "7629084492879252255",
"title": "original sound",
"author": "britscookin",
"original": true,
"duration": 38,
"cover": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/e3bd476f75522834dafbbb522ca17c1c~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=f43c6f84&x-expires=1791223200&x-signature=aAYFgdKC31iH2fsj213lFCy7BWc%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/maliva/tos-maliva-v-27dcd7c799-us/okAffFQpEAcTKD4GII9IC3ACGcEovTAqAACfIM/?a=1988&bti=ODszNWYuMDE6&&bt=125&ft=GNDpcInz7Th0p--GXq8Zmo&mime_type=audio_mpeg&rc=MzY3c3Y5cjN5OjMzaTU8NEBpMzY3c3Y5cjN5OjMzaTU8NEAvcGRhMmRrNWNhLS1kMTJzYSMvcGRhMmRrNWNhLS1kMTJzcw%3D%3D&expire=1791056611&l=20261004024252EA7BA12830AAC432F4B4&ply_type=3&policy=3&signature=7d59be2f96cd86b8708816f67cb5cdb4&tk=7691519091580208146&btag=e00058000"
},
"hashtags": [
"yum",
"easyrecipe",
"chicken"
],
"mentions": [
"courtneylcook"
]
},
{
"id": "7660288880272248078",
"url": "https://www.tiktok.com/@dadsfoodtoday/video/7660288880272248078",
"description": "Here is my One Pot Creamy Chicken Pasta Dinner 🤤🍝 full recipe on my website. Crispy on the outside, juicy and full of flavor chicken over a rich, creamy, cheesy pasta. Easy comfort food made in one pot! No mess no stress dinner 😊 One Pot Creamy Chicken Pasta: Ingredients Chicken 2 chicken breasts 1 tbsp olive oil 1–2 tbsp butter 1 tsp Cajun seasoning 1 tsp smoked paprika 1 tsp sweet paprika 1 tsp Italian seasoning 1 tsp garlic powder 1 tsp onion powder Salt and black pepper, to taste Pasta & Sauce 8 oz dry rigatoni 24 oz heavy cream 24 oz chicken broth (add more if needed) 1 tsp Cajun seasoning 1 tsp smoked paprika 1 tsp sweet paprika 1 tsp Italian seasoning 1 tsp garlic powder 1 tsp onion powder 1–2 cups shredded cheese of your choice (I used mozzarella, sharp cheddar, and medium cheddar) Optional Garnish Fresh parsley, chopped Grated Parmesan cheese Red pepper flakes Instructions Season the chicken: Coat the chicken breasts with olive oil, Cajun seasoning, smoked paprika, sweet paprika, Italian seasoning, garlic powder, onion powder, salt, and black pepper. Let the chicken marinate in the refrigerator for 15–30 minutes for the best flavor. Cook the chicken: Heat a large pot or skillet over medium-high heat and cook the chicken for about 2–3 minutes per side, or until golden brown and fully cooked. Remove the chicken from the pan and let it rest. Cook the pasta: In the same pot, add the rigatoni, heavy cream, chicken broth, 1–2 tbsp butter, and seasonings. Stir everything together, cover, and let the pasta simmer until al dente, stirring occasionally. Add more broth or cream if needed while the pasta cooks. Add the cheese: Once the pasta is cooked, add your shredded cheese and stir until melted and creamy. I used mozzarella, sharp cheddar, and medium cheddar, but feel free to use whatever cheese you have in the fridge. Finish and serve: Slice the rested chicken and place it on top of the creamy pasta. Garnish with fresh parsley, Parmesan cheese, or red pepper flakes if desired. #easyrecipe #pasta #chicken #familydinner #onepot ",
"createTime": "2026-07-08T22:33:44Z",
"type": "video",
"duration": 14,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oEQIfIcGAvAErFGLeAUjHAAQQC7xungfazWERk~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=ClN8CAeazuYeYMeuywajivgp%2B6s%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my2",
"dynamicCover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oEQIfIcGAvAErFGLeAUjHAAQQC7xungfazWERk~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=ClN8CAeazuYeYMeuywajivgp%2B6s%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my2",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/o8Ox0FBRSDq1TfEA0gDjA8FJIfchXZDEBdE1tQ/?a=1988&bti=ODszNWYuMDE6&&bt=2101&ft=-Csk_mH1PD12Nsgoon-Ux2yvWY6e3wv25-cAp&mime_type=video_mp4&rc=aTY0aDw2OTU5NjY5N2Q3OkBpanZ2dnQ5cjtnPDMzZzczNEBiNmIyNGE1XzAxL2MvYDZeYSNsZmMyMmRjLTRhLS1kMS9zcw%3D%3D&expire=1791225788&l=20261004024252EA7BA12830AAC432F4B4&ply_type=2&policy=2&signature=5207dd916f8f524b88ed1501c8d67111&tk=tt_chain_token&btag=e000b8000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 8200000,
"likes": 785100,
"comments": 1890,
"shares": 156500,
"saves": 317511
},
"author": {
"id": "7265646866401821738",
"secUid": "MS4wLjABAAAA7eCJ5F6pZzNzwgPvWw5rr1Y5MftaETOsftKGVDBoECj7im34SxXX6Kl3eG9FUlyb",
"username": "dadsfoodtoday",
"nickname": "dadsfoodtoday",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/2c5a6abaacfd7f92b7ba180e7dddd973~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=d12308e6&x-expires=1791223200&x-signature=DgP4s7xH9YCtuO4Us82JXNyXOPU%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
"verified": false
},
"music": {
"id": "6754420279457565445",
"title": "Mr. Blue Sky",
"author": "Electric Light Orchestra",
"original": false,
"duration": 33,
"cover": "https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oIAqeRU8MeQlFAMVK5MfOGW0AMOfAVeI1joAIr.jpeg",
"playUrl": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/b6210191f1854b7c9157d5d1e2e5fe77"
},
"hashtags": [
"easyrecipe",
"pasta",
"chicken",
"familydinner",
"onepot"
],
"mentions": []
},
{
"id": "7619192848109276430",
"url": "https://www.tiktok.com/@tftk007/video/7619192848109276430",
"description": "#cookingforest#outdoorcooking #cooking #Recipe #beef #survivor#cookingasmr #leon#outdoorcooking #cookingnature",
"createTime": "2026-03-20T04:40:13Z",
"type": "video",
"duration": 359,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/o8Q8fSKizGIxCIoEdAi0AzuBwDpE1BO6Pm3CUy~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=M%2FO%2FYtsbuux1wyyldyYKuDELFms%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my2",
"dynamicCover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/o4KKIpiB1SPBUyDD00m8CQDIAti7GIA3xfAZxw~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=9fq6kQTlC4jIG1cMmvGlJ6dzkRQ%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my2",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/oYBbRXD0vOMfVe7i8k8NS78EjGkFQEpoDIgAPg/?a=1988&bti=ODszNWYuMDE6&&bt=2875&ft=-Csk_mH1PD12Nsgoon-Ux2yvWY6e3wv25-cAp&mime_type=video_mp4&rc=NTc2OzdlPDg7Njs5Nmg7M0Bpamo4NGw5cnlmOTMzZzczNEBjNTJiNTMxNmIxYS8wLS4uYSMuNWo2MmQ0XnJhLS1kMS9zcw%3D%3D&expire=1791226133&l=20261004024252EA7BA12830AAC432F4B4&ply_type=2&policy=2&signature=0857c9f612abc48a1b3960087393b154&tk=tt_chain_token&btag=e00088000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 9800000,
"likes": 439200,
"comments": 2600,
"shares": 37000,
"saves": 34784
},
"author": {
"id": "7521686775371842591",
"secUid": "MS4wLjABAAAARrAQ-DolrigX0zNo4UVvGyixVUhH7ZAEJs4dc-__utkItYr-_EuxA_4MYC45sxMl",
"username": "tftk007",
"nickname": "Shanye",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/db81b659d4224bce4d93eb04ac625022~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=403f1011&x-expires=1791223200&x-signature=CPt3t65wd57dOfiFM%2B6cxbV5GBI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
"verified": false
},
"music": {
"id": "7061837257761639194",
"title": "nhạc nền - Dương Cường Digital Camera",
"author": "Dương Cường Camera",
"original": true,
"duration": 428,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/feaa1c8c3939bb76e9c4c24029524ce9~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fcb81d2e&x-expires=1791223200&x-signature=ktndbZ%2FKoy2GLDhPuDOJdmQXOmE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/no1a/tos-no1a-v-2370c710-no/9e06825ae0384161adfde33c42790036/?a=1988&bti=ODszNWYuMDE6&&bt=124&ft=GNDpcInz7Th0p--GXq8Zmo&mime_type=video_mp4&rc=anhlZ2Q6ZnZkOzMzZjU8M0BpanhlZ2Q6ZnZkOzMzZjU8M0ByMTJucjQwci1gLS1kMWNzYSNyMTJucjQwci1gLS1kMWNzcw%3D%3D&expire=1791057001&l=20261004024252EA7BA12830AAC432F4B4&ply_type=3&policy=3&signature=637e6827ea0c144fd87d040cadd2e73c&tk=7691519091580208146&btag=e00060000"
},
"hashtags": [
"cookingforest",
"outdoorcooking",
"cooking",
"recipe",
"beef",
"survivor",
"cookingasmr",
"leon",
"cookingnature"
],
"mentions": []
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/search/top
requires authentication
TikTok's "Top" search results for a keyword: cursor, hasMore, searchId, and videos.
users is an empty list. Account search is /search/users.
For the next page pass cursor and searchId.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/search/top'
params = {
'q': 'cooking',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/search/top';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'q' => 'cooking',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/search/top"
);
const params = {
"q": "cooking",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/search/top?q=cooking" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"q": "cooking",
"cursor": "0"
},
"body": {
"cursor": "12",
"hasMore": true,
"searchId": "202610040243145B0A841C99A4906E44F0",
"videos": [
{
"id": "7619192848109276430",
"url": "https://www.tiktok.com/@tftk007/video/7619192848109276430",
"description": "#cookingforest#outdoorcooking #cooking #Recipe #beef #survivor#cookingasmr #leon#outdoorcooking #cookingnature",
"createTime": "2026-03-20T04:40:13Z",
"type": "video",
"duration": 359,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/o8Q8fSKizGIxCIoEdAi0AzuBwDpE1BO6Pm3CUy~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=M%2FO%2FYtsbuux1wyyldyYKuDELFms%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"dynamicCover": "https://p19-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/o4KKIpiB1SPBUyDD00m8CQDIAti7GIA3xfAZxw~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=XlW9f194j16t6SD4wzDjLImhkrA%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/oYBbRXD0vOMfVe7i8k8NS78EjGkFQEpoDIgAPg/?a=1988&bti=ODszNWYuMDE6&&bt=2875&ft=-Csk_mH1PD12NTKoon-Ux.L2SY6e3wv25HcAp&mime_type=video_mp4&rc=NTc2OzdlPDg7Njs5Nmg7M0Bpamo4NGw5cnlmOTMzZzczNEBjNTJiNTMxNmIxYS8wLS4uYSMuNWo2MmQ0XnJhLS1kMS9zcw%3D%3D&expire=1791226155&l=202610040243145B0A841C99A4906E44F0&ply_type=2&policy=2&signature=963038de1460f9e624e94b4adb241a79&tk=tt_chain_token&btag=e000a0000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 9800000,
"likes": 439200,
"comments": 2600,
"shares": 37000,
"saves": 34784
},
"author": {
"id": "7521686775371842591",
"secUid": "MS4wLjABAAAARrAQ-DolrigX0zNo4UVvGyixVUhH7ZAEJs4dc-__utkItYr-_EuxA_4MYC45sxMl",
"username": "tftk007",
"nickname": "Shanye",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/db81b659d4224bce4d93eb04ac625022~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=403f1011&x-expires=1791223200&x-signature=CPt3t65wd57dOfiFM%2B6cxbV5GBI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"verified": false
},
"music": {
"id": "7061837257761639194",
"title": "nhạc nền - Dương Cường Digital Camera",
"author": "Dương Cường Camera",
"original": true,
"duration": 428,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/feaa1c8c3939bb76e9c4c24029524ce9~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=fcb81d2e&x-expires=1791223200&x-signature=ktndbZ%2FKoy2GLDhPuDOJdmQXOmE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/no1a/tos-no1a-v-2370c710-no/9e06825ae0384161adfde33c42790036/?a=1988&bti=ODszNWYuMDE6&&bt=124&ft=GNDpcInz7ThrC--GXq8Zmo&mime_type=video_mp4&rc=anhlZ2Q6ZnZkOzMzZjU8M0BpanhlZ2Q6ZnZkOzMzZjU8M0ByMTJucjQwci1gLS1kMWNzYSNyMTJucjQwci1gLS1kMWNzcw%3D%3D&expire=1791057023&l=202610040243145B0A841C99A4906E44F0&ply_type=3&policy=3&signature=1a77a6d0c8c2c38b4ac2bb58edeee6a3&tk=7691519091580208146&btag=e00060000"
},
"hashtags": [
"cookingforest",
"outdoorcooking",
"cooking",
"recipe",
"beef",
"survivor",
"cookingasmr",
"leon",
"cookingnature"
],
"mentions": []
},
{
"id": "7668359278251592974",
"url": "https://www.tiktok.com/@dylannobert/video/7668359278251592974",
"description": "Honey BBQ Chicken Tenders 🍯 My wife said that restaurant chicken is better than mine. I think she just wanted me to cook her dinner. The sauce takes these to another level, so don’t skip it 🙂↔️ 👉 full detailed recipes in bio 🔗 — RECIPE: Chicken (Dry Brine): 6–8 tenders tossed with kosher salt, black pepper, garlic powder, onion powder, smoked paprika. Rest uncovered in the fridge for at least 2 hours (overnight is best). Seasoned Flour + Wet Batter: Mix AP flour, cornstarch, baking powder, salt, garlic powder, onion powder, smoked paprika, cayenne, black pepper + pinch MSG. Move ~⅓ to another bowl and whisk with cold sparkling water until thin pancake batter. Double Dredge: Mix 1–2 tbsp wet batter into dry flour for craggly bits. Coat chicken: wet → dry → wet → dry (press to stick). Fry: 350°F oil for 4–6 mins until golden + CWISPY (and 165F internal). Honey BBQ Glaze: Heat BBQ sauce (Sweet Baby Ray’s), honey, butter, vinegar, hot sauce until smooth + glossy. Season to taste. Toss or brush chicken with glaze while it’s still hot. Comeback sauce recipe posted on my page! Finish: Top with herbs, an extra drizzle of sauce, & serve with ranch. Enjoy friends :) — #cookout #honeybbq #chickentenders #friedchicken #easyrecipe",
"createTime": "2026-07-30T16:30:40Z",
"type": "video",
"duration": 28,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oofqQERDEtDaGWHE8fFwvIACDmAbQgCm3yASOA~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=nBhl4L0MTK1wVvoj0T7sGogkeZc%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"dynamicCover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oofqQERDEtDaGWHE8fFwvIACDmAbQgCm3yASOA~tplv-tiktokx-origin.image?dr=14575&x-expires=1791223200&x-signature=nBhl4L0MTK1wVvoj0T7sGogkeZc%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-ve-37c799-sg/oIgItLUavCYoHTGgReZeTkAAI3eUc1ARx2hAjJ/?a=1988&bti=ODszNWYuMDE6&&bt=1775&ft=I~da4o62D12NvhJ00zIxR_FjblBF-UjNSbopiX&mime_type=video_mp4&rc=M2dpM2hoNmU4ZjlmaTZkOEBpanRtPGo5cmRxPDMzZzczNEBgNTQwXzAyNWAxMy1hXzBhYSMwbDUwMmQ0bGlhLS1kMS9zcw%3D%3D&expire=1791225823&l=202610040243145B0A841C99A4906E44F0&ply_type=2&policy=2&signature=39b2a08ce2e8e8c8f6e02241abf4c0cb&tk=tt_chain_token&btag=e000b8000",
"images": [],
"width": 720,
"height": 1280,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 1300000,
"likes": 88500,
"comments": 488,
"shares": 9522,
"saves": 25507
},
"author": {
"id": "6791281861886411781",
"secUid": "MS4wLjABAAAAHfVF89ptX6xdtcLF4l9VhI3YZIIhB2keB320Npkqk7frF1xGmd6RPdbEL6XbYJbj",
"username": "dylannobert",
"nickname": "dylannobert",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/6a66ce4bb11bdba399b53d866a1919ca~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=7242f179&x-expires=1791223200&x-signature=vKgirkn91fZheYcfeXbEFAgUDp4%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"verified": false
},
"music": {
"id": "7668359328973343502",
"title": "original sound",
"author": "dylannobert",
"original": true,
"duration": 28,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/6a66ce4bb11bdba399b53d866a1919ca~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=7242f179&x-expires=1791223200&x-signature=vKgirkn91fZheYcfeXbEFAgUDp4%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-v-2370c799-sg/o8QAtUWoeCvAvAT5prQEGLIHheGkC1ARBeElGk/?a=1988&bti=ODszNWYuMDE6&&bt=125&ft=GNDpcInz7ThrC--GXq8Zmo&mime_type=audio_mpeg&rc=ajNlOnQ5cmZxPDMzZzU8NEBpajNlOnQ5cmZxPDMzZzU8NEBkX2c1MmRrbGlhLS1kMS9zYSNkX2c1MmRrbGlhLS1kMS9zcw%3D%3D&expire=1791056623&l=202610040243145B0A841C99A4906E44F0&ply_type=3&policy=3&signature=780d5749a1d41df01cb327a9998f8be5&tk=7691519091580208146&btag=e00078000"
},
"hashtags": [
"cookout",
"honeybbq",
"chickentenders",
"friedchicken",
"easyrecipe"
],
"mentions": []
},
{
"id": "7514470880634916142",
"url": "https://www.tiktok.com/@cookingismydestiny/photo/7514470880634916142",
"description": "#honeyhotchicken #chickensliders #chickenrecipes #fyp #foodie #foodtiktok #foodtok #cookwithme #foodinspo #dinnerinspo #cookingismydestiny #homecooking #homecookedmeal ",
"createTime": "2025-06-10T23:45:06Z",
"type": "photo",
"duration": 0,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/74763d36cdb64f03a4217e076d36e51d~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=%2Bup0bp%2B14VyEZnVS66XnS7suM2w%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"dynamicCover": null,
"playUrl": null,
"images": [
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/74763d36cdb64f03a4217e076d36e51d~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=%2Bup0bp%2B14VyEZnVS66XnS7suM2w%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/e9df3b0c01984e63b3e7de357f93c5da~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=6aQXxszsjdFPgK9Mh%2F5rRqbmlNk%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/1eec8bc7a5a94c2689fcac96eb504e92~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=BdSsHeyVelQQSeORNe2IrtjC2lU%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/18350f11823042f0a8f2f3f926e9edee~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=zOtro3Gd6%2FJfYVKJUrH7I1HxB1Y%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/1bb1a814c6a240ae877ce25ddf66de6e~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=hQTwLHIAJxvVquLmaZH5AZQfxiU%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/1bdce6cbfbe04a1e878cf26fd28da98b~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=SDJjvjslusMvnT4FvWbnKelZ2O4%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/568c0c3a3eab417593291b1b2b13f120~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=C2qLrm%2FTEPBup6jk8kDwXpkquCg%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/a21c8caf41b642eb8492af18957c763c~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=AWxYnT%2FWJGNOL5TQtDhdWG4X1Ps%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/18091d795e0240258dfc0a37871c2a78~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=WbAXzxB6G3R6b8FwDCnuICQoT78%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/f18511d373ec4564a4be7b16e4dd207d~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=NUAVe4cOiEDBtIo5u08ombvagWo%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1",
"https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/2691b2d322f74970a1385a2a5447e966~tplv-photomode-image.jpeg?dr=14555&x-expires=1791223200&x-signature=n4Ja5aAM4kANSHrJrQGSxLr51X8%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=9b759fb9&idc=my&ftpl=1"
],
"width": 0,
"height": 0,
"isAd": false,
"locationCreated": null,
"stats": {
"plays": 34800000,
"likes": 3300000,
"comments": 7876,
"shares": 485400,
"saves": 1461101
},
"author": {
"id": "6784245358488749062",
"secUid": "MS4wLjABAAAAA910DpIeCoCaq11ALuT1QQ6AhUgpiLPLEY_ro9Y3ZbJEZlWxIq2zs0Nt5_4RpUK3",
"username": "cookingismydestiny",
"nickname": "Destiny",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/dac4da8a04fe4c05d6a37439c4629c9d~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=18bc9db0&x-expires=1791223200&x-signature=k1qcbjxBFT62uYPOw5Nekjtud2s%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"verified": false
},
"music": {
"id": "7497003824017181483",
"title": "Sktchance Oh Ya",
"author": "maxthagod",
"original": true,
"duration": 53,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/6bf7ea9e94ec4dce265d3db140e9dfcc~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=691988ab&x-expires=1791223200&x-signature=f7UPe2X9%2B8yv9JPTiceVABYCd6w%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/maliva/tos-maliva-v-27dcd7c799-us/ogEJkhEKiA6gAWDwBgfQFfCSAVENVADQDrCotU/?a=1988&bti=ODszNWYuMDE6&&bt=125&ft=GNDpcInz7ThrC--GXq8Zmo&mime_type=audio_mpeg&rc=M2dtcms5cm5lMzMzZzU8NEBpM2dtcms5cm5lMzMzZzU8NEA1LTFjMmQ0XjJhLS1kMS9zYSM1LTFjMmQ0XjJhLS1kMS9zcw%3D%3D&expire=1791056648&l=202610040243145B0A841C99A4906E44F0&ply_type=3&policy=3&signature=d37c2ca47f59cadf9943c3ad0eb3f8b9&tk=7691519091580208146&btag=e00048000"
},
"hashtags": [
"honeyhotchicken",
"chickensliders",
"chickenrecipes",
"fyp",
"foodie",
"foodtiktok",
"foodtok",
"cookwithme",
"foodinspo",
"dinnerinspo",
"cookingismydestiny",
"homecooking",
"homecookedmeal"
],
"mentions": []
}
],
"users": [
{
"id": "7408352582236750881",
"secUid": "MS4wLjABAAAAATF5f30dKGlZobfyrE3IUDOlV19LBDAJvbXSTKMJ2fnkiRAeK4U-PIm5zCXM2Shn",
"username": "cookingtales11",
"nickname": "CookingTales11 🇬🇧",
"url": "https://www.tiktok.com/@cookingtales11",
"bio": "💌 [email protected]\nsubscribe👇my YouTube",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-useast2a-avt-0068-euttp/d58fb8b9353d0af98b47c359489637b8~tplv-tiktokx-cropcenter:100:100.webp?dr=14579&refresh_token=01c86090&x-expires=1791136800&x-signature=kjY%2FkoVztetpPuShsEnlm0OyLYA%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=c1333099&idc=my",
"verified": false,
"stats": {
"followers": 952300,
"likes": 15409064
}
},
{
"id": "7314005602345976878",
"secUid": "MS4wLjABAAAALRq_uZOAFFR97GUKqblGOVOyA5tQYEl-kcBod9K3VBkjjwcmN03J-UUXJSu-9_yK",
"username": "cooking.993",
"nickname": "Cooking",
"url": "https://www.tiktok.com/@cooking.993",
"bio": "👨🍳 Easy & Delicious Recipes 🍽️\n✨ New Cooking Videos Every Day\n❤️ Follow for Your Daily Food Fix!",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c5e73969d0eadbd82ff9bfaf88f388ab~tplv-tiktokx-cropcenter:100:100.webp?dr=14579&refresh_token=45941b91&x-expires=1791136800&x-signature=qnQtqkyZPU78hxgI1x12xR45U0I%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=c1333099&idc=my",
"verified": false,
"stats": {
"followers": 216300,
"likes": 1415406
}
},
{
"id": "7376835394467939361",
"secUid": "MS4wLjABAAAAfgvQd2RHNiDeWmUF3X8JgFlmGLx3SpSrPwLY4nZDyr7JsJBbGtvF3aTSZgB1ecpr",
"username": "recipes.uk",
"nickname": "Cooking Recipes",
"url": "https://www.tiktok.com/@recipes.uk",
"bio": "🍓Satisfy your every craving🍓\n🤝 Email: [email protected]",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/f87ea67977e084d55df640e0670e3294~tplv-tiktokx-cropcenter:100:100.webp?dr=14579&refresh_token=f636c3ee&x-expires=1791136800&x-signature=wBO%2FLpY%2F6XI7ziM3MmMfRHEDUqo%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=c1333099&idc=my",
"verified": false,
"stats": {
"followers": 285800,
"likes": 1539980
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/tiktok/search/users
requires authentication
Accounts matching a keyword, 10 per page: cursor, hasMore, searchId, and users (same fields as in
/search/top). For the next page pass cursor and searchId.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/tiktok/search/users'
params = {
'q': 'cooking',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/tiktok/search/users';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'q' => 'cooking',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/tiktok/search/users"
);
const params = {
"q": "cooking",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/tiktok/search/users?q=cooking" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"q": "cooking",
"cursor": "0"
},
"body": {
"cursor": "10",
"hasMore": true,
"searchId": "202610040243394728B17EB1080D5A52AB",
"users": [
{
"id": "7076078221934445574",
"secUid": "MS4wLjABAAAAqNoQ25ErU0rDw4EqRYMUa5oio0wXHxQU6kF8NkqLdbf8GS0kDjafpLHZbju2LU2N",
"username": "avozmechef",
"nickname": "Alfredo Vozmediano Romero",
"url": "https://www.tiktok.com/@avozmechef",
"bio": "No hago solo recetas, te enseño a cocinar.\n👇Aprende más con mi curso online👇",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/010ab7c27a8d80b4011d632ee87c6c98~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=14579&idc=my&ps=13740610&refresh_token=85081a11&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1791136800&x-signature=NkgP49EtJZjGjPeuGHPzGTA5fjo%3D",
"verified": false,
"stats": {
"followers": 1200000,
"likes": 23317964
}
},
{
"id": "7356231369553789998",
"secUid": "MS4wLjABAAAAJrGuCveGySozz3XFrDsxkcwqFFvID4sipmiRwPvWSR51VXAIwFvSnzH6Nt6ZsRS1",
"username": "cookrate55",
"nickname": "Cooking",
"url": "https://www.tiktok.com/@cookrate55",
"bio": "Готовим в кайф😎🍴☕",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/45836749ace4ef53dea33d825f732a1e~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=14579&idc=my&ps=13740610&refresh_token=c99f0123&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1791136800&x-signature=a8Z4ZwivhoOQV8fPIVBBdHMruTs%3D",
"verified": false,
"stats": {
"followers": 370100,
"likes": 4296115
}
},
{
"id": "6659823863894097926",
"secUid": "MS4wLjABAAAAV3LQaho65FCLE4ftB8FlQuHw2BiZa7C7xT3epOA5er0i1mVJK9Z4cGTwqIPll5Y2",
"username": "chefrush",
"nickname": "ChefRush",
"url": "https://www.tiktok.com/@chefrush",
"bio": "White House Chef, Military Vet, [email protected]",
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7319218351765454890~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=14579&idc=my&ps=13740610&refresh_token=fdcf71b1&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1791136800&x-signature=Z6Y1nLzz%2FPEbgGt5zED%2Bax3IWS4%3D",
"verified": true,
"stats": {
"followers": 3100000,
"likes": 24242997
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.