Post search API

15 endpoints on 15 platforms return the same Post object. The posts of a platform that match a keyword. A call costs from $0.0020 to $0.0200, each endpoint at its own price; a failed call is free.

Run it in the PlaygroundSee the callSign in to run it; it runs on your own balance.
Platforms15 platforms
Endpoints15 endpointsone on each platform
PriceFrom $0.0020per call. A failed call is free
ReturnsPost10 to 100 a page, with a cursor for the next

Post search on each platform

One row per endpoint: what it is called, how much comes back in a call, and what a call costs.

PlatformEndpointA pageReturnsPrice
TikTokTikTok video searchGET/v1/tiktok/videos/search30Post list$0.0020
YouTubeYouTube video searchGET/v1/youtube/videos/search100Post list$0.0020
X (Twitter)X post searchGET/v1/x/posts/search20Post list$0.0020
DouyinDouyin video searchGET/v1/douyin/videos/search20Post list$0.0200
Xiaohongshu (RedNote)Xiaohongshu note searchGET/v1/xiaohongshu/notes/search20Post list$0.0200
RedditReddit post searchGET/v1/reddit/posts/search25Post list$0.0020
WeChat ChannelsWeChat Channels video searchGET/v1/wechat_channels/videos/search20Post list$0.0200
BilibiliBilibili video searchGET/v1/bilibili/videos/search20Post list$0.0020
WeiboWeibo realtime searchGET/v1/weibo/posts/search20Post list$0.0020
LinkedInLinkedIn post searchGET/v1/linkedin/posts/search10Post list$0.0020
ThreadsThreads post searchGET/v1/threads/posts/search20Post list$0.0020
KuaishouKuaishou video searchGET/v1/kuaishou/videos/search20Post list$0.0200
ZhihuZhihu content searchGET/v1/zhihu/posts/search20Post list$0.0020
PinterestPinterest pin searchGET/v1/pinterest/pins/search50Post list$0.0020
Prices are the prices in force. A call that fails, or whose result is uncertain, costs nothing.Live status →

The Post object

Every endpoint above returns these fields, with the same names and types.

The object's own page →
idtextID; pass it unchanged to the get endpoint
urllinkLink that opens the post
typetextContent format
titletextTitle
texttextBody text
langtextLanguage of the text
published_attimeWhen it was published
author.idtextAuthor's account ID
author.usernametextAuthor's handle
author.nametextAuthor's display name
author.avatar_urllinkAuthor's avatar
author.verifiedyes/noWhether the author is verified
author.followersintegerAuthor's follower count
metrics.likesintegerLikes
metrics.commentsintegerComments
metrics.sharesintegerShares
metrics.favoritesintegerSaves
metrics.viewsintegerViews
metrics.repostsintegerReposts
imageslist of linkImage addresses
hashtagslist of textHashtags, without the #
mentions[].idtextAccount ID
mentions[].usernametextHandle
mentions[].nametextDisplay name
is_pinnedyes/noWhether the author pinned it
post_idtextID of the thread's root post when this is a reply; otherwise null
parent_idtextID of the item it replies to directly; otherwise null
root_idtextID of the first-level reply its thread hangs under

Which platform fills which field

A field an endpoint cannot give is listed in meta.unavailable on every answer, so a gap is never a surprise.

Platformurltypetitletextlangpublished_atauthor.idauthor.usernameauthor.nameauthor.verifiedauthor.followersmetrics.likesmetrics.commentsmetrics.sharesmetrics.favoritesmetrics.viewsmetrics.repostsimageshashtagsmentions[].idmentions[].usernamementions[].nameis_pinnedpost_idparent_idroot_id
TikTok
YouTube
X (Twitter)
Douyin
Xiaohongshu (RedNote)
Reddit
WeChat Channels
WeChat Search
Bilibili
Weibo
LinkedIn
Threads
Kuaishou
Zhihu
Pinterest

The same call on two platforms

Same parameter names, same paging, same answer. Only the path changes.

# TikTok
curl -G "https://api.dataxapi.com/v1/tiktok/videos/search" \
  --data-urlencode "query=space station" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"

# YouTube: one word changes
curl -G "https://api.dataxapi.com/v1/youtube/videos/search" \
  --data-urlencode "query=meteor shower" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
// TikTok
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.tiktok.videos.search({ query: "space station" });
console.log(result.data.items);

// YouTube: one word changes
const other = await dx.youtube.videos.search({ query: "meteor shower" });
console.log(other.data.items);
# TikTok
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.videos.search(query="space station")
print(result["data"]["items"])

# YouTube: one word changes
other = dx.youtube.videos.search(query="meteor shower")
print(other["data"]["items"])
# TikTok
dataxapi call tiktok.videos.search 'query=space station'

# YouTube: one word changes
dataxapi call youtube.videos.search 'query=meteor shower'
200 · application/json · charged $0.0020
{
  "code": "ok",
  "request_id": "eecdbf3f-64ce-4b11-b396-ee190d7ff728",
  "data": {
    "items": [
      {
        "id": "7566364515678793552",
        "url": "https://www.tiktok.com/@trail_and_lens/video/7566364515678793552",
        "type": "video",
        "text": "My honest take on space station, a month in.",
        "lang": "en",
        "published_at": "2026-10-11T23:17:34.000Z",
        "author": {
          "id": "6279025233109159764",
          "username": "trail_and_lens",
          "name": "Maya Chen",
          "avatar_url": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/fff322a0d982cccf1e82~c5_100x100.jpeg",
          "followers": 92601
        },
        "metrics": {
          "likes": 353,
          "comments": 11,
          "shares": 19,
          "favorites": 40,
          "views": 7561
        },
        "hashtags": [
          "weekendvibes",
          "gearreview",
          // … 2 more
        ],
        "mentions": []
      },
      // … 29 more
    ]
  },
  "page": {
    "next_cursor": "c1.bGY_kn5Dxsgl6MN3VXHyMcLAdlxPxQw-FwjswIlE",
    "cursor_expires_at": "2026-10-12T20:17:24.000Z",
    "has_more": true,
    "returned": 30
  },
  "warnings": [],
  "meta": {
    "capability": "tiktok.videos.search",
    "result_status": "complete",
    "fetched_at": "2026-10-12T19:17:24.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "title": "platform",
      "images": "capability",
      "author.verified": "capability",
      "metrics.reposts": "capability",
      "mentions.username": "capability",
      "mentions.name": "capability",
      "post_id": "platform",
      "parent_id": "platform",
      "root_id": "platform",
      "is_pinned": "capability"
    },
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    }
  }
}

TikTok video search: From a response recorded 2026-10-12 19:17 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

Ready to use

Skills your AI can run on these endpoints, with what one run costs, and the objects every answer comes back as.

All skills →

Questions about the Post search API

Short answers. Each endpoint's page has its own limits and examples.

TikTok video search API →
How much does it cost?

$0.0020 a call on TikTok, YouTube, X (Twitter), Reddit, Bilibili, Weibo, LinkedIn, Threads, Zhihu, Pinterest; $0.0200 a call on Douyin, Xiaohongshu (RedNote), WeChat Channels, WeChat Search, Kuaishou. You are charged when data comes back; a failed call costs nothing. No subscription, no monthly minimum.

How do I get every page?

Pass page.next_cursor back as cursor until page.has_more is false. Each page is one call at the same price.

Does every platform fill every field?

No. 26 of the 28 fields are missing on at least one platform; the table on this page says which. A field an endpoint cannot give is named in meta.unavailable on every answer, never filled with a guess.

Do I need an account on the platform?

No. One DataXAPI key reads all 15 platforms. No platform account and no cookie.

Other data types

The same idea everywhere: one action, every platform that has it.

Start with one key.

207 endpoints on 21 platforms, from $0.0003 a call. Errors and timeouts are not charged.

Start free