An API for your account.
Available before subscribing. Manage all your account resources with the permissions you choose.
Authentication & permissions
Create a key from API & integrations. Choose full control, read-only or custom permissions. It grants no access to other accounts or server administration. Linking phones and creating connections still require the appropriate subscription and permissions.
GET /api/account/v1/account Authorization: Bearer YOUR_ACCOUNT_API_KEY Accept: application/json
The key is shown once; only its digest is stored. Revoke it at any time. Changing the account password or email invalidates existing account keys. Limits: 120 requests per minute per key and 20 active keys per account.
Subscribe, then link
Get plans and receiving wallets from GET /billing. Create an order for a new phone, then submit the transaction ID for manual review. After approval, pass the subscription device_id as subscription_id to link the phone. Submitting a transaction ID alone does not activate service.
POST /api/account/v1/billing/orders
{"device_id":"new","phone_name":"US phone","plan_id":"plus",
"wallet_id":"YOUR_CONFIGURED_WALLET_ID","idempotency_key":"YOUR_UNIQUE_CHECKOUT_ID"}
POST /api/account/v1/create
{"subscription_id":"APPROVED_SUBSCRIPTION_DEVICE_ID","name":"US phone","relay_id":"AVAILABLE_RELAY_ID"}The account key is independent of phone keys. A phone key covers one phone and is issued after its subscription is active. Phone keys grant no billing access.
Phone API documentation →Your account operations
Endpoints and request bodies follow the same rules as the user workspace. Use a unique idempotency key for checkout and a client_id for messages. Email and password changes require the current password; a new email still requires verification. Account keys are managed through the dashboard and cannot issue other account keys.
| Request | المسار | Required permission |
|---|---|---|
| GET | /api/account/v1/support/threads | account:read |
| POST | /api/account/v1/support/threads | support:write |
| GET | /api/account/v1/support/threads/{tid} | account:read |
| POST | /api/account/v1/support/threads/{tid}/messages | support:write |
| POST | /api/account/v1/support/threads/{tid}/read | support:write |
| PATCH | /api/account/v1/support/threads/{tid} | support:write |
| POST | /api/account/v1/support/presence | support:write |
| GET | /api/account/v1/billing | account:read |
| POST | /api/account/v1/billing/orders | billing:write |
| GET | /api/account/v1/billing/orders | account:read |
| POST | /api/account/v1/billing/slots/{did}/archive | billing:write |
| GET | /api/account/v1/billing/orders/{oid} | account:read |
| GET | /api/account/v1/billing/orders/{oid}/receipt | account:read |
| POST | /api/account/v1/billing/orders/{oid}/submit | billing:write |
| POST | /api/account/v1/billing/orders/{oid}/cancel | billing:write |
| POST | /api/account/v1/password | account:write |
| GET | /api/account/v1/account | account:read |
| POST | /api/account/v1/email/send | account:write |
| POST | /api/account/v1/email/verify | account:write |
| PATCH | /api/account/v1/account/email | account:write |
| GET | /api/account/v1/relays | account:read |
| GET | /api/account/v1/devices | account:read |
| POST | /api/account/v1/create | phones:write |
| POST | /api/account/v1/devices/{device_id}/recover-enrollment | phones:write |
| GET | /api/account/v1/qr/{device_id} | phones:write |
| POST | /api/account/v1/devices/{device_id}/pairing-code | phones:write |
| DELETE | /api/account/v1/delete/{device_id} | phones:write |
| POST | /api/account/v1/config/{device_id} | phones:write |
| GET | /api/account/v1/devices/{device_id}/rotation-links | account:read |
| POST | /api/account/v1/devices/{device_id}/rotation-links | phones:write |
| DELETE | /api/account/v1/devices/{device_id}/rotation-links/{link_id} | phones:write |
| GET | /api/account/v1/devices/{device_id}/accesses | account:read |
| GET | /api/account/v1/devices/{device_id}/accesses/{access_id}/history | account:read |
| POST | /api/account/v1/devices/{device_id}/accesses | proxies:write |
| PATCH | /api/account/v1/devices/{device_id}/accesses/{access_id} | proxies:write |
| DELETE | /api/account/v1/devices/{device_id}/accesses/{access_id} | proxies:write |
| POST | /api/account/v1/devices/{device_id}/accesses/{access_id}/reset | proxies:write |
| POST | /api/account/v1/devices/{device_id}/accesses/{access_id}/rebind | proxies:write |
| GET | /api/account/v1/devices/{device_id}/triggers | account:read |
| POST | /api/account/v1/devices/{device_id}/triggers | phones:write |
| DELETE | /api/account/v1/devices/{device_id}/triggers/{trigger_id} | phones:write |
| GET | /api/account/v1/devices/{device_id}/accesses/{access_id}/tunnel-profile | account:read |
| GET | /api/account/v1/devices/{device_id}/history | account:read |
| GET | /api/account/v1/devices/{device_id}/analytics | account:read |
| GET | /api/account/v1/devices/{device_id}/commands | account:read |
| POST | /api/account/v1/devices/{device_id}/commands | phones:write |
| POST | /api/account/v1/rotate/{device_id} | phones:write |
| POST | /api/account/v1/speedtest/{device_id} | phones:write |
| POST | /api/account/v1/devices/{device_id}/compare | phones:write |
| POST | /api/account/v1/devices/{device_id}/path-test | phones:write |
| POST | /api/account/v1/devices/{device_id}/switch | phones:write |
| POST | /api/account/v1/transfers/{tid}/reconcile | phones:write |
| GET | /api/account/v1/measurements | account:read |
| GET | /api/account/v1/groups | account:read |
| POST | /api/account/v1/groups | phones:write |
| PATCH | /api/account/v1/groups/{gid} | phones:write |
| DELETE | /api/account/v1/groups/{gid} | phones:write |
| PATCH | /api/account/v1/devices/{device_id}/organization | phones:write |
| GET | /api/account/v1/devices/{device_id}/sharing | account:read |
| POST | /api/account/v1/devices/{device_id}/sharing | sharing:write |
| PATCH | /api/account/v1/devices/{device_id}/sharing/{recipient_id} | sharing:write |
| DELETE | /api/account/v1/devices/{device_id}/sharing/{recipient_id} | sharing:write |
| GET | /api/account/v1/devices/{device_id}/vpn/service | account:read |
| GET | /api/account/v1/devices/{device_id}/vpn/{protocol} | account:read |
| POST | /api/account/v1/devices/{device_id}/vpn/{protocol} | vpn:write |
| DELETE | /api/account/v1/devices/{device_id}/vpn/{protocol}/{profile_id} | vpn:write |
| PATCH | /api/account/v1/devices/{device_id}/vpn/{protocol}/{profile_id} | vpn:write |
| GET | /api/account/v1/devices/{device_id}/vpn/{protocol}/{profile_id}/profile | account:read |
| GET | /api/account/v1/devices/{device_id}/vpn/{protocol}/{profile_id}/qr | account:read |
| GET | /api/account/v1/devices/{device_id}/api-key | account:read |
| POST | /api/account/v1/devices/{device_id}/api-key | keys:write |
| DELETE | /api/account/v1/devices/{device_id}/api-key | keys:write |
| GET | /api/account/v1/devices/{device_id}/accesses/{access_id}/api-key | account:read |
| POST | /api/account/v1/devices/{device_id}/accesses/{access_id}/api-key | keys:write |
| DELETE | /api/account/v1/devices/{device_id}/accesses/{access_id}/api-key | keys:write |
Responses & errors
401: invalid key. 402: paid subscription required. 403: permission or email verification required. 404: resource outside your account. 409: conflict or service limit. 429: rate limit. 503: relay unavailable. Check the result before retrying a financial request or deletion.