SocialToAIStart freeConsole
POST/v1/call/douyin.account_top_videos

Douyin trend-index creator top videos API

Only on Douyin.

The Douyin trend-index creator top videos API returns the videos the platform's own index tool lists as a Douyin account's top videos for a span of up to 30 days, by the account's numeric ID. 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 20 itemsfirst page only
2026-10-17last tested
1.1 KBsample response, 1 item

Last updated:

Request and response

curl https://api.socialtoai.com/v1/call/douyin.account_top_videos \  -H "Authorization: Bearer $SOCIALTOAI_KEY" \  -H "Content-Type: application/json" \  -d '{    "id": "66598046050",    "since": "2026-09-01T00:00:00Z",    "until": "2026-09-30T00:00:00Z"  }'
import osimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/call/douyin.account_top_videos",    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},    json={        "id": "66598046050",        "since": "2026-09-01T00:00:00Z",        "until": "2026-09-30T00:00:00Z",    },)print(response.json())
# Connected over MCP? Ask in plain words.Use the Douyin trend-index creator top videos interface (douyin.account_top_videos) with id: 66598046050, since: 2026-09-01T00:00:00Z, until: 2026-09-30T00:00:00Z.# Your AI calls the call tool with:{  "id": "66598046050",  "since": "2026-09-01T00:00:00Z",  "until": "2026-09-30T00:00:00Z"}
Sign in to run2 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK1.1 KB2 credits
{  "op": "douyin.account_top_videos",  "platform": "douyin",  "status": "ok",  "items": [    {      "platform": "douyin",      "id": "…",      "ref": "…",      "approx": [],      "type": "content",      "url": "https://example.com/…",      "format": null,      "title": null,      "text": "…",      "published_at": "2026-09-30T00:00:00Z",      "author": {        "id": "…",        "username": null,        "name": null,        "verified": null,        "followers": null      },      "metrics": {        "likes": 21725,        "comments": 1124,        "shares": 145,        "collects": null,        "views": null,        "reposts": null      },      "images": null,      "hashtags": null,      "is_pinned": null    }  ],  "unavailable": ["format", "title", "author.username", "author.name", "author.verified", "author.followers", "metrics.collects", "metrics.views", "metrics.reposts", "images", "hashtags", "is_pinned"],  "page": {    "has_more": false  },  "cost_credits": 2}
@…·
likes 21,725comments 1,124shares 145collects nullviews null

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

Sample data1 of the 20 items recorded

3 parameters.
All required.

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

NameTypeRequiredDefaultDescription
idstringRequired—The account's numeric Douyin ID (uid), a string of digits; not the token starting with MS4w that the profile endpoint takes
sincedatetimeRequired—The first day counted: the China-time (UTC+8) calendar day this moment falls on
untildatetimeRequired—The last day counted, read the same way; no more than 30 days after the first
First page only: up to 20 items, with no cursor parameter and no next page.

Where to get what you send.

id

The account's numeric Douyin ID (uid), a string of digits; not the token starting with MS4w that the profile endpoint takes (e.g. 66598046050)

No other interface of the platform returns it: take it from the web page or link as described above.

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

FieldTypeMeaning
items[].urlstringA link that opens the item.
items[].formatstringalways nullvideo, 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.usernamestringalways nullThe author's handle.
items[].author.namestringalways nullThe author's display name.
items[].author.verifiedbooleanalways nullWhether the author is verified.
items[].author.followersintegeralways nullThe author's follower count.
items[].metrics.likesintegerLikes.
items[].metrics.commentsintegerComments.
items[].metrics.sharesintegerShares.
items[].metrics.collectsintegeralways nullSaves.
items[].metrics.viewsintegeralways nullViews or plays.
items[].metrics.repostsintegeralways nullReposts.
items[].imagesstring[]always nullImage addresses.
items[].hashtagsstring[]always nullHashtags, without the #.
items[].is_pinnedbooleanalways nullWhether the author pinned it.
nullFields Douyin cannot give

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

  • formatvideo, image, text or article.
  • titleThe title.
  • author.usernameThe author's handle.
  • author.nameThe author's display name.
  • author.verifiedWhether the author is verified.
  • author.followersThe author's follower count.
  • metrics.collectsSaves.
  • metrics.viewsViews or plays.
  • metrics.repostsReposts.
  • imagesImage addresses.
  • hashtagsHashtags, without the #.
  • is_pinnedWhether the author pinned it.

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 the first page only, up to 20 items, with no cursor, for 2 credits.
A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 2 credits.
On this call Douyin cannot tell a video that does not exist from one with no data: both come back as empty, and both are charged.

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. Get the videos the platform's own index tool lists as a Douyin account's top videos for a span of up to 30 days, by the account's numeric ID (id: 66598046050, since: 2026-09-01T00:00:00Z, until: 2026-09-30T00:00:00Z).
    call {"op":"douyin.account_top_videos","id":"66598046050","since":"2026-09-01T00:00:00Z","until":"2026-09-30T00:00:00Z"}
    2 credits

Questions.
Short answers.

Everything on Douyin
Do I need a Douyin account or Douyin's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on Douyin; you never sign in to Douyin or apply for anything there.
Can I get the next page?
No. On Douyin this interface gives its first page only (up to 20 items): the response carries no cursor, and page.has_more is always false.

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

100 credits on sign-up, no card needed