String docs
Site integrations

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
ActionDescriptionListed price
user-searchSearch 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
profileRead 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
postsRead 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
videoRead 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
commentsRead 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
hashtagRead 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

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-search

Input

Unknown fields are rejected.

FieldTypeDescription
keywordstringRequired. The search term, such as nasa, or a TikTok user-search URL. At least 1 character.
pagesintegerThe 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:

FieldTypeDescription
uidstring—
secUidstring—
uniqueIdstringThe handle.
nicknamestring—
signaturestring | nullThe bio text.
verifiedbooleanTikTok's own verification for the account class the record names.
followerCountinteger | null—
likesCountinteger | nullThe account's total likes, as the record words them.
avatarUrlstring | null—
enterprisestring | nullThe 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/profile

Input

Unknown fields are rejected.

FieldTypeDescription
profilestringRequired. 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:

FieldTypeDescription
handlestring—
secUidstring—
uidstring—
nicknamestring—
signaturestring | nullThe bio text.
verifiedboolean—
followerCountinteger | null—
likesCountinteger | null—
videoCountinteger | null—
avatarUrlstring | 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/posts

Input

Unknown fields are rejected.

FieldTypeDescription
profilestringRequired. The profile: its handle, such as nasa, its TikTok URL, or its secUid. At least 1 character.
pagesintegerThe 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:

FieldTypeDescription
idstring—
createTimestring | nullRFC 3339, UTC.
descstring | null—
playCountinteger | null—
diggCountinteger | null—
commentCountinteger | null—
shareCountinteger | null—
collectCountinteger | null—
durationinteger | null—
coverUrlstring | null—
musicIdstring | null—
musicTitlestring | null—
musicAuthorstring | null—
hashtagsstring[] | nullMay be absent.
isPinnedbooleanPinned posts ride the feed's top and can be older than the rest.
authorHandlestring—
authorSecUidstring—

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/video

Input

Unknown fields are rejected.

FieldTypeDescription
videostringRequired. 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:

FieldTypeDescription
idstring—
createTimestring | nullRFC 3339, UTC.
descstring | null—
playCountinteger | null—
diggCountinteger | null—
commentCountinteger | null—
shareCountinteger | null—
collectCountinteger | null—
durationinteger | null—
coverUrlstring | null—
musicIdstring | null—
musicTitlestring | null—
musicAuthorstring | null—
hashtagsstring[] | nullMay be absent.
isPinnedbooleanPinned posts ride the feed's top and can be older than the rest.
authorHandlestring—
authorSecUidstring—

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/comments

Input

Unknown fields are rejected.

FieldTypeDescription
videostringRequired. The video: its numeric id, or its TikTok /@handle/video/ URL. At least 1 character.
pagesintegerThe 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:

FieldTypeDescription
cidstring—
videoIdstring—
createTimestring | nullRFC 3339, UTC.
textstring | null—
likeCountinteger | null—
replyCountinteger | null—
userHandlestring | null—
userSecUidstring—
hashtagsstring[] | nullMay 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/hashtag

Input

Unknown fields are rejected.

FieldTypeDescription
hashtagstringRequired. The hashtag: its name without the #, such as streaming, or its TikTok /tag/ URL. At least 1 character.
pagesintegerThe 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:

FieldTypeDescription
idstring—
createTimestring | nullRFC 3339, UTC.
descstring | null—
playCountinteger | null—
diggCountinteger | null—
commentCountinteger | null—
shareCountinteger | null—
collectCountinteger | null—
durationinteger | null—
coverUrlstring | null—
musicIdstring | null—
musicTitlestring | null—
musicAuthorstring | null—
hashtagsstring[] | nullMay be absent.
isPinnedbooleanPinned posts ride the feed's top and can be older than the rest.
authorHandlestring—
authorSecUidstring—

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.