InsightSocial API
How-to

Search Douyin videos by keyword

Find Douyin videos by keyword, with caption, creator, likes, comments, shares, saves, music and duration. 50 credits per video returned.

To search Douyin videos by keyword, call GET /v1/douyin/search with a query in Chinese or English. One call returns up to 25 videos, 10 by default, each with its caption and hashtags, creator, like, comment, share and save counts, music ID, cover image, video URL and duration. It is metered at 50 to 1,250 credits per call: the range scales with limit, which works out to 50 credits per video, so the default 10 videos cost 500.

Cost

50 to 1,250 credits per call: 50 at limit=1, 1,250 at limit=25. The sample below used the default limit of 10 and was charged 500. When the call starts, the most it can cost with your limit is held; you are charged what it used and the rest is released. Add dry_run=1 to get a free quote first. Asking the same search again within 1 hour is answered from the shared cache for 2 credits. Failed calls and empty results are free.

Which parameters can I set?

ParameterValues
queryRequired. The search keywords, for example 美食 (food) or coffee.
limitVideos to return, 1 to 25. Default 10.
sortrelevance (default), most_liked or latest.
publishedRecency window: all (default), day, week or half_year.
durationVideo length: all (default), under_1m, one_to_five_m or over_5m.

Make the request

cURL
curl -G "https://api.insightsocial.app/v1/douyin/search" \
  --data-urlencode "query=美食" \
  -H "x-api-key: $INSIGHTSOCIAL_API_KEY"

What comes back

A real response from 2026-10-14, shortened: one video instead of 10, the caption and long URLs cut, and the creator replaced with a placeholder.

Response (shortened)
{
  "success": true,
  "endpoint": "/v1/douyin/search",
  "schema_version": "2",
  "data": {
    "items": [
      {
        "post": {
          "id": "7644834211292280293",
          "url": "https://www.douyin.com/video/7644834211292280293",
          "kind": "video",
          "content": {
            "text": "简单几步教你做出五⭐️级酒店的酸辣柠檬虾 #酸辣柠檬虾 #柠檬虾做法 …",
            "media_urls": ["https://api-play.amemv.com/aweme/v1/play/?video_id=…"],
            "thumbnail_url": "https://p3-sign.douyinpic.com/tos-cn-p-0015c000-ce/…",
            "duration_seconds": 17.3
          },
          "author": { "id": "example_user_id", "username": "example_user", "display_name": "Example User", "verified": false },
          "engagement": { "views": null, "likes": 3111106, "comments": 43865, "shares": 1765351, "saves": 2519903 },
          "published_at": "2026-05-28T07:01:10.000Z",
          "ext": { "music_id": "7587240130655537202", "author_followers": 711275, "download_count": 34926 }
        }
      }
    ],
    "total": null
  },
  "pagination": { "next_cursor": null, "has_more": false, "page_size": 10 },
  "unavailable": [],
  "credits_used": 500
}
FieldWhat it holds
data.items[].postOne video in the shared post shape.
post.content.textThe caption, hashtags included.
post.content.media_urlsA playback URL for the video file.
post.engagementLikes, comments, shares and saves.
post.authorThe creator: numeric ID, Douyin ID, nickname, avatar, verified flag.
post.ext.author_followersThe creator's follower count.
post.ext.music_idThe sound the video uses.
post.ext.download_countHow many times the video was downloaded.

What are the limits?

  • 25 videos per search. The endpoint does not paginate: has_more was false in the sample. Use different keywords, sort orders or published windows to reach more videos.
  • No view counts. engagement.views is null on every video in the sample, which means unknown, not zero.
  • No total. data.total is null: the search does not say how many videos match.
  • Douyin ID can be missing. author.username was null for 4 of the 10 creators in the sample. author.id, the numeric user ID, was always set.
  • Short-lived media links. The cover image URLs carry an expiry time, about two weeks after the call in the sample. Download what you need instead of storing the links.
  • Price per video. The cost grows with limit, so ask for the number of videos you need, not the maximum.

What can I build with it?

  • Market research in China. Search a product or category with sort=most_liked to see which videos and hashtags lead it.
  • Creator discovery. Rank the authors in your results by ext.author_followers, then pass author.id as id to GET /v1/douyin/profile (60 credits) for the full profile.
  • Trend checks. Run the same keyword with published=week and sort=latest each week to see what is new.

The other Douyin endpoints pick up where search stops: search/users (50 to 1,250 credits) finds creators instead of videos, post (100) reads one video, post/comments (20 to 1,000) and comment/replies (50 to 2,500) read its comments, profile (60) and profile/posts (50 to 1,250) cover a creator, and trending (250) returns the live hot-search board.

On this page