Provisioning tenants (resellers)
Provision a tenant per customer at runtime with a provider key.
This guide is for resellers / platforms serving many organizations. A single organization embedding meetings in its own app does not need any of this — take the Quickstart path instead.
You hold one provider key (vcp_prov_…, header x-provider-key), a
backend-only credential. It provisions and manages tenants; it never joins
meetings.
Provision a tenant per customer
POST /api/v1/provider/tenants
x-provider-key: vcp_prov_…
Content-Type: application/json
{
"name": "Acme Clinic",
"slug": "acme-clinic",
"plan": "PRO",
"webhookUrl": "https://your-backend.example.com/webhooks/etite/acme-clinic",
"isTestMode": false
}The response returns the new tenant plus its API key and webhook secret, shown once — store them encrypted:
{
"tenant": { "id": "clh…", "slug": "acme-clinic", "plan": "PRO" },
"apiKey": "vcp_live_…",
"webhookSecret": "whsec_…"
}From then on you act on that customer's behalf with their tenant key — every call in the Quickstart works the same way.
Managing owned tenants
- List and inspect:
GET /provider/tenants,GET /provider/tenants/{id} - Update:
PATCH /provider/tenants/{id} - Rotate a tenant's API key:
POST /provider/tenants/{id}/api-keys/{keyId}/rotate - Rotate a tenant's webhook secret:
POST /provider/tenants/{id}/webhook-secret/rotate - Usage across your fleet:
GET /provider/usage
See the Provider endpoints in the API reference for the full surface.