Search for a command to run...
API reference
clientsA client is an end-business you message on behalf of. Your client_ref is the stable key that connects your data model, a channel account, outbound sends, and inbound events.
Use a stable identifier from your own database, not a business name or phone number. A single business with both WhatsApp and Instagram should use distinct references for each channel connection. If you do need to change one later, rename it rather than onboarding the number again.
client_ref is an idempotency boundary
The key needs clients:write. Create the session from your backend, then pass only the returned URL to your frontend.
POST /v1/embedded-signup/sessions
Authorization: Bearer ik_live_...
Content-Type: application/json
{
"client_ref": "customer_42"
}| Property | Type | Description |
|---|---|---|
session_id | string | Opaque identifier for support and hosted-flow correlation. Do not parse it. |
url | URL | Intelli-hosted onboarding page to open for the client business. |
expires_in | integer | Seconds until the single-use session expires; currently 600. |
{
"session_id": "a7jBeKh4uW97sypQ...",
"url": "https://www.intelliconcierge.dev/embed/whatsapp?session=...",
"expires_in": 600
}Connects a WhatsApp Business Account and phone number.
Supports the full free-form message set and approved templates.
Connects an Instagram professional account through OAuth.
Sends text replies to the Instagram-scoped user ID received in a webhook.
/clientsUse a key with clients:read. Paginate with limit and offset; the default page size is 20.
curl "https://api.intelliconcierge.dev/v1/clients?limit=20&offset=0" \
-H "Authorization: Bearer $INTELLI_API_KEY"/clients/{client_ref}Call this endpoint after the hosted window reports completion. Your backend should trust this server response rather than the browser message when deciding whether to enable sends.
curl https://api.intelliconcierge.dev/v1/clients/customer_42 \
-H "Authorization: Bearer $INTELLI_API_KEY"/clients/{client_ref}Change a client's reference, display name or webhook environment after onboarding with a key that has clients:write. Pass only what changes; the response is the updated client. Nothing else moves — sends, templates, usage and delivery logs stay attached to the client. The same edit is available from the client's page in the dashboard.
To isolate development traffic, set environment to test for test clients and live for production clients. Configure the destination first under Webhooks. Hosted signup sessions and direct signup also accept this field for new clients. If omitted, an authenticated ik_test_ key defaults to test; a live key defaults to live. An explicit environment takes precedence. Reconnecting never changes an existing client's environment. Portal connections explicitly use the selected Test/Live mode.
curl -X PATCH https://api.intelliconcierge.dev/v1/clients/customer_42 \
-H "Authorization: Bearer $INTELLI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client_ref": "acme-ltd",
"business_name": "Acme Ltd"
}'| Property | Type | Description |
|---|---|---|
environment | "test" | "live" | Routes new real webhook events to sandbox (test) or production (live), with that environment's URL, secret and subscriptions. Does not change API-key permissions or sending mode. Prior deliveries and retries retain their original environment. |
client_ref | string | New reference. Unique per partner, no "/" (it is a URL path segment). Takes effect immediately — the old reference stops resolving and later webhooks carry the new one. |
business_name | string | Display name shown in the portal and returned on the client. Meta fills it at onboarding (the phone number or Instagram handle) until you set it. |
A rename is immediate
client_ref stops resolving the moment the request succeeds, and every later webhook carries the new one. Update the mapping in your own system first, then rename. A reference already used by another of your clients returns 409 client_ref_exists; duplicates are never created./clients/{client_ref}Remove a client with a key that has clients:write. It is immediate and final: sends and webhooks for the number stop, the client's delivery logs are removed, and Intelli stops receiving events for its WhatsApp Business Account. Approved templates stay in that account — they belong to the client. The number can be connected again later, under this reference or a new one. The same action is on the client's page in the dashboard, behind a confirmation.
curl -X DELETE https://api.intelliconcierge.dev/v1/clients/customer_42 \
-H "Authorization: Bearer $INTELLI_API_KEY"{
"disconnected": true,
"client_ref": "customer_42",
"channel": "whatsapp",
"phone_number": "233200000001",
"connection_removed": true,
"meta_unsubscribed": true
}Lost the connection, not the client?
client_ref and the client is reconnected in place, keeping its logs and history.The hosted onboarding guide covers popup handling, allowed origins, completion messages, expiry, and the advanced AI-assistant integration prompt.
Hosted onboarding guide