Skip to content
Caller-Owned Account · Dedicated 1:1 FullPool

Email registration: verify code

Complete 2-step email registration with the OTP code and persist a caller-owned Connected Workspace account_id (Scale+).

POSTapi.tikultra.com/v1/account/register/email/verify50 cr
Upstream/passport/email/register_verify_login/Scale and up

What it does & execution pool

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.

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.

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.

StepEndpointPurpose
1GET /v1/user/check-usernameCheck desired @username availability: Verify your target handle is free with GET /v1/user/check-username (2 credits) before starting registration.
2POST /v1/account/register/email/sendBootstrap device & send registration code: Pass email, password, birthday (YYYY-MM-DD), region/city, and your residential/mobile proxy URL. Save the returned context_id.
3 ★POST /v1/account/register/email/verifyVerify email OTP & persist account_id: Submit the 6-digit email code along with the exact same context_id and proxy URL to finalize registration and mint account_id.
4POST /v1/account/profile/usernameClaim @username & set bio/avatar: Set your handle (/v1/account/profile/username), bio (/v1/account/profile/update), and avatar (/v1/account/profile/avatar).
5POST /v1/account/warm/nicheCalibrate initial For You niche: Warm the newly registered session with organic topic searches and feed dwells via POST /v1/account/warm/niche.

Parameters

NameTypeDescription
context_idrequiredstringThe context_id returned by /v1/account/register/email/send.
e.g. 7392011847562901234
emailrequiredstringThe same email address.
e.g. [email protected]
coderequiredstringOne-time registration code delivered to the email.
e.g. 591024
passwordrequiredstringThe same password.
e.g. StrongPassword!2026
birthdayrequiredstringThe same YYYY-MM-DD birthday.
e.g. 1999-04-15
proxyrequiredstringThe same caller-supplied residential or mobile proxy URL.
e.g. http://user:[email protected]:8080

Pricing

PlanPer callPer 1,000 calls
Starter50 credits$5.80
Growth50 credits$3.96
Scale50 credits$2.91

Connected sessions run on dedicated 1:1 FullPool contexts strictly for accounts you own, import, log into, or register. Scale and up.

Response fields

FieldTypeDescription
statusstringCurrent lifecycle or health status.
account_idstringConnected session identifier bound to a dedicated FullPool mobile context.
context_idstringIsolated device/proxy context identifier in LeanPool or FullPool.
device_idstringProvisioned mobile device identifier.
osstringDecoded os value.
app_flavourstringDecoded app flavour value.
app_versionstringDecoded app version value.
regionstringTwo-letter ISO 3166-1 country code associated with the item or context.
citystringCity-level egress or location identifier.
emailstringDecoded email value.
uidstringNumeric 64-bit TikTok user ID.
sec_uidstringEncrypted stable account identifier used across mobile endpoints.
usernamestringDecoded username value.
session_persistedbooleanWhether session persisted is enabled or true.

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`. Every response carries x-credits-cost, x-credits-tier and x-credits-remaining. Error codes

import { TikUltra } from 'tikultra'

const client = new TikUltra({ apiKey: process.env.TIKULTRA_KEY })

const res = await client.request('POST', '/v1/account/register/email/verify', { body: {
  context_id: '7392011847562901234',
  email: '[email protected]',
  code: '591024',
  password: 'StrongPassword!2026',
  birthday: '1999-04-15',
  proxy: 'http://user:[email protected]:8080',
} })
console.log(res.creditsCost, res.data)
{
  "status": "registered",
  "account_id": "acc_9Kp4",
  "context_id": "7392011847562901234",
  "device_id": "7392011847562901234",
  "os": "android",
  "app_flavour": "tiktok",
  "app_version": "47.5.41",
  "region": "US",
  "city": "miami",
  "email": "[email protected]",
  "uid": "6970000000000000002",
  "sec_uid": "MS4wLjABAAAAkbfan991xQp2mN8vR4wL7tH3zK5y",
  "username": "user849201938",
  "session_persisted": true
}
Try it in the playgroundFull docs & AI Agent setupOpen LLM Markdown (.md)

More in Connected sessions · Sign-in, registration & sessions

Ready to build?

Start with 2,500 free credits and test every public endpoint, then pick a plan.