Douyin API

Douyin Search videos API

Search public Douyin videos by keyword with sorting, time, duration, and content filters.

$12.00/1k req, pay per request, no subscription.

What the API returnedvideos[0]
{
"id": "7449028193746501234",
"caption": "国产人形机器人最新进展,已经能对话又能干活了 #机器人 #科技前沿",
"createdUtc": 1758211200,
"url": "https://www.douyin.com/video/7449028193746501234",
"image": "https://p3-pc.douyinpic.com/img/tos-cn-i-0813/example_humanoid_cover~tplv-dy-resize-origshort-autoq-75.jpeg",
"authorUserId": "51923847610283746",
"authorNickname": "机器人观察员",
"views": 3820000,
... 12 more fields
}
Uptime
98.06%
30d · 875 calls
Requests
875
30d · weekly, last 12 wks
Response
2.9s
median · 30d

Pricing

Douyin Search videos API pricing

You pay
$120.00
$12.00/1k req, only for what you use. No monthly plan.
Your first 8 requests are free with the $0.10 starting balance.

Try it

Get Douyin search videos in one request

Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.

This sample shows 27 of 28 fields. See every field

{
  "found": true,
  "data": {
    "nextCursor": "20",
    "searchId": "6890123457812345678",
    "backtrace": "eyJyZXFJZCI6ImV4YW1wbGUtc2VhcmNoLXRyYWNlLTEyMyJ9",
    "hasMore": true,
    "videos": [
      {
        "id": "7449028193746501234",
        "caption": "国产人形机器人最新进展,已经能对话又能干活了 #机器人 #科技前沿",
        "createdUtc": 1758211200,
        "url": "https://www.douyin.com/video/7449028193746501234",
        "image": "https://p3-pc.douyinpic.com/img/tos-cn-i-0813/example_humanoid_cover~tplv-dy-resize-origshort-autoq-75.jpeg",
        "authorUserId": "51923847610283746",
        "authorNickname": "机器人观察员",
        "views": 3820000,
        "likes": 246000,
        "comments": 8900,
        "shares": 15200,
        "saves": 41000,
        "authorUniqueId": "robot_watcher_cn",
        "authorImage": "https://p3-pc.douyinpic.com/img/aweme-avatar/example_robotwatcher_avatar~c5_300x300.jpeg",
        "authorVerified": true,
        "region": "CN",
        "videoUrl": "https://v3-web.douyinvod.com/example_token_a1b2c3/video/tos/cn/tos-cn-ve-15/exampleHumanoidVideoId/?a=6383&ch=0&cr=0&dr=0&lr=all&cd=0%7C0%7C0%7C3",
        "durationMs": 58000,
        "width": 1080,
        "height": 1920
      },
      {
        "id": "7448611029384756123",
        "caption": "机器人舞蹈大赛总决赛现场,这个转圈太丝滑了",
        "createdUtc": 1757952000,
        "url": "https://www.douyin.com/video/7448611029384756123",
        "image": "https://p3-pc.douyinpic.com/img/tos-cn-i-0813/example_robotdance_cover~tplv-dy-resize-origshort-autoq-75.jpeg",
        "authorUserId": "40381927465102938",
        "authorNickname": "极客实验室",
        "views": 1560000,
        "likes": 98000,
        "comments": 3400,
        "shares": 6200,
        "saves": 12800,
        "authorUniqueId": "geek_lab_official",
        "authorImage": "https://p3-pc.douyinpic.com/img/aweme-avatar/example_geeklab_avatar~c5_300x300.jpeg",
        "authorVerified": true,
        "region": "CN",
        "videoUrl": "https://v3-web.douyinvod.com/example_token_d4e5f6/video/tos/cn/tos-cn-ve-15/exampleRobotDanceVideoId/?a=6383&ch=0&cr=0&dr=0&lr=all&cd=0%7C0%7C0%7C3",
        "durationMs": 73000,
        "width": 1080,
        "height": 1920
      },
      {
        "id": "7447903384756019283",
        "caption": "扫地机器人买贵的还是买便宜的?三款实测对比",
        "createdUtc": 1757520000,
        "url": "https://www.douyin.com/video/7447903384756019283",
        "image": "https://p3-pc.douyinpic.com/img/tos-cn-i-0813/example_vacuumrobot_cover~tplv-dy-resize-origshort-autoq-75.jpeg",
        "authorUserId": "29384756102938475",
        "authorNickname": "居家好物研究所",
        "views": 987000,
        "likes": 61000,
        "comments": 2700,
        "shares": 3100,
        "saves": 22000,
        "authorUniqueId": "home_gadgets_lab",
        "authorImage": "https://p3-pc.douyinpic.com/img/aweme-avatar/example_homegadgets_avatar~c5_300x300.jpeg",
        "authorVerified": false,
        "region": "CN",
        "videoUrl": "https://v3-web.douyinvod.com/example_token_g7h8i9/video/tos/cn/tos-cn-ve-15/exampleVacuumRobotVideoId/?a=6383&ch=0&cr=0&dr=0&lr=all&cd=0%7C0%7C0%7C3",
        "durationMs": 214000,
        "width": 1080,
        "height": 1920
      }
    ]
  }
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-10-31 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • querystring

    机器人

    Keyword to search for.

  • backtracestring

    Backtrace token returned by the previous page.

  • cursorstring

    Pagination cursor: pass the previous response's nextCursor; omit for the first page. A raw integer cursor is still accepted.

  • durationenum

    0

    Duration filter in minutes: any, under 1, 1 to 5, or over 5.

  • publishedWithinenum

    0

    Publication window in days. Use the canonical JSON integer 0 for any time, 1 for one day, 7 for seven days, or 180 for 180 days; legacy numeric strings remain accepted.

  • searchIdstring

    Search ID returned by the previous page.

  • sortenum

    relevance

    Sort order: relevance (Douyin's comprehensive ranking), most-liked, date-posted.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

datadata

Videos and pagination, or null when none were found.

  • backtracestring

    eyJyZXFJZCI6ImV4YW1wbGUtc2VhcmNoLXRyYWNlLTEyMyJ9

    Backtrace token required for the next page.

  • hasMoreboolean

    true

    Whether another page is available.

  • nextCursorstring

    20

    Opaque cursor for the next page of videos, or null when this lane has no more. Pass it back as cursor to continue.

  • searchIdstring

    6890123457812345678

    Search ID required for the next page.

each videodata.videos[]

Normalized matching videos. Populated whenever the provider has data for the entity.

  • authorImagestring

    https://p3-pc.douyinpic.com/img/aweme-avatar/example_robotwatcher_avatar~c5_300x300.jpeg

    Author's avatar image URL.

  • authorNicknamestring

    机器人观察员

    Author display name. Populated whenever the provider has data for the entity.

  • authorUniqueIdstring

    robot_watcher_cn

    Author's Douyin handle (unique id).

  • authorUserIdstring

    51923847610283746

    Author user identifier. Populated whenever the provider has data for the entity.

  • authorVerifiedboolean

    true

    Whether the author's account is verified.

  • captionstring

    国产人形机器人最新进展,已经能对话又能干活了 #机器人 #科技前沿

    Video caption. Populated whenever the provider has data for the entity.

  • commentsinteger

    8900

    Comment count.

  • createdUtcnumber

    1758211200

    UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.

  • durationMsinteger

    58000

    Video duration in milliseconds.

  • heightinteger

    1920

    Pixel height of the video.

  • idstring

    7449028193746501234

    Video identifier. Populated whenever the provider has data for the entity.

  • imagestring

    https://p3-pc.douyinpic.com/img/tos-cn-i-0813/example_humanoid_cover~tplv-dy-resize-origshort-autoq-75.jpeg

    Cover image URL.

  • likesinteger

    246000

    Like count.

  • regionstring

    CN

    Two-letter region code the video was published from.

  • savesinteger

    41000

    Save count.

  • sharesinteger

    15200

    Share count.

  • urlstring

    https://www.douyin.com/video/7449028193746501234

    Canonical video URL. Populated whenever the provider has data for the entity.

  • videoUrlstring

    https://v3-web.douyinvod.com/example_token_a1b2c3/video/tos/cn/tos-cn-ve-15/exampleHumanoidVideoId/?a=6383&ch=0&cr=0&dr=0&lr=all&cd=0%7C0%7C0%7C3

    Playable video URL. The query string carries required access parameters, so keep it intact.

  • viewsinteger

    3820000

    Play count.

  • widthinteger

    1080

    Pixel width of the video.

top level
  • foundboolean

    true

    True when matching videos were found.

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the Douyin Search videos API

The AnyAPI Douyin Search videos API returns Douyin search videos data as normalized JSON from one POST call to /v1/run/douyin.search_videos. Search public Douyin videos by keyword with sorting, time, duration, and content filters. AnyAPI returns one normalized schema whichever source serves it. It costs from $12 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 98.1% of Douyin search videos calls through AnyAPI succeeded, with a median response time of 2.9 seconds across 875 measured calls.

It costs from $12 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Search public Douyin videos by keyword with sorting, time, duration, and content filters. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 98.1% of Douyin search videos calls through AnyAPI succeeded, with a median response time of 2.9 seconds across 875 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required, which covers 8 Douyin Search videos calls at $0.012 each.

Send a POST request to https://api.getanyapi.com/v1/run/douyin.search_videos with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.