Endpoint Playground
Translates one video's caption with the app's own translation route and returns the translated caption both as the app's raw markup (`translated_client_text.client_text_v2.markup_text`, where line breaks are `<br>` and hashtags are wrapped in `<h id="N">...</h>`) and as plain text in `text`. `item_id` is required; `target_lang` defaults to `en` and accepts the app's language codes (`en`, `ja`, `pt-BR`, `zh-Hans`, ...). The route is signature-validated, so it needs device-backed request signing to be configured for the deployment and fails with an error instead of returning a stub when it is not.
curl 'https://api.crawlora.net/api/v1/tiktok/mobile/translation/description?item_id=7650052642089225493' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| item_id | string | Yes | 7650052642089225493 | Video id to translate |
| target_lang | string | No | Target language code (default en) |
{
"code": 200,
"msg": "OK",
"data": {
"item_id": "7650052642089225493",
"target_lang": "en",
"translated_client_text": {
"client_text_v2": {
"markup_text": "Japan's most popular ramen stall...<br><br>...<h id=\"2\">#東京グルメ</h>",
"text_extra": [
{
"hashtag_id": "1611500018038786",
"hashtag_name": "東京グルメ",
"is_commerce": false,
"tag_id": "2"
}
]
},
"translation_protocol": 2
},
"text": "Japan's most popular ramen stall...\n\n...#東京グルメ",
"format": 1,
"status_code": 0,
"host": "aggr32-normal.tiktokv.us"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.