SocialToAIStart freeConsole
POST/v1/search"platform": "tiktok"

TikTok Search API

Find videos by keyword.

The TikTok Search API searches TikTok videos by keyword: text, author, likes, comment count, views and publish time, in the same response format as every other SocialToAI call. One call costs 2 credits ($0.004 to $0.0067 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.

100 credits on sign-up, no card needed
2 creditsper call
Up to 30 per pageone page per call
2026-10-17last tested
1.0 KBsample response, 1 item

Last updated:

Request and response

curl https://api.socialtoai.com/v1/search \  -H "Authorization: Bearer $SOCIALTOAI_KEY" \  -H "Content-Type: application/json" \  -d '{    "platform": "tiktok",    "query": "space station"  }'
import osimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/search",    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},    json={        "platform": "tiktok",        "query": "space station",    },)print(response.json())
# Connected over MCP? Ask in plain words.Search TikTok for videos about "space station".# Your AI calls the search tool with:{  "platform": "tiktok",  "query": "space station"}
Change the requestThe code above follows.
value
sort
published_within
Sign in to run2 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK1.0 KB2 credits
{  "platform": "tiktok",  "status": "ok",  "items": [    {      "platform": "tiktok",      "id": "…",      "ref": "…",      "approx": [],      "type": "content",      "url": "https://example.com/…",      "format": "video",      "title": null,      "text": "…",      "published_at": "2026-10-11T23:17:34.000Z",      "author": {        "id": "…",        "username": "…",        "name": "…",        "verified": null,        "followers": 92601      },      "metrics": {        "likes": 353,        "comments": 11,        "shares": 19,        "collects": 40,        "views": 7561,        "reposts": null      },      "images": null,      "hashtags": ["…", "…"],      "is_pinned": null    }  ],  "unavailable": ["title", "author.verified", "metrics.reposts", "images", "is_pinned"],  "page": {    "has_more": true,    "cursor": "cur_…",    "cursor_expires_at": "2026-10-12T19:47:24.000Z"  },  "cost_credits": 2}
@…·92,601 followers·
likes 353comments 11shares 19collects 40views 7,561

Names and text were removed from the sample; the numbers are as recorded.

Sample data1 of the 30 items recorded

6 parameters.
2 required.

Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.

NameTypeRequiredDefaultDescription
platformstringRequired—Always "tiktok" on this page.
querystringRequired—Search terms
sortstringOptional"relevance"By relevance, by likes, or newest first
"relevance""popular""latest"
published_withinstringOptional—Only videos posted within this period
"day""week""month""half_year"
typestringOptional—"user": accounts instead of posts (2 credits).
"user"
cursorstringOptional—Pass page.cursor from the last response to get the next page.

The fields of each item.
What TikTok cannot give is marked.

FieldTypeMeaning
items[].urlstringA link that opens the item.
items[].formatstringvideo, image, text or article.
items[].titlestringalways nullThe title.
items[].textstringThe body text or caption.
items[].published_atstringWhen it was published, ISO 8601 in UTC.
items[].author.idstringThe author's account ID.
items[].author.usernamestringThe author's handle.
items[].author.namestringThe author's display name.
items[].author.verifiedbooleanalways nullWhether the author is verified.
items[].author.followersintegerThe author's follower count.
items[].metrics.likesintegerLikes.
items[].metrics.commentsintegerComments.
items[].metrics.sharesintegerShares.
items[].metrics.collectsintegerSaves.
items[].metrics.viewsintegerViews or plays.
items[].metrics.repostsintegeralways nullReposts.
items[].imagesstring[]always nullImage addresses.
items[].hashtagsstring[]Hashtags, without the #.
items[].is_pinnedbooleanalways nullWhether the author pinned it.
nullFields TikTok cannot give

Read null as “TikTok did not give this”, not as zero. These are always null on this call:

  • titleThe title.
  • author.verifiedWhether the author is verified.
  • metrics.repostsReposts.
  • imagesImage addresses.
  • is_pinnedWhether the author pinned it.
Other values of this call

Send the parameter and the call returns something else:

type=useraccounts instead of posts2 credits

Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format

What to expect.

One call returns a page of up to 30 items. When page.has_more is true, send page.cursor back as cursor for the next page; each page costs 2 credits and a cursor works for 30 minutes.
A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 2 credits.

1 call per second per key, 5 after a purchase; going over is not charged. Rate limits

A failed call costs 0 credits and is never retried on its own. Error codes

Once connected over MCP, these questions use it.

  1. Search TikTok for videos about "space station".
    search {"platform":"tiktok","query":"space station"}
    2 credits
  2. Search TikTok for videos about "space station": accounts instead of posts.
    search {"platform":"tiktok","query":"nike","type":"user"}
    2 credits

These ready-made tools call it when they run.

The same call on other platforms.

All platforms and prices
Change one word in the request: platform. The response keeps the same shape.

Questions.
Short answers.

Everything on TikTok
Do I need a TikTok account or TikTok's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on TikTok; you never sign in to TikTok or apply for anything there.
Can I get accounts instead of posts?
Yes: send type=user in the request. That call costs 2 credits.

Your AI is one URL away
from all of social media.

100 credits on sign-up, no card needed