CX Inbox

CX Bot & Inbox API

WhatsApp CX Bot and Multi-user Inbox API for ENI Networks

Get global platform statistics (super admin only)

GET
/admin/stats

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/admin/stats"
Empty

List organizations with pagination and filters (super admin only)

GET
/admin/organizations

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

search?string
page?integer
Default1
limit?integer
Default20
plan?string
Value in"FREE" | "STARTER" | "PROFESSIONAL" | "ENTERPRISE"
status?string
Value in"ACTIVE" | "SUSPENDED" | "CANCELLED"
sortBy?string
Default"createdAt"
sortOrder?string
Default"desc"
Value in"asc" | "desc"

Response Body

curl -X get "https://loading/api/v1/admin/organizations"
Empty

Create a new organization with initial admin user (super admin only)

POST
/admin/organizations

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/admin/organizations" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "slug": "string",    "adminEmail": "user@example.com",    "adminName": "string"  }'
Empty
Empty
Empty

Get organization detail (super admin only)

GET
/admin/organizations/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/admin/organizations/string"
Empty
Empty

Update an organization (super admin only)

PATCH
/admin/organizations/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/admin/organizations/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
Empty

Bulk status change on organizations (super admin only)

POST
/admin/organizations/bulk

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/admin/organizations/bulk" \  -H "Content-Type: application/json" \  -d '{    "action": "suspend",    "selection": {      "mode": "ids"    }  }'
Empty

List users of an organization (super admin only)

GET
/admin/organizations/{id}/users

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/admin/organizations/string/users"
Empty
Empty

Resend invitation email to a user in an organization (super admin only)

POST
/admin/organizations/{id}/resend-invite

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

userId*string

Response Body

curl -X post "https://loading/api/v1/admin/organizations/string/resend-invite" \  -H "Content-Type: application/json" \  -d '{    "userId": "string"  }'
Empty
Empty
Empty

Get server environment configuration (super admin only)

GET
/admin/system-config

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/admin/system-config"
Empty

Generate tokens to enter a specific organization's context (super admin only)

POST
/admin/enter-org/{orgId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

orgId*string

Response Body

curl -X post "https://loading/api/v1/admin/enter-org/string"
Empty
Empty

List Stripe prices grouped by product (for plan configuration)

GET
/admin/stripe/prices

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/admin/stripe/prices"
Empty

List active tools available for agents

GET
/agent-tools

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/agent-tools"
Empty

Extract tool parameter values from conversation context using AI

POST
/agent-tools/extract-params

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/agent-tools/extract-params" \  -H "Content-Type: application/json" \  -d '{    "toolId": "string",    "conversationId": "string"  }'
Empty

Execute a tool with given parameters

POST
/agent-tools/execute

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/agent-tools/execute" \  -H "Content-Type: application/json" \  -d '{    "toolId": "string",    "params": {},    "conversationId": "string"  }'
Empty

Overview KPIs and charts

GET
/analytics/overview

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

from?string
Formatdate-time
to?string
Formatdate-time
timezone?string
Default"America/Mexico_City"

Response Body

curl -X get "https://loading/api/v1/analytics/overview"
Empty

Conversation volume, response times, categories

GET
/analytics/conversations

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/analytics/conversations"
Empty

Per-agent performance metrics

GET
/analytics/agents

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/analytics/agents"
Empty

Bot performance metrics

GET
/analytics/bot

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/analytics/bot"
Empty

Campaign delivery funnel and costs

GET
/analytics/campaigns

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/analytics/campaigns"
Empty

Free-form AI analytics query

POST
/analytics/ai-query

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/analytics/ai-query" \  -H "Content-Type: application/json" \  -d '{    "question": "string"  }'
Empty
Empty

Check if AI analytics is available for this tenant

GET
/analytics/ai-status

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/analytics/ai-status"
Empty

Toggle AI analytics on/off

POST
/analytics/ai-toggle

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/analytics/ai-toggle"
Empty

List API keys for the organization (admin only)

GET
/api-keys

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/api-keys"
Empty

Create a new API key (admin only). Returns the full key ONCE.

POST
/api-keys

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/api-keys"
Empty

Update an API key (admin only)

PATCH
/api-keys/{id}

Authorization

AuthorizationBearer <token>

In: header

curl -X patch "https://loading/api/v1/api-keys/{id}"

Delete an API key permanently (admin only)

DELETE
/api-keys/{id}

Authorization

AuthorizationBearer <token>

In: header

curl -X delete "https://loading/api/v1/api-keys/{id}"

Self-service registration (creates org + admin user)

POST
/auth/register

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/auth/register" \  -H "Content-Type: application/json" \  -d '{    "companyName": "string",    "name": "string",    "email": "user@example.com",    "password": "string"  }'
Empty
Empty

Login with email and password

POST
/auth/login

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/auth/login" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com",    "password": "string"  }'
Empty
Empty

Set or update password for the authenticated user

POST
/auth/set-password

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/auth/set-password" \  -H "Content-Type: application/json" \  -d '{    "password": "string"  }'
Empty
Empty
POST
/auth/request-code

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/auth/request-code" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com"  }'
Empty
Empty
POST
/auth/verify-code

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/auth/verify-code" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com",    "code": "string"  }'
Empty
Empty

Refresh access token

POST
/auth/refresh

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

refreshToken*string

Response Body

curl -X post "https://loading/api/v1/auth/refresh" \  -H "Content-Type: application/json" \  -d '{    "refreshToken": "string"  }'
Empty
Empty

Get current user profile

GET
/auth/me

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/auth/me"
Empty

Mark onboarding as completed for the current org

POST
/auth/complete-onboarding

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/auth/complete-onboarding"
Empty
Empty

Create Stripe Checkout session

POST
/billing/checkout-session

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/billing/checkout-session"
Empty

Create Stripe Customer Portal session

POST
/billing/portal-session

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/billing/portal-session"
Empty

Add extra agent block to subscription

POST
/billing/extra-agents

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/billing/extra-agents"
Empty

Get subscription info

GET
/billing/subscription

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/billing/subscription"
Empty

Preview a plan change (features gained/lost, proration)

POST
/billing/preview-plan-change

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/billing/preview-plan-change"
Empty

Preview subscription cancellation (features that will be lost)

GET
/billing/cancel-preview

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/billing/cancel-preview"
Empty

Cancel subscription at end of billing period

POST
/billing/cancel-subscription

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/billing/cancel-subscription"
Empty

Get bot configuration for the current organization

GET
/bot-config

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config"
Empty

Create a new bot config (draft)

POST
/bot-config

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
Empty

Upsert bot configuration

PUT
/bot-config

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/bot-config" \  -H "Content-Type: application/json" \  -d '{}'
Empty

List all bot configs for the organization

GET
/bot-config/list

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/list"
Empty

Duplicate a bot config (deep copy with intents)

POST
/bot-config/{id}/duplicate

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

name?string

Response Body

curl -X post "https://loading/api/v1/bot-config/string/duplicate" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Activate a bot config (deactivates the currently active one)

PUT
/bot-config/{id}/activate

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X put "https://loading/api/v1/bot-config/string/activate"
Empty

Delete a draft bot config (cannot delete the active one)

DELETE
/bot-config/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/bot-config/string"
Empty

Reveal the full (unmasked) API key

GET
/bot-config/reveal-key

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/reveal-key"
Empty

Test LLM with a message

POST
/bot-config/test

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

message*string

Response Body

curl -X post "https://loading/api/v1/bot-config/test" \  -H "Content-Type: application/json" \  -d '{    "message": "string"  }'
Empty

Sandbox chat - admin converses with bot without sending to WA

POST
/bot-config/test-sandbox

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config/test-sandbox" \  -H "Content-Type: application/json" \  -d '{    "message": "string"  }'
Empty

Get available models for a provider

GET
/bot-config/models

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

provider*string
Value in"OPENAI" | "ANTHROPIC" | "GOOGLE" | "DEEPSEEK" | "KIMI" | "LOCAL"

Response Body

curl -X get "https://loading/api/v1/bot-config/models?provider=OPENAI"
Empty

Validate an AI API key

POST
/bot-config/validate-key

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config/validate-key" \  -H "Content-Type: application/json" \  -d '{    "provider": "string",    "apiKey": "string",    "model": "string"  }'
Empty

Get prompt version history

GET
/bot-config/prompt-versions

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/prompt-versions"
Empty

Rollback to a previous prompt version

POST
/bot-config/prompt-versions/{id}/activate

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/bot-config/prompt-versions/string/activate"
Empty

List provider presets for the current organization

GET
/bot-config/presets

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/presets"
Empty

Create a provider preset

POST
/bot-config/presets

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config/presets" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Delete a provider preset

DELETE
/bot-config/presets/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/bot-config/presets/string"
Empty

Update a provider preset

PUT
/bot-config/presets/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X put "https://loading/api/v1/bot-config/presets/string"
Empty

List bot feedback

GET
/bot-feedback

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

limit?integer
cursor?string

Response Body

curl -X get "https://loading/api/v1/bot-feedback"
Empty

Submit feedback on a bot message

POST
/bot-feedback

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-feedback" \  -H "Content-Type: application/json" \  -d '{    "messageId": "string",    "conversationId": "string",    "rating": 0  }'
Empty

Get current month usage and plan limits

GET
/bot-config/usage

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/usage"
Empty

Get last 12 months of usage

GET
/bot-config/usage/history

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/usage/history"
Empty

List knowledge base documents

GET
/bot-config/documents

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/documents"
Empty

Upload a document to the knowledge base

POST
/bot-config/documents

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config/documents"
Empty

Delete a document and its chunks

DELETE
/bot-config/documents/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/bot-config/documents/string"
Empty

Get document processing status

GET
/bot-config/documents/{id}/status

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/bot-config/documents/string/status"
Empty

List bot intents for the current organization

GET
/bot-config/intents

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/intents"
Empty

Create a bot intent

POST
/bot-config/intents

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/bot-config/intents"
Empty

Delete a bot intent

DELETE
/bot-config/intents/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/bot-config/intents/string"
Empty

Update a bot intent

PUT
/bot-config/intents/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X put "https://loading/api/v1/bot-config/intents/string"
Empty

Reorder bot intents

PUT
/bot-config/intents/reorder

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

ids?array<string>

Response Body

curl -X put "https://loading/api/v1/bot-config/intents/reorder" \  -H "Content-Type: application/json" \  -d '{}'
Empty

List config snapshots (metadata only)

GET
/bot-config/snapshots

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/snapshots"
Empty

Create a config snapshot

POST
/bot-config/snapshots

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/bot-config/snapshots"
Empty

Restore a config snapshot

POST
/bot-config/snapshots/{id}/restore

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/bot-config/snapshots/string/restore"
Empty

Delete a config snapshot

DELETE
/bot-config/snapshots/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/bot-config/snapshots/string"
Empty

Export bot config as JSON file

GET
/bot-config/export

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

tier?string
Value in"config" | "standard" | "full"

Response Body

curl -X get "https://loading/api/v1/bot-config/export"
Empty

Export bot config as ZIP with binary files

GET
/bot-config/export-zip

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

tier?string
Value in"standard" | "full"

Response Body

curl -X get "https://loading/api/v1/bot-config/export-zip"
Empty

Import bot config from JSON or ZIP file

POST
/bot-config/import

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config/import"
Empty

Get chunks for a document

GET
/bot-config/documents/{id}/chunks

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/bot-config/documents/string/chunks"
Empty

Test RAG query

POST
/bot-config/test-rag

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

query?string

Response Body

curl -X post "https://loading/api/v1/bot-config/test-rag" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Get embedding model information

GET
/bot-config/embedding-info

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/embedding-info"
Empty

List bot media assets

GET
/bot-config/media

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-config/media"
Empty

Upload a bot media file

POST
/bot-config/media

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/bot-config/media"
Empty

Update bot media metadata

PATCH
/bot-config/media/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X patch "https://loading/api/v1/bot-config/media/string"
Empty

Delete a bot media file

DELETE
/bot-config/media/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/bot-config/media/string"
Empty

Serve bot media file for preview

GET
/bot-config/media/{id}/file

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/bot-config/media/string/file"
Empty

Serve video thumbnail image

GET
/bot-config/media/{id}/thumbnail

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/bot-config/media/string/thumbnail"
Empty

Get bot quality metrics for the current org

GET
/bot-config/metrics/quality

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

days?integer

Number of days to look back

Default30

Response Body

curl -X get "https://loading/api/v1/bot-config/metrics/quality"
Empty

List bot sessions with filtering and pagination

GET
/bot-config/metrics/sessions

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

closureType?string

Filter by closure type

Value in"RESOLVED_CONFIRMED" | "ABANDONED" | "ESCALATED"
days?integer
Default30
page?integer
Default1
limit?integer
Default20

Response Body

curl -X get "https://loading/api/v1/bot-config/metrics/sessions"
Empty

Bot performance metrics from Langfuse traces

GET
/bot-config/metrics/traces

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

days?integer
Default7
Range1 <= value <= 30
force?boolean
Defaultfalse

Response Body

curl -X get "https://loading/api/v1/bot-config/metrics/traces"
Empty

Get detailed pipeline view for a single trace

GET
/bot-config/metrics/traces/{traceId}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

traceId*string

Response Body

curl -X get "https://loading/api/v1/bot-config/metrics/traces/string"
Empty
Empty

Look up client account by phone number

GET
/phone-lookup/{phone}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

phone*string

Phone number (10 digits or full with country code)

Response Body

curl -X get "https://loading/api/v1/phone-lookup/string"
Empty

Reprocesar conversaciones BOT_HANDLING sin respuesta del bot

POST
/bot-config/reprocess-pending

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X post "https://loading/api/v1/bot-config/reprocess-pending"
{
  "data": {
    "reprocessed": 0,
    "errors": 0,
    "total": 0
  }
}
Empty

List all bot templates (including unpublished)

GET
/admin/bot-templates

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/admin/bot-templates"
Empty

Create a bot template

POST
/admin/bot-templates

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/admin/bot-templates" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Publish current org config as a template

POST
/admin/bot-templates/from-config

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/admin/bot-templates/from-config" \  -H "Content-Type: application/json" \  -d '{    "orgId": "string",    "name": "string",    "slug": "string"  }'
Empty

Delete a bot template

DELETE
/admin/bot-templates/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/admin/bot-templates/string"
Empty

Update a bot template

PUT
/admin/bot-templates/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X put "https://loading/api/v1/admin/bot-templates/string"
Empty

List published bot templates

GET
/bot-templates

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/bot-templates"
Empty

Import a bot template into the org's config

POST
/bot-templates/import/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/bot-templates/import/string"
Empty

List bot tools for this organization

GET
/tools

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/tools"
Empty

Create a bot tool

POST
/tools

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/tools"
Empty

Delete a bot tool

DELETE
/tools/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/tools/{id}"
Empty

Update a bot tool

PUT
/tools/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X put "https://loading/api/v1/tools/{id}"
Empty

Test a tool with example parameters

POST
/tools/{id}/test

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/tools/{id}/test"
Empty

List all campaigns

GET
/campaigns

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/campaigns"
Empty

Create a campaign (bulk template send)

POST
/campaigns

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/campaigns" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "templateId": "string",    "recipients": [      {        "phone": "string"      }    ]  }'
Empty
Empty
Empty

Get aggregated stats across all campaigns

GET
/campaigns/stats/global

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/campaigns/stats/global"
Empty

Get real costs from Meta per template and WABA total (last 90 days)

GET
/campaigns/meta-costs

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/campaigns/meta-costs"
Empty

Get calculated real cost for a campaign based on Meta analytics

GET
/campaigns/{id}/meta-cost

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/campaigns/string/meta-cost"
Empty
Empty

Get campaign detail with paginated recipients

GET
/campaigns/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Query Parameters

page?integer
Default1
limit?integer
Default25
status?string
Value in"all" | "PENDING" | "SENT" | "DELIVERED" | "READ" | "FAILED"

Response Body

curl -X get "https://loading/api/v1/campaigns/string"
Empty
Empty

Export campaign recipients as CSV

GET
/campaigns/{id}/export

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Query Parameters

status?string
Value in"all" | "PENDING" | "SENT" | "DELIVERED" | "READ" | "FAILED" | "REPLIED"

Response Body

text/csv

curl -X get "https://loading/api/v1/campaigns/string/export"
"string"
Empty

Get aggregated recipient stats for a campaign

GET
/campaigns/{id}/stats

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/campaigns/string/stats"
Empty
Empty

Estimate campaign cost before sending

POST
/campaigns/estimate

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/campaigns/estimate" \  -H "Content-Type: application/json" \  -d '{    "templateId": "string",    "recipients": [      {        "phone": "string"      }    ]  }'
Empty
Empty

Get current WhatsApp pricing rates

GET
/campaigns/pricing

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/campaigns/pricing"
Empty

Bulk actions on campaigns (admin only)

POST
/campaigns/bulk

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/campaigns/bulk" \  -H "Content-Type: application/json" \  -d '{    "action": "delete",    "selection": {      "mode": "ids"    }  }'
Empty

Get public branding info (logo, company name, WhatsApp phone)

GET
/config/branding

Query Parameters

clientId?integer

Response Body

curl -X get "https://loading/api/v1/config/branding"
Empty

Update branding settings (admin only)

PUT
/config/branding

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

companyLogoUrl?string

Response Body

curl -X put "https://loading/api/v1/config/branding" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Get aggregated platform statistics (public, cached 60s)

GET
/config/platform-stats

Response Body

curl -X get "https://loading/api/v1/config/platform-stats"
Empty

Get authenticated branding info for current organization

GET
/config/my-branding

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/my-branding"
Empty

Get server environment configuration (super admin only)

GET
/config

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config"
Empty
Empty

Upload company logo (admin only)

POST
/config/logo

Authorization

AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

logo*string

Response Body

curl -X post "https://loading/api/v1/config/logo" \  -F logo="string"
Empty
Empty

Remove company logo (admin only)

DELETE
/config/logo

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/config/logo"
Empty

Check if auto-categorization is enabled for this organization

GET
/config/auto-categorize

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/auto-categorize"
Empty

Toggle auto-categorization (admin only)

PUT
/config/auto-categorize

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

enabled*boolean

Response Body

curl -X put "https://loading/api/v1/config/auto-categorize" \  -H "Content-Type: application/json" \  -d '{    "enabled": true  }'
Empty
Empty

Check if the bot is enabled for this organization

GET
/config/bot-enabled

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/bot-enabled"
Empty

Toggle bot enabled/disabled (admin)

PUT
/config/bot-enabled

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

enabled*boolean

Response Body

curl -X put "https://loading/api/v1/config/bot-enabled" \  -H "Content-Type: application/json" \  -d '{    "enabled": true  }'
Empty
Empty
Empty

Check if media auto-display is enabled for this organization

GET
/config/media-auto-display

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/media-auto-display"
Empty

Toggle media auto-display (admin only)

PUT
/config/media-auto-display

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

enabled*boolean

Response Body

curl -X put "https://loading/api/v1/config/media-auto-display" \  -H "Content-Type: application/json" \  -d '{    "enabled": true  }'
Empty
Empty

Get bot handling mode flags

GET
/config/bot-mode

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/bot-mode"
Empty

Update bot handling mode flags (admin only)

PUT
/config/bot-mode

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/config/bot-mode" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty

List external connections for the organization

GET
/connections

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/connections"
Empty

Create an external connection (admin only)

POST
/connections

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/connections"
Empty

Get unmasked secrets for a connection (admin only)

GET
/connections/{id}/secrets

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/connections/{id}/secrets"
Empty

Delete an external connection (admin only). Cascades InboxDataSource, nullifies BotTool.connectionId.

DELETE
/connections/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/connections/{id}"
Empty

Update an external connection (admin only)

PUT
/connections/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X put "https://loading/api/v1/connections/{id}"
Empty

Test an external connection with example variables (admin only)

POST
/connections/{id}/test

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/connections/{id}/test"
Empty

List/search contacts

GET
/contacts

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

search?string
cursor?string
limit?integer
Default50

Response Body

curl -X get "https://loading/api/v1/contacts"
Empty

Get contact by WhatsApp ID

GET
/contacts/{waId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

waId*string

Response Body

curl -X get "https://loading/api/v1/contacts/string"
Empty

Update contact name or category

PATCH
/contacts/{waId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

waId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/contacts/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty

List conversations with filters

GET
/conversations

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

status?string
Value in"BOT_HANDLING" | "HUMAN_HANDLING" | "OPEN" | "WAITING_FOR_CUSTOMER" | "CLOSED"
assignedTo?string
search?string
cursor?string
limit?integer
Default50
subFilter?string

Sub-filter pill (unread = unreadCount > 0, needs_action = last message from customer)

Value in"unread" | "needs_action"
sort?string

Sort order for conversations

Default"newest"
Value in"newest" | "oldest" | "waiting_longest" | "created_newest" | "created_oldest"

Response Body

curl -X get "https://loading/api/v1/conversations"
Empty

Get distinct conversation categories

GET
/conversations/categories

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/conversations/categories"
Empty

Get sub-filter counts (all, unread, needs_action)

GET
/conversations/counts

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

status?string
assignedTo?string
teamId?string
category?string
origin?string

Response Body

curl -X get "https://loading/api/v1/conversations/counts"
Empty

Bulk re-classify and re-route open conversations

POST
/conversations/re-classify

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/conversations/re-classify" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Re-classify a single conversation using AI

POST
/conversations/{id}/re-classify

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/conversations/string/re-classify"
Empty

Re-evaluate routing rules and reassign team

POST
/conversations/{id}/re-route

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/conversations/{id}/re-route"

Get conversation by ID

GET
/conversations/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/conversations/string"
Empty

Update conversation (status, assignment, etc.)

PATCH
/conversations/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X patch "https://loading/api/v1/conversations/string"
Empty

Agent takes over conversation from bot

POST
/conversations/{id}/takeover

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/conversations/string/takeover"
Empty

Generate a handoff summary preview for agent review

POST
/conversations/{id}/generate-handoff-summary

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/conversations/string/generate-handoff-summary"
Empty

Return conversation to bot handling

POST
/conversations/{id}/return-to-bot

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

handoffSummary?string

Agent-edited handoff context for the bot

Response Body

curl -X post "https://loading/api/v1/conversations/string/return-to-bot" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Mark conversation as read

POST
/conversations/{id}/read

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/conversations/string/read"
Empty

Assign conversation to an agent

POST
/conversations/{id}/assign

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/conversations/{id}/assign"

Unassign conversation (release it for other agents)

POST
/conversations/{id}/unassign

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/conversations/{id}/unassign"

Resolve conversation (mark as resolved)

POST
/conversations/{id}/resolve

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/conversations/{id}/resolve"

Mark conversation for follow-up

POST
/conversations/{id}/follow-up

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

note?string

Response Body

curl -X post "https://loading/api/v1/conversations/{id}/follow-up" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Remove follow-up from conversation

DELETE
/conversations/{id}/follow-up

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/conversations/{id}/follow-up"
Empty

Get other conversations from the same contact

GET
/conversations/{id}/contact-history

Authorization

AuthorizationBearer <token>

In: header

curl -X get "https://loading/api/v1/conversations/{id}/contact-history"

Simulate a single incoming conversation via webhook pipeline

POST
/dev/simulate/conversation

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/dev/simulate/conversation" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Simulate a batch of incoming conversations

POST
/dev/simulate/batch

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/dev/simulate/batch" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Simulate an incoming message on an existing conversation

POST
/dev/simulate/message

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/dev/simulate/message" \  -H "Content-Type: application/json" \  -d '{    "conversationId": "string"  }'
Empty
Empty
Empty

Delete all simulated conversations and messages

DELETE
/dev/simulate/cleanup

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/dev/simulate/cleanup"
Empty

Simulate a template status update webhook from Meta

POST
/dev/simulate/template-status

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/dev/simulate/template-status" \  -H "Content-Type: application/json" \  -d '{    "templateName": "string",    "event": "APPROVED"  }'
Empty
Empty
Empty

Health check

GET
/health

Response Body

curl -X get "https://loading/api/v1/health"
Empty

Readiness check (verifies DB connection)

GET
/ready

Response Body

curl -X get "https://loading/api/v1/ready"
Empty
Empty

List inbox data sources for the organization

GET
/inbox-data-sources

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/inbox-data-sources"
Empty

Create an inbox data source (admin only)

POST
/inbox-data-sources

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/inbox-data-sources"
Empty

Delete an inbox data source (admin only)

DELETE
/inbox-data-sources/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/inbox-data-sources/{id}"
Empty

Update an inbox data source (admin only)

PUT
/inbox-data-sources/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X put "https://loading/api/v1/inbox-data-sources/{id}"
Empty

Test a data source with a phone number (admin only)

POST
/inbox-data-sources/{id}/test

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/inbox-data-sources/{id}/test"
Empty

Fetch external data for a conversation's contact (all roles)

GET
/inbox-data-sources/data/{conversationId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

conversationId*string

Query Parameters

force?boolean

Response Body

curl -X get "https://loading/api/v1/inbox-data-sources/data/string"
Empty

Get integration config for the organization (secrets masked)

GET
/integrations

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/integrations"
Empty

Delete integration config (admin only)

DELETE
/integrations

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/integrations"
Empty

Create or update integration config (admin only)

PUT
/integrations

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X put "https://loading/api/v1/integrations"
Empty

Get unmasked secrets for the organization (admin only)

GET
/integrations/secrets

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/integrations/secrets"
Empty

Test integration connection with a phone number (admin only)

POST
/integrations/test

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/integrations/test"
Empty

Fetch external data for a conversation's contact

GET
/integrations/data/{conversationId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

conversationId*string

Query Parameters

force?boolean

Response Body

curl -X get "https://loading/api/v1/integrations/data/string"
Empty

List invitations for current org

GET
/invitations

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/invitations"
Empty

Create a single invitation

POST
/invitations

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/invitations" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com"  }'
Empty
Empty

Create multiple invitations at once

POST
/invitations/bulk

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/invitations/bulk" \  -H "Content-Type: application/json" \  -d '{    "invitations": [      {}    ]  }'
Empty

Resend invitation email

POST
/invitations/{id}/resend

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/invitations/{id}/resend"

Revoke a pending invitation

DELETE
/invitations/{id}

Authorization

AuthorizationBearer <token>

In: header

curl -X delete "https://loading/api/v1/invitations/{id}"

Get invitation details by token (public)

GET
/invitations/token/{token}
curl -X get "https://loading/api/v1/invitations/token/{token}"

Accept invitation and create account

POST
/invitations/accept/{token}

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

curl -X post "https://loading/api/v1/invitations/accept/{token}" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "password": "string"  }'

Get messages for a conversation (cursor-based pagination)

GET
/conversations/{id}/messages

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Query Parameters

cursor?string
limit?integer
Default50

Response Body

curl -X get "https://loading/api/v1/conversations/string/messages"
Empty

Send a message in a conversation

POST
/conversations/{id}/messages

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/conversations/string/messages" \  -H "Content-Type: application/json" \  -d '{    "type": "text"  }'
Empty

Send a media message (image, video, audio, document)

POST
/conversations/{id}/messages/media

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/conversations/string/messages/media" \  -F file="string"
Empty
Empty
Empty

Send a reaction to a message via WhatsApp

POST
/messages/{id}/react

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

emoji*string

Response Body

curl -X post "https://loading/api/v1/messages/string/react" \  -H "Content-Type: application/json" \  -d '{    "emoji": "string"  }'
Empty

Retry media download for a message with failed/missing media

POST
/messages/{id}/retry-media

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/messages/string/retry-media"
Empty
Empty

Toggle message visibility (hide/unhide)

POST
/messages/{id}/toggle-hide

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/messages/string/toggle-hide"
Empty

List failed outbound messages (admin only)

GET
/messages/failed

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

status?string
Value in"FAILED" | "PENDING"
permanent?boolean
templateName?string
search?string
page?integer
Default1
pageSize?integer
Default25

Response Body

curl -X get "https://loading/api/v1/messages/failed"
Empty

Get failed message statistics (admin only)

GET
/messages/failed/stats

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/messages/failed/stats"
Empty

Retry sending a failed message (admin only)

POST
/messages/{id}/retry-send

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/messages/string/retry-send"
Empty

Mark a failed message as permanently discarded (admin only)

POST
/messages/{id}/discard

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/messages/string/discard"
Empty

Retry multiple failed messages (admin only)

POST
/messages/failed/bulk-retry

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

messageIds?array<string>

Response Body

curl -X post "https://loading/api/v1/messages/failed/bulk-retry" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Discard multiple failed messages (admin only)

POST
/messages/failed/bulk-discard

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

messageIds?array<string>

Response Body

curl -X post "https://loading/api/v1/messages/failed/bulk-discard" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Receive bot response from n8n workflow

POST
/n8n/bot-response

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/n8n/bot-response" \  -H "Content-Type: application/json" \  -d '{    "conversationId": "string",    "message": {}  }'
Empty

Get current plan usage and limits

GET
/plan/usage

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/plan/usage"
Empty

List available plans (public, no auth)

GET
/config/public/plans

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/public/plans"
Empty

Get own user profile

GET
/profile

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/profile"
Empty

Update own profile name

PATCH
/profile

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

name*string

Response Body

curl -X patch "https://loading/api/v1/profile" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
Empty
Empty

Upload user avatar image

POST
/profile/avatar

Authorization

AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

avatar*string

Response Body

curl -X post "https://loading/api/v1/profile/avatar" \  -F avatar="string"
Empty
Empty

Remove user avatar

DELETE
/profile/avatar

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/profile/avatar"
Empty

Change own password

POST
/profile/change-password

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/profile/change-password" \  -H "Content-Type: application/json" \  -d '{    "currentPassword": "string",    "newPassword": "string"  }'
Empty
Empty

List active quick replies (all agents)

GET
/quick-replies

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/quick-replies"
Empty

Create a quick reply (admin only)

POST
/quick-replies

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/quick-replies"

List all quick replies including inactive (admin only)

GET
/quick-replies/all

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/quick-replies/all"
Empty

Update a quick reply (admin only)

PATCH
/quick-replies/{id}

Authorization

AuthorizationBearer <token>

In: header

curl -X patch "https://loading/api/v1/quick-replies/{id}"

Delete a quick reply (admin only)

DELETE
/quick-replies/{id}

Authorization

AuthorizationBearer <token>

In: header

curl -X delete "https://loading/api/v1/quick-replies/{id}"

Bulk actions on quick replies (admin only)

POST
/quick-replies/bulk

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/quick-replies/bulk" \  -H "Content-Type: application/json" \  -d '{    "action": "delete",    "selection": {      "mode": "ids"    }  }'
Empty

Upload media attachment for a quick reply (admin only)

POST
/quick-replies/{id}/media

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

file?string

Response Body

curl -X post "https://loading/api/v1/quick-replies/string/media"
Empty

Remove media from a quick reply (admin only)

DELETE
/quick-replies/{id}/media

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/quick-replies/string/media"
Empty

Get organization maintenance mode settings

GET
/routing-rules/maintenance

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/routing-rules/maintenance"
Empty

Update organization maintenance mode settings (admin only)

PUT
/routing-rules/maintenance

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/routing-rules/maintenance" \  -H "Content-Type: application/json" \  -d '{    "maintenanceMode": true  }'
Empty
Empty

Get organization off-hours auto-reply settings

GET
/routing-rules/off-hours

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/routing-rules/off-hours"
Empty

Update organization off-hours auto-reply settings (admin only)

PUT
/routing-rules/off-hours

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/routing-rules/off-hours" \  -H "Content-Type: application/json" \  -d '{    "offHoursAutoReply": true  }'
Empty
Empty

Get organization business hours schedule

GET
/routing-rules/business-hours

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/routing-rules/business-hours"
Empty

Update organization business hours schedule (admin only)

PUT
/routing-rules/business-hours

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/routing-rules/business-hours" \  -H "Content-Type: application/json" \  -d '{    "timezone": "string",    "isEnabled": true,    "slots": [      {}    ]  }'
Empty
Empty

Get the default team for the organization

GET
/routing-rules/default-team

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/routing-rules/default-team"
Empty

Update the default team for the organization (admin only)

PUT
/routing-rules/default-team

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/routing-rules/default-team" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
Empty

Run routing rules retroactively on existing conversations (admin only)

POST
/routing-rules/run-now

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/routing-rules/run-now" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty

List all routing rules ordered by priority

GET
/routing-rules

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/routing-rules"
Empty

Create a routing rule (admin only)

POST
/routing-rules

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/routing-rules" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "teamId": "string",    "conditions": [      {}    ]  }'
Empty
Empty

Preview conflicts for a routing rule without saving

GET
/routing-rules/check-conflicts

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

teamId*string
conditions*string

JSON-encoded conditions array

matchType?string
Value in"ANY" | "ALL"
excludeRuleId?string

Response Body

curl -X get "https://loading/api/v1/routing-rules/check-conflicts?teamId=string&conditions=string"
Empty
Empty

Update a routing rule (admin only)

PATCH
/routing-rules/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/routing-rules/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty

Delete a routing rule (admin only)

DELETE
/routing-rules/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/routing-rules/string"
Empty
Empty

Reorder routing rules by priority (admin only)

POST
/routing-rules/reorder

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

orderedIds*array<string>

Response Body

curl -X post "https://loading/api/v1/routing-rules/reorder" \  -H "Content-Type: application/json" \  -d '{    "orderedIds": [      "string"    ]  }'
Empty
Empty

Get idle agent detection settings

GET
/routing-rules/idle-agent

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/routing-rules/idle-agent"
Empty

Update idle agent detection settings (admin only)

PUT
/routing-rules/idle-agent

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/routing-rules/idle-agent" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Manually trigger idle agent detection for this org (admin only)

POST
/routing-rules/idle-agent/run

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/routing-rules/idle-agent/run"
Empty

List all tags for the organization

GET
/tags

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/tags"
Empty

Create a new tag

POST
/tags

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/tags"
Empty

Get available tag color palette

GET
/tags/colors

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/tags/colors"
Empty

Delete a tag (cascade removes from conversations)

DELETE
/tags/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/tags/{id}"
Empty

Update a tag

PUT
/tags/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Response Body

curl -X put "https://loading/api/v1/tags/{id}"
Empty

Add a tag to a conversation

POST
/conversations/{conversationId}/tags

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/conversations/{conversationId}/tags"
Empty

Remove a tag from a conversation

DELETE
/conversations/{conversationId}/tags/{tagId}

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "https://loading/api/v1/conversations/{conversationId}/tags/{tagId}"
Empty

List teams

GET
/teams

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

includeInactive?boolean
Defaultfalse

Response Body

curl -X get "https://loading/api/v1/teams"
Empty

Create a team (admin only)

POST
/teams

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/teams" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
Empty
Empty
Empty

Get team detail with members

GET
/teams/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/teams/string"
Empty
Empty

Update team properties (admin only)

PATCH
/teams/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/teams/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
Empty

Deactivate a team (soft delete, admin only)

DELETE
/teams/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/teams/string"
Empty
Empty

Add a member to a team (admin only)

POST
/teams/{id}/members

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/teams/string/members" \  -H "Content-Type: application/json" \  -d '{    "userId": "string"  }'
Empty
Empty
Empty
Empty

Update a team member's role (admin only)

PATCH
/teams/{id}/members/{userId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string
userId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/teams/string/members/string" \  -H "Content-Type: application/json" \  -d '{    "role": "MEMBER"  }'
Empty
Empty
Empty

Remove a member from a team (admin only)

DELETE
/teams/{id}/members/{userId}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string
userId*string

Response Body

curl -X delete "https://loading/api/v1/teams/string/members/string"
Empty
Empty

Get team schedule (working hours)

GET
/teams/{id}/schedule

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/teams/string/schedule"
Empty

Create or update team schedule (admin only)

PUT
/teams/{id}/schedule

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/teams/string/schedule" \  -H "Content-Type: application/json" \  -d '{    "timezone": "string"  }'
Empty
Empty

Check if team is currently in working hours

GET
/teams/{id}/schedule/status

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/teams/string/schedule/status"
Empty

Serve template header media file (image/video/document)

GET
/templates/{id}/header-media

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/templates/string/header-media"
Empty
Empty

List approved WhatsApp templates

GET
/templates

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/templates"
Empty

Create a WhatsApp template and submit to Meta for approval

POST
/templates

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/templates"

Save a template locally as DRAFT without submitting to Meta

POST
/templates/draft

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/templates/draft" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "category": "MARKETING",    "components": [      {}    ]  }'
Empty
Empty

Update a DRAFT template locally

PUT
/templates/{id}/draft

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/templates/string/draft" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "category": "MARKETING",    "components": [      {}    ]  }'
Empty
Empty
Empty
Empty

Submit a DRAFT template to Meta for approval

POST
/templates/{id}/submit

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/templates/string/submit"
Empty
Empty
Empty

Soft-delete a template (mark as REMOVED)

DELETE
/templates/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/templates/string"
Empty

Edit a template's components in Meta and update in DB

PUT
/templates/{id}

Authorization

AuthorizationBearer <token>

In: header

curl -X put "https://loading/api/v1/templates/{id}"

Send a template message to a conversation

POST
/templates/{name}/send

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

name*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/templates/string/send" \  -H "Content-Type: application/json" \  -d '{    "conversationId": "string"  }'
Empty

Send a template message to an arbitrary phone number (creates or reuses conversation)

POST
/templates/{name}/send-to-phone

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

name*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/templates/string/send-to-phone" \  -H "Content-Type: application/json" \  -d '{    "phone": "string"  }'
Empty
Empty
Empty

Upload media for template header (returns file handle for Meta)

POST
/templates/upload-media

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/templates/upload-media"

Sync templates from WhatsApp Business API

POST
/templates/sync

Authorization

AuthorizationBearer <token>

In: header

curl -X post "https://loading/api/v1/templates/sync"

Duplicate a template as a DRAFT

POST
/templates/{id}/duplicate

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/templates/string/duplicate"
Empty
Empty
Empty

Delete template from Meta and mark as REMOVED in DB

DELETE
/templates/{id}/meta

Authorization

AuthorizationBearer <token>

In: header

curl -X delete "https://loading/api/v1/templates/{id}/meta"

Bulk actions on templates (admin only)

POST
/templates/bulk

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/templates/bulk" \  -H "Content-Type: application/json" \  -d '{    "action": "delete",    "selection": {      "mode": "ids"    }  }'
Empty

List users (agents)

GET
/users

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/users"
Empty

Create a new user (admin only)

POST
/users

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/users" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com",    "name": "string"  }'
Empty

Update a user (admin only)

PATCH
/users/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/users/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
Empty

Soft-delete a user (admin only)

DELETE
/users/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/users/string"
Empty
Empty
Empty

Resend invitation email to a user (admin only)

POST
/users/{id}/resend-invite

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X post "https://loading/api/v1/users/string/resend-invite"
Empty
Empty

Update user online status

PATCH
/users/{id}/status

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/users/string/status" \  -H "Content-Type: application/json" \  -d '{    "status": "ONLINE"  }'
Empty
Empty

Bulk actions on users (admin only)

POST
/users/bulk

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/users/bulk" \  -H "Content-Type: application/json" \  -d '{    "action": "delete",    "selection": {      "mode": "ids"    }  }'
Empty
Empty

Get Meta app configuration (appId + configId, no secret)

GET
/whatsapp-accounts/meta-config

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/whatsapp-accounts/meta-config"
Empty

Save Meta app configuration to DB

PUT
/whatsapp-accounts/meta-config

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/whatsapp-accounts/meta-config" \  -H "Content-Type: application/json" \  -d '{    "appId": "string",    "configId": "string"  }'
Empty
Empty

List connected WhatsApp Business accounts

GET
/whatsapp-accounts

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/whatsapp-accounts"
Empty

Connect account via Meta Embedded Signup (exchange code for token)

POST
/whatsapp-accounts/connect

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

code*string

Response Body

curl -X post "https://loading/api/v1/whatsapp-accounts/connect" \  -H "Content-Type: application/json" \  -d '{    "code": "string"  }'
Empty
Empty

Connect account with manually provided credentials

POST
/whatsapp-accounts/connect-manual

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/whatsapp-accounts/connect-manual" \  -H "Content-Type: application/json" \  -d '{    "wabaId": "string",    "phoneNumberId": "string",    "accessToken": "string"  }'
Empty
Empty

Update account alias or access token

PATCH
/whatsapp-accounts/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/whatsapp-accounts/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
Empty

Disconnect a WhatsApp Business account

DELETE
/whatsapp-accounts/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/whatsapp-accounts/string"
Empty
Empty

Get live health and status info from Meta Graph API

GET
/whatsapp-accounts/{id}/health

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/whatsapp-accounts/string/health"
Empty

List account alerts for the current organization

GET
/whatsapp-accounts/alerts

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

acknowledged?string
Value in"true" | "false"

Response Body

curl -X get "https://loading/api/v1/whatsapp-accounts/alerts"
Empty

Count unacknowledged alerts

GET
/whatsapp-accounts/alerts/unread-count

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/whatsapp-accounts/alerts/unread-count"
Empty

Mark an alert as acknowledged

POST
/whatsapp-accounts/alerts/{id}/acknowledge

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/whatsapp-accounts/alerts/{id}/acknowledge"
Empty

Mark all alerts as acknowledged

POST
/whatsapp-accounts/alerts/acknowledge-all

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X post "https://loading/api/v1/whatsapp-accounts/alerts/acknowledge-all"
Empty

Stream AI autocomplete suggestion for agent writing

POST
/writing-assist/complete

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/writing-assist/complete" \  -H "Content-Type: application/json" \  -d '{    "conversationId": "string",    "partialText": "string"  }'
Empty
Empty
Empty

Get writing assist config (org-level + user preference)

GET
/config/writing-assist

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/config/writing-assist"
Empty

Update writing assist org config (admin only)

PUT
/config/writing-assist

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X put "https://loading/api/v1/config/writing-assist" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Toggle user writing assist preference

PATCH
/profile/writing-assist

Authorization

AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

enabled*boolean

Response Body

curl -X patch "https://loading/api/v1/profile/writing-assist" \  -H "Content-Type: application/json" \  -d '{    "enabled": true  }'
Empty

¿Esta página fue útil?