Create account
Creates a provider account. auth_mode is required and must be qrcode, code, or session. When a provider/auth_mode pair requires a phone number (for example WhatsApp with auth_mode=code), supply provider_data.phone here; it is persisted and replayed for later authentication actions.
https://api.unifyport.ai/v1/accountsHeaders
X-Api-KeyWorkspace API key. The workspace is resolved from this header.
Content-TypeUse application/json when sending a JSON request body.
Path parameters
This endpoint has no path parameters.
Request body
nameHuman-readable account name.
providerCustomer provider identifier: telegram, whatsapp, line, twitter, zalo, or tiktok.
enum: telegram, whatsapp, line, twitter, zalo, tiktok, x, x_client, twitter_client
regionProvider region used for allocation. Pick a region reported as allocatable: true by List provider regions.
minLength: 1
statusAccount business state, such as active or inactive.
runtime_statusRequested runtime state when the provider supports changing it through account configuration.
enum: unknown, starting, running, stopping, stopped, reconnecting, disconnected, error
auth_modeRequired when creating an account. Authentication flow: qrcode, code, or session.
enum: qrcode, code, session
capabilities[]Capabilities enabled for this account. On PATCH, omit to retain or send [] to clear; null is invalid.
metadataPlatform-side metadata. On PATCH, omit to retain or send {} to clear; null is invalid.
provider_account_refChannel-side account identity, normally populated after authorization.
provider_dataProvider-specific configuration. On PATCH, omit to retain or send {} to clear; null is invalid. Keep secret values out of logs.
proxyOptional outbound proxy configuration for this account.
Response body
idUnique account identifier (acc_...). Use it in account-scoped routes.
nameHuman-readable account name.
providerProvider identifier such as telegram, whatsapp, line, twitter, zalo, or tiktok.
enum: telegram, whatsapp, line, twitter, zalo, tiktok
regionProvider region the account is allocated to.
statusAccount lifecycle state, such as active.
runtime_statusNormalized runtime state: one of unknown, starting, running, stopping, stopped, reconnecting, disconnected, or error.
enum: unknown, starting, running, stopping, stopped, reconnecting, disconnected, error
auth_modeAuthentication flow used by the account: code, qrcode, or session.
capabilities[]Capabilities enabled for the account, such as send_message and receive_message.
metadataYour own environment labels stored on the account.
provider_account_refChannel-side identifier you can attach to correlate the account with your own system.
proxyOutbound proxy configuration attached to the account, when configured.
provider_profileobjectChannel-reported profile such as display_name. Omitted before the account is authenticated.
provider_profileChannel-reported profile such as display_name. Omitted before the account is authenticated.
idChannel-side account identity. WhatsApp returns an LID; it may be omitted before profile synchronization completes.
phoneNormalized account phone number with spaces, hyphens, and the leading plus sign removed.
usernameProvider-reported username, when available.
display_nameProvider-reported display name, when available.
first_nameProvider-reported first name, when available.
last_nameProvider-reported last name, when available.
avatar_urlProvider-reported account avatar URL, when available.
bioProvider-reported account biography or status text, when available.
platformLogin platform identifier reported by WhatsApp during pairing. Treat it as an opaque string and accept unknown values; other providers do not define this field. It is distinct from device_platform.
Responses
201Request succeeded. See the example response body.
400The request body, path, or parameters are invalid.
401The X-Api-Key header is missing or invalid.
409The requested operation conflicts with an existing provider account or resource.
500The service encountered an unexpected error.
503A required backend service is temporarily unavailable.
Request
curl -X POST https://api.unifyport.ai/v1/accounts \
-H "X-Api-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Telegram Production",
"provider": "telegram",
"region": "global",
"status": "active",
"auth_mode": "qrcode",
"capabilities": ["send_message", "receive_message"],
"provider_data": {},
"metadata": {
"env": "production"
},
"provider_account_ref": "provider-side-identifier"
}'Response
{
"data": {
"id": "acc_example",
"name": "Telegram Production",
"provider": "telegram",
"region": "global",
"status": "active",
"runtime_status": "stopped",
"auth_mode": "qrcode",
"capabilities": ["send_message", "receive_message"],
"provider_account_ref": "provider-side-identifier"
}
}