Guides / Run modes / Devices, signing & primitives

Devices, signing & primitives

Bring your own HTTP pipeline. Sign native requests, provision device contexts, resolve links and decode protobuf payloads.

Signing

POST /v1/crypto/sign returns native signature headers for a request you are about to send, in 0.25 ms at p50 and 0.93 ms at p99, for 2 credits. Choose the client with os, app_flavour and app_version: TikTok 47.6.3 (Android) / 47.5.0 (iOS), TikTok Lite 47.6.1, TikTok Lite (coin) 47.6.3, TikTok Pro 47.6.3, TikTok Studio 44.6.3 (Android) / 44.6.3 (iOS), TikTok Shop 47.5.41 (Android) / 47.5.0 (iOS), TikTok TV 12.3.7.1, Douyin 40.8.0 (Android) / 40.8.0 (iOS).

cURLPythonNode.js
curl -X POST https://api.tikultra.com/v1/crypto/sign \
  -H "x-api-key: $TIKULTRA_KEY" \
  -H "content-type: application/json" \
  -d '{"os":"android","app_flavour":"tiktok","app_version":"47.6.3","method":"GET","url":"https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aid=1233&count=6"}'

Device contexts

POST /v1/devices/provision creates a dedicated device context pinned to one of 84 cities in 11 countries, built from one of 237 Android or 15 iOS hardware profiles. Bootstrap it with POST /v1/devices/{id}/bootstrap, then sign as it by passing device_id. GET /v1/devices lists every device your keys have provisioned. Growth and up.

Resolving and decoding

GET /v1/resolve turns any link or @handle into typed IDs. POST /v1/tools/protobuf-decode turns raw protobuf into JSON, and /v1/crypto/zstd/* compresses and decompresses payloads. GET /v1/tools/id-converter reads Snowflake timestamps and resolves sec_uid.