TikTok
TikTok user search, a profile's overview and video feed, one video's detail, a video's comments, and a hashtag's feed, as its logged-out web answers.
Call these actions with your String API key; see Authentication. Every call answers with the envelope described in Responses & errors, whose data holds the rows below.
- Site:
tiktok - Version:
1.0.0 - Reads from:
tiktok.com
| Action | Description | Listed price |
|---|---|---|
user-search | Search TikTok accounts by keyword, best match first, each with its handle, nickname, bio, verification, follower and like counts, and avatar. | Billed per request at your plan's rates |
profile | Read a TikTok profile: its handle, nickname, bio, verification, follower and like counts, video count and avatar. The counts are the ones the account's own records publish beside its posts. | Billed per request at your plan's rates |
posts | Read a TikTok profile's video feed, newest first: each video's id, publish time, caption, play, like, comment, share and collect counts, duration, cover, music, hashtags and pinned flag. | Billed per request at your plan's rates |
video | Read one TikTok video: its id, publish time, caption, play, like, comment, share and collect counts, duration, cover, music, hashtags and author. | Billed per request at your plan's rates |
comments | Read a TikTok video's comments, best first: each comment's id, time, text, like and reply counts, author and hashtags. | Billed per request at your plan's rates |
hashtag | Read a TikTok hashtag's feed, popularity first, each video with its id, publish time, caption, play, like, comment, share and collect counts, duration, cover, music, hashtags, author and pinned flag. | Billed per request at your plan's rates |
user-search
Search TikTok accounts by keyword, best match first, each with its handle, nickname, bio, verification, follower and like counts, and avatar.
POST https://request.usestring.ai/v1/integrations/tiktok/user-searchInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
keyword | string | Required. The search term, such as nasa, or a TikTok user-search URL. At least 1 character. |
pages | integer | The most pages of users to read, 1 to 5, 10 a page. Defaults to 1. From 1 to 5. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
uid | string | — |
secUid | string | — |
uniqueId | string | The handle. |
nickname | string | — |
signature | string | null | The bio text. |
verified | boolean | TikTok's own verification for the account class the record names. |
followerCount | integer | null | — |
likesCount | integer | null | The account's total likes, as the record words them. |
avatarUrl | string | null | — |
enterprise | string | null | The business account's reason, when the record names one. May be absent. |
Example
curl https://request.usestring.ai/v1/integrations/tiktok/user-search \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "nasa"
}'data starts with these rows:
[
{
"uid": "7664638705177150477",
"secUid": "MS4wLjABAAAAU9BRVzC8oCaegVnia8IbqWhPb_-dbU7s00Y3wS1_Nx8g5RUaYvyXrpejgjdxTwd6",
"uniqueId": "nasa",
"nickname": "NASA",
"signature": "Making the seemingly impossible, possible.✨",
"verified": false,
"followerCount": 2100000,
"likesCount": 11406096,
"avatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/e5143212a59c09a008bf50f487d54d1f~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=10399&idc=no1a&ps=13740610&refresh_token=344d564e&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1793271600&x-signature=cp6JsfyVBrsDF3oQdGW7Ij33vF4%3D",
"enterprise": "institution account"
},
{
"uid": "7633597352935457814",
"secUid": "MS4wLjABAAAAbqHW5vAkmEAT2Ns2LkxPK-8rmbH-I0AWusGUrTEiDkar76cZwXk1DaJX4dvcl9Bl",
"uniqueId": "notnasa.974",
"nickname": "NASA 🪐",
"signature": "",
"verified": false,
"followerCount": 708,
"likesCount": 399,
"avatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/ccfa260c9a2f110ea7032e996898718e~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=10399&idc=no1a&ps=13740610&refresh_token=0d32a386&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1793271600&x-signature=gyKoit7uklx6c0NwHEHuTPmHOvU%3D"
},
{
"uid": "7530295483710374945",
"secUid": "MS4wLjABAAAAty6_8Ijw-4oVt0uwB33TrqXLrTUElGJGupvRqdw6D6iPYqmfPhBZKFoL6ZWRfP10",
"uniqueId": "sbomberbomp1",
"nickname": "NASA🌎🚀",
"signature": "🥇53x 🥈48x 🥉46x \n\nSNAP: OPSTIJGEN035",
"verified": false,
"followerCount": 45300,
"likesCount": 2010,
"avatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-avt-0068-euttp/8c39aeb15fb1bbc104448d48b0f895b8~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=10399&idc=no1a&ps=13740610&refresh_token=4c2a146a&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1793271600&x-signature=W0ibyu09cCTnnMf54jExstcH75I%3D"
}
]Requests and billing
- Requests: 1 Web Access request per result page.
- Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
profile
Read a TikTok profile: its handle, nickname, bio, verification, follower and like counts, video count and avatar. The counts are the ones the account's own records publish beside its posts.
POST https://request.usestring.ai/v1/integrations/tiktok/profileInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
profile | string | Required. The profile: its handle, such as nasa, or its TikTok URL. At least 1 character. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
handle | string | — |
secUid | string | — |
uid | string | — |
nickname | string | — |
signature | string | null | The bio text. |
verified | boolean | — |
followerCount | integer | null | — |
likesCount | integer | null | — |
videoCount | integer | null | — |
avatarUrl | string | null | — |
Example
curl https://request.usestring.ai/v1/integrations/tiktok/profile \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile": "nasa"
}'data starts with these rows:
[
{
"handle": "nasa",
"secUid": "MS4wLjABAAAAU9BRVzC8oCaegVnia8IbqWhPb_-dbU7s00Y3wS1_Nx8g5RUaYvyXrpejgjdxTwd6",
"uid": "7664638705177150477",
"nickname": "NASA",
"signature": "Making the seemingly impossible, possible.✨",
"verified": false,
"followerCount": 2100000,
"likesCount": 11400000,
"videoCount": 60,
"avatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/e5143212a59c09a008bf50f487d54d1f~tplv-tiktokx-cropcenter:100:100.webp?biz_tag=tiktok_user.user_cover&dr=10399&idc=no1a&ps=13740610&refresh_token=344d564e&shcp=c1333099&shp=30310797&t=4d5b0474&x-expires=1793271600&x-signature=cp6JsfyVBrsDF3oQdGW7Ij33vF4%3D"
}
]Requests and billing
- Requests: 1 Web Access request per entry in
items, plus up to 1 setup request per call. - Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
posts
Read a TikTok profile's video feed, newest first: each video's id, publish time, caption, play, like, comment, share and collect counts, duration, cover, music, hashtags and pinned flag.
POST https://request.usestring.ai/v1/integrations/tiktok/postsInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
profile | string | Required. The profile: its handle, such as nasa, its TikTok URL, or its secUid. At least 1 character. |
pages | integer | The most pages to read, 1 to 5, up to 35 videos a page, newest first. Defaults to 1. From 1 to 5. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
id | string | — |
createTime | string | null | RFC 3339, UTC. |
desc | string | null | — |
playCount | integer | null | — |
diggCount | integer | null | — |
commentCount | integer | null | — |
shareCount | integer | null | — |
collectCount | integer | null | — |
duration | integer | null | — |
coverUrl | string | null | — |
musicId | string | null | — |
musicTitle | string | null | — |
musicAuthor | string | null | — |
hashtags | string[] | null | May be absent. |
isPinned | boolean | Pinned posts ride the feed's top and can be older than the rest. |
authorHandle | string | — |
authorSecUid | string | — |
Example
curl https://request.usestring.ai/v1/integrations/tiktok/posts \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile": "nasa",
"pages": 1
}'data starts with these rows:
[
{
"id": "7665075736742530317",
"createTime": "2026-07-21T20:09:02Z",
"desc": "Something big just landed on TikTok.",
"playCount": 1700000,
"diggCount": 108400,
"commentCount": 3203,
"shareCount": 3313,
"collectCount": 7843,
"duration": 25,
"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oAUhkWfCZC7g6ALj2HZgOeELFvIrALeFYOoGI4~tplv-tiktokx-origin.image?dr=9636&x-expires=1793358000&x-signature=xoKEMpmKRc2gT26PMLygKFpckws%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
"musicId": "7665075815390645006",
"musicTitle": "original sound",
"musicAuthor": "NASA",
"isPinned": true,
"authorHandle": "nasa",
"authorSecUid": "MS4wLjABAAAAU9BRVzC8oCaegVnia8IbqWhPb_-dbU7s00Y3wS1_Nx8g5RUaYvyXrpejgjdxTwd6"
},
{
"id": "7700397098994273549",
"createTime": "2026-10-25T00:33:47Z",
"desc": "NASA 🤝 college football. We heard y’all like a good air show. Roll Tide!",
"playCount": 90100,
"diggCount": 6450,
"commentCount": 202,
"shareCount": 205,
"collectCount": 423,
"duration": 16,
"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/ocaE0AdEmkIUAaBg8jiTDyiOA1AAdrBC4vrBt~tplv-tiktokx-origin.image?dr=9636&x-expires=1793358000&x-signature=FcWmntKESnkd64P%2Fb5%2FPmGx4OMY%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
"musicId": "7700397137514793741",
"musicTitle": "original sound - NASA",
"musicAuthor": "NASA",
"isPinned": false,
"authorHandle": "nasa",
"authorSecUid": "MS4wLjABAAAAU9BRVzC8oCaegVnia8IbqWhPb_-dbU7s00Y3wS1_Nx8g5RUaYvyXrpejgjdxTwd6"
},
{
"id": "7699974130153590029",
"createTime": "2026-10-23T21:12:34Z",
"desc": "NASA shared a major update today on the road ahead for Artemis 🚀 2027: Artemis III tests Orion and two lunar landers i…",
"playCount": 197400,
"diggCount": 19200,
"commentCount": 528,
"shareCount": 1096,
"collectCount": 1603,
"duration": 170,
"coverUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/ocI5v4ciP3NDrbgD0kAEEsBXBzAg4AswwAita~tplv-tiktokx-origin.image?dr=9636&x-expires=1793358000&x-signature=ZZXReEypxSdpbiEhpOnilkxSYX4%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
"musicId": "7699974176765512461",
"musicTitle": "original sound - NASA",
"musicAuthor": "NASA",
"isPinned": false,
"authorHandle": "nasa",
"authorSecUid": "MS4wLjABAAAAU9BRVzC8oCaegVnia8IbqWhPb_-dbU7s00Y3wS1_Nx8g5RUaYvyXrpejgjdxTwd6"
}
]Requests and billing
- Requests: 1 Web Access request per result page, plus up to 1 setup request per call.
- Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
video
Read one TikTok video: its id, publish time, caption, play, like, comment, share and collect counts, duration, cover, music, hashtags and author.
POST https://request.usestring.ai/v1/integrations/tiktok/videoInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
video | string | Required. The video: its numeric id, or its TikTok /@handle/video/ URL. At least 1 character. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
id | string | — |
createTime | string | null | RFC 3339, UTC. |
desc | string | null | — |
playCount | integer | null | — |
diggCount | integer | null | — |
commentCount | integer | null | — |
shareCount | integer | null | — |
collectCount | integer | null | — |
duration | integer | null | — |
coverUrl | string | null | — |
musicId | string | null | — |
musicTitle | string | null | — |
musicAuthor | string | null | — |
hashtags | string[] | null | May be absent. |
isPinned | boolean | Pinned posts ride the feed's top and can be older than the rest. |
authorHandle | string | — |
authorSecUid | string | — |
Example
curl https://request.usestring.ai/v1/integrations/tiktok/video \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "7700397098994273549"
}'data starts with these rows:
[
{
"id": "7700397098994273549",
"createTime": "2026-10-25T00:33:47Z",
"desc": "NASA 🤝 college football. We heard y’all like a good air show. Roll Tide!",
"playCount": 90300,
"diggCount": 6458,
"commentCount": 202,
"shareCount": 205,
"collectCount": 423,
"duration": 16,
"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/ocaE0AdEmkIUAaBg8jiTDyiOA1AAdrBC4vrBt~tplv-tiktokx-origin.image?dr=9636&x-expires=1793358000&x-signature=FcWmntKESnkd64P%2Fb5%2FPmGx4OMY%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"musicId": "7700397137514793741",
"musicTitle": "original sound - NASA",
"musicAuthor": "NASA",
"isPinned": false,
"authorHandle": "nasa",
"authorSecUid": "MS4wLjABAAAAU9BRVzC8oCaegVnia8IbqWhPb_-dbU7s00Y3wS1_Nx8g5RUaYvyXrpejgjdxTwd6"
}
]Requests and billing
- Requests: 1 Web Access request per entry in
items. - Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
comments
Read a TikTok video's comments, best first: each comment's id, time, text, like and reply counts, author and hashtags.
POST https://request.usestring.ai/v1/integrations/tiktok/commentsInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
video | string | Required. The video: its numeric id, or its TikTok /@handle/video/ URL. At least 1 character. |
pages | integer | The most pages to read, 1 to 5, 20 comments a page, best first. Defaults to 1. From 1 to 5. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
cid | string | — |
videoId | string | — |
createTime | string | null | RFC 3339, UTC. |
text | string | null | — |
likeCount | integer | null | — |
replyCount | integer | null | — |
userHandle | string | null | — |
userSecUid | string | — |
hashtags | string[] | null | May be absent. |
Example
curl https://request.usestring.ai/v1/integrations/tiktok/comments \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "7700397098994273549",
"pages": 1
}'data starts with these rows:
[
{
"cid": "7700768750631879437",
"videoId": "7700397098994273549",
"createTime": "2026-10-26T00:36:36Z",
"text": "NASA I was wondering what kind of fuel you use in your rockets and how you light it with out getting close to",
"likeCount": 17,
"replyCount": 4,
"userHandle": "dsatt07",
"userSecUid": "MS4wLjABAAAAXqeVfTf6SHWu28B22lExDqirrVJx9gg0GbJGHytTCYnbJtxKhnrDmU4KUDfukkFJ"
},
{
"cid": "7701589572245996306",
"videoId": "7700397098994273549",
"createTime": "2026-10-28T05:41:08Z",
"text": "can you guys go back exploring the ocean?",
"likeCount": 0,
"replyCount": 0,
"userHandle": "mcdanknielfeudo",
"userSecUid": "MS4wLjABAAAAlrJ_wkfoPuEYB-UxNrwkHDawLIufUDTdBl0EvGFMqhx5eq-DTdeJq9KEQmb6UikY"
},
{
"cid": "7701534060061000462",
"videoId": "7700397098994273549",
"createTime": "2026-10-28T02:05:53Z",
"text": "Roll Tide",
"likeCount": 0,
"replyCount": 0,
"userHandle": "kkpt5",
"userSecUid": "MS4wLjABAAAAF7GaIvUaRbjFnoWc8zY9nbO49tuwbqryej3kDeic7_l1JWWEozYCcA9wDY3XeDfa"
}
]Requests and billing
- Requests: 1 Web Access request per result page.
- Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
hashtag
Read a TikTok hashtag's feed, popularity first, each video with its id, publish time, caption, play, like, comment, share and collect counts, duration, cover, music, hashtags, author and pinned flag.
POST https://request.usestring.ai/v1/integrations/tiktok/hashtagInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
hashtag | string | Required. The hashtag: its name without the #, such as streaming, or its TikTok /tag/ URL. At least 1 character. |
pages | integer | The most pages to read, 1 to 5, 30 videos a page, popularity-ordered. Defaults to 1. From 1 to 5. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
id | string | — |
createTime | string | null | RFC 3339, UTC. |
desc | string | null | — |
playCount | integer | null | — |
diggCount | integer | null | — |
commentCount | integer | null | — |
shareCount | integer | null | — |
collectCount | integer | null | — |
duration | integer | null | — |
coverUrl | string | null | — |
musicId | string | null | — |
musicTitle | string | null | — |
musicAuthor | string | null | — |
hashtags | string[] | null | May be absent. |
isPinned | boolean | Pinned posts ride the feed's top and can be older than the rest. |
authorHandle | string | — |
authorSecUid | string | — |
Example
curl https://request.usestring.ai/v1/integrations/tiktok/hashtag \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hashtag": "streaming",
"pages": 1
}'data starts with these rows:
[
{
"id": "7691007642881363230",
"createTime": "2026-09-29T17:17:52Z",
"desc": "No way Lacy’s doing this👀 #lacy #fyp ",
"playCount": 649200,
"diggCount": 74800,
"commentCount": 429,
"shareCount": 1036,
"collectCount": 3840,
"duration": 28,
"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oMXREee3oA4GGf7QB8xIAXFU5Q7LI9KHq8QfH9~tplv-tiktokx-origin.image?dr=9636&x-expires=1793358000&x-signature=vcAU8T%2BTSnoI9oIjRtQx2mMjqKs%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
"musicId": "7654130528559434513",
"musicTitle": "original sound - qisy ‹𝟹",
"musicAuthor": "qisy",
"hashtags": ["lacy", "fyp"],
"isPinned": false,
"authorHandle": "3kjacobb",
"authorSecUid": "MS4wLjABAAAAhDHts1Q8tekWN8WvqEh5KPupO3bHlUM_IKd3WXnHJKEUwxf1QuPIFRsRk5H1hW1t"
},
{
"id": "7691111470460833056",
"createTime": "2026-09-30T00:00:43Z",
"desc": "Braeden first streamer to stream with max ads #braeden #twitchclips #fyp #viral #trending ",
"playCount": 574200,
"diggCount": 54100,
"commentCount": 94,
"shareCount": 215,
"collectCount": 1386,
"duration": 18,
"coverUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/okSOI0izZUzmc9H8BCBAIhXyIj1oUAOCOiibfv~tplv-tiktokx-origin.image?dr=9636&x-expires=1793358000&x-signature=zizi9GPzr0pMJop7oyKBlIoheTE%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
"musicId": "6817195494956075009",
"musicTitle": "Piano famous song Chopin Deep deep clear beauty",
"musicAuthor": "RYOpianoforte",
"hashtags": ["braeden", "twitchclips", "fyp", "viral", "trending"],
"isPinned": false,
"authorHandle": "kn.himself",
"authorSecUid": "MS4wLjABAAAAylkVltZW4MF71vVHGIZv2DQSBvwOyojazLxz31COrB613pQ0GUCv_NKZR7H3InRM"
}
]Requests and billing
- Requests: 1 Web Access request per result page, plus up to 1 setup request per call.
- Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.