Two networks, not one
TikTok does not operate in mainland China and Douyin does not operate outside it. They are separate apps with separate catalogues and no shared identifiers. This is not a preference you tune. A reel, a creator and a sound all exist on exactly one of the two, so a result from the wrong network is not a weaker result, it is one your user physically cannot act on.How the market is chosen
On/v1/scan, it is inferred from your query: the language you write in, and any location the text implies. A Chinese-language brief reaches Douyin without you having to know our routing rules.
Override it when you know your customer’s market better than the text does:
tiktok, douyin, and auto (the default).
On /v1/playbook and /v1/music, it is read from the URL you pass. There is no parameter, because the reel itself already settles the question.
Languages
Playbooks are written in one of three:
Douyin defaults to Simplified Chinese because a playbook is a script your user reads aloud and captions they type for a mainland audience. Delivered in English it is homework, not a plan.
Simplified and Traditional are separate values on purpose. They are the same spoken language in two scripts, and a mainland founder handed Traditional characters reads it as a Taiwan document.
Anyone targeting Taiwan or Hong Kong is on TikTok, not Douyin, so pass
zh-Hant explicitly there.english, chinese, simplified, traditional, zh, zh-CN, zh-TW, zh-HK.
What differs on Douyin
Worth knowing when you compare results across markets:- Play counts arrive separately. Douyin withholds them from every feed payload, so we fetch them from a dedicated endpoint before delivering. They are populated in the response either way.
- Music is a different catalogue. Douyin sound ids are namespaced
douyin:<id>so they can never collide with a TikTok sound. - Fewer results per provider page, so a Douyin scan pages deeper. It costs us more; the price to you is the same.