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

Email registration: send code

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

POSTapi.tikultra.com/v1/account/register/email/send25 cr
Upstream/passport/user/check_email_registered/passport/email/send_code/Scale and up

What it does & execution pool

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.

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.
2 ★POST /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.
3POST /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
emailrequiredstringUnregistered email address you control.
e.g. [email protected]
passwordrequiredstringAccount password (8+ characters).
e.g. StrongPassword!2026
birthdayrequiredstringDate of birth in YYYY-MM-DD format.
e.g. 1999-04-15
proxyrequiredstringCaller-supplied residential or mobile proxy URL (required; never runs on shared pool IPs).
e.g. http://user:[email protected]:8080
context_idstringOptional existing caller-owned device context ID to reuse.
warmupbooleanRun initial device bootstrap & warm-up if fresh.
e.g. true
osstringandroid or ios.
e.g. android
app_flavourstringWhich app to run as.
e.g. tiktok
app_versionstringA release of that app. Defaults to the current default for (os, app_flavour).
e.g. 47.5.41
regionstringTwo-letter country code for egress and storefront.
e.g. US
citystringA city in that region. See the supported cities list.
e.g. miami

Pricing

PlanPer callPer 1,000 calls
Starter25 credits$2.90
Growth25 credits$1.98
Scale25 credits$1.45

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.
otp_channelstringDecoded otp channel value.
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.
code_typeintegerDecoded code type value.
check_emailobjectStructured check email metadata.
check_email.messagestringDecoded message value.
check_email.dataobjectStructured data metadata.
resultobjectStructured result metadata.
result.messagestringDecoded message value.
result.dataobjectStructured data metadata.

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`. 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,
  os: 'android',
  appFlavour: 'tiktok',
  appVersion: '47.5.41',
  region: 'US',
  city: 'miami',
})

const res = await client.request('POST', '/v1/account/register/email/send', { body: {
  email: '[email protected]',
  password: 'StrongPassword!2026',
  birthday: '1999-04-15',
  proxy: 'http://user:[email protected]:8080',
  warmup: true,
} })
console.log(res.creditsCost, res.data)
{
  "status": "registration_code_sent",
  "otp_channel": "email",
  "context_id": "7392011847562901234",
  "device_id": "7392011847562901234",
  "os": "android",
  "app_flavour": "tiktok",
  "app_version": "47.5.41",
  "region": "US",
  "city": "miami",
  "email": "[email protected]",
  "code_type": 1,
  "check_email": {
    "message": "success",
    "data": {
      "is_registered": 0
    }
  },
  "result": {
    "message": "success",
    "data": {
      "next_send_sec": 60
    }
  }
}
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.