Email registration: verify code
Complete 2-step email registration with the OTP code and persist a caller-owned Connected Workspace account_id (Scale+).
- Upstream
/passport/email/register_verify_login/- Access
- Scale and up
- Execution pool
- Caller-Owned Account · Dedicated 1:1 FullPool
- Billing
- Failed calls cost 0 credits
What this endpoint does
Complete 2-step email registration with the OTP code and persist a caller-owned Connected Workspace account_id (Scale+). Executes `/passport/email/register_verify_login/` on the caller-owned Connected Workspace session (`account_id`), preserving 1:1 hardware identity, cookie state, `X-Cylons` session binding, and city-level egress.
- Never an SMM panel: Tikultra never executes likes, follows, comments, DMs, or uploads from shared or internal pool accounts. Passing an unowned or corpus account_id returns 403 account_forbidden.
- Predictable billing: 50 cr on HTTP 200; upstream 5xx, rate-limit 429, and validation 4xx responses always charge 0 credits.
- Plan & proxy requirement: available on Scale and Enterprise plans and requires a caller-supplied residential or mobile `proxy` URL.
How to use it: 2-Step Scale+ Email Registration with BYO Proxy
Register a brand-new account on a fresh FullPool hardware profile routed strictly through your own residential or mobile proxy, verify the email OTP, and immediately configure the profile.
Click any step in the chain to open its parameters and SDK snippets. The current endpoint is highlighted.
Verify your target handle is free with GET /v1/user/check-username (2 credits) before starting registration.
Pass email, password, birthday (YYYY-MM-DD), region/city, and your residential/mobile proxy URL. Save the returned context_id.
Submit the 6-digit email code along with the exact same context_id and proxy URL to finalize registration and mint account_id.
Set your handle (/v1/account/profile/username), bio (/v1/account/profile/update), and avatar (/v1/account/profile/avatar).
Warm the newly registered session with organic topic searches and feed dwells via POST /v1/account/warm/niche.
Authorization & parameters
Your API key. Create one in API keys.
Body
Send JSON with content-type: application/json.
The context_id returned by /v1/account/register/email/send. For example 7392011847562901234.
The same email address. For example [email protected].
One-time registration code delivered to the email. For example 591024.
The same password. For example StrongPassword!2026.
The same YYYY-MM-DD birthday. For example 1999-04-15.
The same caller-supplied residential or mobile proxy URL. For example http://user:[email protected]:8080.
Client and egress
Executes on the dedicated 1:1 FullPool mobile context and city-level egress bound to context_id + proxy. See Connected sessions.
What it returns
Returns `200 OK` `application/json` decoded from `/passport/email/register_verify_login/`. Field names (`aweme_id`, `uid`, `sec_uid`, `unique_id`, `room_id`, `product_id`) are consistent across all 200+ endpoints so outputs pipe directly into follow-up calls. If TikTok returns an upstream timeout, empty challenge, or 5xx error, the gateway surfaces a structured error `code` and sets `x-credits-cost: 0`.
| Response Header | Meaning |
|---|---|
x-credits-cost | Exact credits billed for this call (50 on 200 OK; always 0 on failed calls). |
x-credits-tier | Pricing tier bucket (fixed). |
x-credits-remaining | Live remaining credit balance on your API key after this response. |
Response fields
Key top-level and nested fields decoded from the mobile upstream payload:
Current lifecycle or health status.
Connected session identifier bound to a dedicated FullPool mobile context.
Isolated device/proxy context identifier in LeanPool or FullPool.
Provisioned mobile device identifier.
Decoded os value.
Decoded app flavour value.
Decoded app version value.
Two-letter ISO 3166-1 country code associated with the item or context.
City-level egress or location identifier.
Decoded email value.
Numeric 64-bit TikTok user ID.
Encrypted stable account identifier used across mobile endpoints.
Decoded username value.
Whether session persisted is enabled or true.
Errors & pool isolation
Errors return a JSON body with a stable code and cost 0 credits. See Errors and retries.
403 scale_plan_required) and a caller-supplied residential or mobile proxy URL (400 byo_proxy_required).