How do I convert a Douyin sec_uid to a uid, and back? (2026)
1 call does it: give douyin.users.get the sec_uid as id and add view=full, and ext.uid in the answer is the numeric uid, at $0.0020. A profile link works as url too. Going back from a uid takes 2 calls, and works where douyin.users.history has data for that account. DataXAPI reads Douyin with 36 endpoints, from $0.0020 a call; a failed call is not charged.
Updated 2026-11-04
From a sec_uid to a uid
Call https://api.dataxapi.com/v1/douyin/users/get with id set to the sec_uid and view=full. The uid is at data.item.ext.uid, which needs view=full: without it there is no ext. Do not take username for it: that is the Douyin handle (抖音号), and it is often digits too.
From a uid back to a sec_uid
douyin.users.history with id set to the uid answers with url, the account's profile link. Pass that link to douyin.users.get as url, and data.item.id is the sec_uid. That is $0.0020 and $0.0020, $0.004 in all. Accounts with very few followers have no such data: when tried, a few hundred followers failed and over thirty thousand worked, and retrying does not help.
Which endpoint wants which
They are two IDs of one account, and an endpoint refuses the other kind.
| ID | Looks like | Taken by |
|---|---|---|
sec_uid | A long string starting with MS4w | douyin.users.get and douyin.users.videos.list, as id. douyin.users.search gives it from a name |
uid | A string of digits | douyin.users.history and douyin.index.creators.metrics, as id |
What a batch comes to
The uid for 200 accounts is 200 calls at $0.0020, $0.40. Their 7-day history adds 200 at $0.0020, $0.40, so $0.80. A failed call is not charged.
Endpoints
Each with its price; every page has the parameters, the fields and a recorded response.