An api_account is a user account: one of your customers, with their own isolated index. It is distinct from you, the white-label organisation, which holds all of these user accounts and the provisioning token that manages them. Create one per customer, usually at signup.
uid is required: your own stable customer id. It is the idempotency key and the address for every later call, so you never need to store a Context Link id.
site_url is optional: include it if you know the customer's website; omit it for an account you fill with content you push or with the customer's own connected sources.
201 Created. Store the token now:
Request fields
uidstringa-z, 0-9, hyphen, underscore or dot, 1 to 255 characters, unique per organisation. It is the idempotency key and the address for every later call.labelstringsite_urlstringhttps on the default port. A URL carrying an explicit port or embedded credentials is rejected rather than silently trimmed.webhook_urlstringResponse fields
api_accountobjectapi_account.idintegeruid, so you never need to store this.api_account.uidstringapi_account.labelstringapi_account.site_urlstringnull when the account was created without a site_url.api_account.connection_idintegernull when the account has no website.api_account.sync_statusstringunsynced, syncing, synced, error_syncing, or no_site for an account with no website.api_account.webhook_urlstringnull when the account falls back to your organisation default.api_account.created_attimestamptokenstringbundle_addedbooleanToken-bearing responses are sent Cache-Control: no-store.
Retries are safe
If the response gets lost, POST the same uid again. You get 200 with the existing account and the same token, and nothing is created twice.
A replay deliberately ignores a changed body, including an invalid one: re-POSTing with a different site_url or label will not mutate the existing account and will not 422. So a retry needs no special casing, and needs to carry no more than the uid.
Automatic growth: if this was customer #11 on 1 bundle, a bundle is added automatically (+$50/mo, +10 slots) and the response carries "bundle_added": true. If the charge fails, the call returns 402 and no account is created. Bundles never shrink automatically; downgrade seats from billing if you want to.