API reference / Connected sessions / Email registration: send code

Email registration: send code

Start 2-step email registration on a dedicated FullPool device context using your own residential/mobile proxy (Scale+).

Raw .mdAsk ClaudeAsk ChatGPTllms-full.txt
POSTapi.tikultra.com/v1/account/register/email/send25 credits
Upstream
/passport/user/check_email_registered/passport/email/send_code/
Access
Scale and up
Execution pool
Caller-Owned Account · Dedicated 1:1 FullPool
Client
os, app_flavour, app_version selectable
Billing
Failed calls cost 0 credits

What this endpoint does

Start 2-step email registration on a dedicated FullPool device context using your own residential/mobile proxy (Scale+). Executes `/passport/user/check_email_registered, /passport/email/send_code/` on the caller-owned Connected Workspace session (`account_id`), preserving 1:1 hardware identity, cookie state, `X-Cylons` session binding, and city-level egress.

Runs exclusively on a Connected Workspace account_id you own. Executes on the dedicated 1:1 mobile hardware fingerprint, persistent MSSDK sec_device_token, cookie jar, and city egress bound to your own account_id (connected via session import, email OTP login, or Scale+ BYO-proxy email registration). 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.
  • 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: 25 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.

End-to-end endpoint sequence

Click any step in the chain to open its parameters and SDK snippets. The current endpoint is highlighted.

1
Check desired @username availabilityOptionalGET/v1/user/check-username2 cr

Verify your target handle is free with GET /v1/user/check-username (2 credits) before starting registration.

2
Bootstrap device & send registration codeCurrent endpointPOST/v1/account/register/email/send25 cr

Pass email, password, birthday (YYYY-MM-DD), region/city, and your residential/mobile proxy URL. Save the returned context_id.

3
Verify email OTP & persist account_idPOST/v1/account/register/email/verify50 cr

Submit the 6-digit email code along with the exact same context_id and proxy URL to finalize registration and mint account_id.

4
Claim @username & set bio/avatarOptionalPOST/v1/account/profile/username25 cr

Set your handle (/v1/account/profile/username), bio (/v1/account/profile/update), and avatar (/v1/account/profile/avatar).

5
Calibrate initial For You nicheOptionalPOST/v1/account/warm/niche25 cr

Warm the newly registered session with organic topic searches and feed dwells via POST /v1/account/warm/niche.

Agent & operator tip: Registration requires Scale or Enterprise plus a caller-supplied residential/mobile proxy (byo_proxy_required). Always pass the identical context_id and proxy in both step 1 and step 2.

Authorization & parameters

x-api-keyheader · stringrequired

Your API key. Create one in API keys.

Body

Send JSON with content-type: application/json.

emailstringrequired

Unregistered email address you control. For example [email protected].

passwordstringrequired

Account password (8+ characters). For example StrongPassword!2026.

birthdaystringrequired

Date of birth in YYYY-MM-DD format. For example 1999-04-15.

proxystringrequired

Caller-supplied residential or mobile proxy URL (required; never runs on shared pool IPs). For example http://user:[email protected]:8080.

context_idstring

Optional existing caller-owned device context ID to reuse.

warmupboolean

Run initial device bootstrap & warm-up if fresh. For example true.

osstring

android or ios. One of android, ios.

app_flavourstring

Which app to run as. One of tiktok, lite, lite_coin, pro, studio, shop, tv, douyin.

app_versionstring

A release of that app. Defaults to the current default for (os, app_flavour). For example 47.5.41.

regionstring

Two-letter country code for egress and storefront. For example US.

citystring

A city in that region. See the supported cities list. For example miami.

Client and egress

Executes on the dedicated 1:1 FullPool mobile context and city-level egress bound to context_id + proxy, with optional client fields documented above. See Connected sessions.

What it returns

Returns `200 OK` `application/json` decoded from `/passport/user/check_email_registered`. 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 HeaderMeaning
x-credits-costExact credits billed for this call (25 on 200 OK; always 0 on failed calls).
x-credits-tierPricing tier bucket (fixed).
x-credits-remainingLive remaining credit balance on your API key after this response.

Response fields

Key top-level and nested fields decoded from the mobile upstream payload:

statusstring

Current lifecycle or health status.

otp_channelstring

Decoded otp channel value.

context_idstring

Isolated device/proxy context identifier in LeanPool or FullPool.

device_idstring

Provisioned mobile device identifier.

osstring

Decoded os value.

app_flavourstring

Decoded app flavour value.

app_versionstring

Decoded app version value.

regionstring

Two-letter ISO 3166-1 country code associated with the item or context.

citystring

City-level egress or location identifier.

emailstring

Decoded email value.

code_typeinteger

Decoded code type value.

check_emailobject

Structured check email metadata.

check_email.messagestring

Decoded message value.

check_email.dataobject

Structured data metadata.

resultobject

Structured result metadata.

result.messagestring

Decoded message value.

result.dataobject

Structured data metadata.

Errors & pool isolation

Errors return a JSON body with a stable code and cost 0 credits. See Errors and retries.

Scale & Enterprise + BYO Proxy required. 2-step email registration requires a Scale or Enterprise plan (403 scale_plan_required) and a caller-supplied residential or mobile proxy URL (400 byo_proxy_required).