CX Inbox

CX Bot & Inbox API

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

Overview KPIs and charts (requiere rol Admin)

GET
/analytics/overview

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

from?string
Formatdate-time
to?string
Formatdate-time
timezone?string
Default"America/Mexico_City"
force?string
Value intrue | false
excludeIncomplete?string
Value intrue | false

Response Body

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

Conversation volume, response times, categories (requiere rol Admin)

GET
/analytics/conversations

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

from?string
Formatdate-time
to?string
Formatdate-time
timezone?string
Default"America/Mexico_City"
force?string
Value intrue | false
excludeIncomplete?string
Value intrue | false

Response Body

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

Per-agent performance metrics (requiere rol Admin)

GET
/analytics/agents

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

from?string
Formatdate-time
to?string
Formatdate-time
timezone?string
Default"America/Mexico_City"
force?string
Value intrue | false

Response Body

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

Bot performance metrics (requiere rol Admin)

GET
/analytics/bot

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

from?string
Formatdate-time
to?string
Formatdate-time
timezone?string
Default"America/Mexico_City"
force?string
Value intrue | false

Response Body

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

Campaign delivery funnel and costs (requiere rol Admin)

GET
/analytics/campaigns

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

from?string
Formatdate-time
to?string
Formatdate-time
timezone?string
Default"America/Mexico_City"
force?string
Value intrue | false

Response Body

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

List API keys for the organization (requiere rol Admin)

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 (requiere rol Admin). 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 (requiere rol Admin)

PATCH
/api-keys/{id}

Authorization

AuthorizationBearer <token>

In: header

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

Delete an API key permanently (requiere rol Admin)

DELETE
/api-keys/{id}

Authorization

AuthorizationBearer <token>

In: header

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

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

List all campaigns

GET
/campaigns

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/campaigns"
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" | "REPLIED"

Response Body

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

Get WhatsApp phone number status and quality rating (requiere rol Admin)

GET
/campaigns/phone-status

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X get "https://loading/api/v1/campaigns/phone-status"
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

Get paginated survey responses for a SURVEY campaign (requiere rol Admin)

GET
/campaigns/{id}/survey-results

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Query Parameters

page?integer
Default1
pageSize?integer
Default50

Response Body

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

Export survey responses as CSV for a SURVEY campaign (requiere rol Admin)

GET
/campaigns/{id}/survey-results/export

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

text/csv

curl -X get "https://loading/api/v1/campaigns/string/survey-results/export"
"string"
Empty
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/category (on conversations) and/or lightweight profile (alias/notes/customFields)

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
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
searchInMessages?boolean

When true, search also matches message bodies (not just contact)

cursor?string
limit?integer
Default50
teamId?string
category?string
origin?string
followUp?boolean

When true, only conversations flagged for follow-up

windowExpiresWithin?integer

Filter to conversations whose 24h window expires within N minutes

tagIds?string

Comma-separated tag IDs to filter by

subFilter?string

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

Value in"unread" | "needs_action" | "needs_action_window_open"
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

Distinct categories with conversation counts (ADMIN) — raw values, for the merge tool

GET
/conversations/categories/counts

Authorization

AuthorizationBearer <token>

In: header

Response Body

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

Merge near-duplicate categories into a canonical one (ADMIN)

POST
/conversations/categories/merge

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/conversations/categories/merge" \  -H "Content-Type: application/json" \  -d '{    "sources": [      "string"    ],    "target": "string"  }'
Empty

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

GET
/conversations/counts

Authorization

AuthorizationBearer <token>

In: header

Query Parameters

status?string
assignedTo?string
search?string
teamId?string
category?string
origin?string
followUp?boolean
windowExpiresWithin?integer

Response Body

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

Bulk re-classify and re-route open conversations (ADMIN)

POST
/conversations/re-classify

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/conversations/re-classify" \  -H "Content-Type: application/json" \  -d '{    "scope": "unassigned"  }'
Empty
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
Empty

Re-evaluate routing rules and reassign team

POST
/conversations/{id}/re-route

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X patch "https://loading/api/v1/conversations/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
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
Empty
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
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
Empty
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

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/conversations/string/assign" \  -H "Content-Type: application/json" \  -d '{    "userId": "string"  }'
Empty
Empty
Empty
Empty

Unassign conversation (release it for other agents)

POST
/conversations/{id}/unassign

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Resolve conversation (mark as resolved)

POST
/conversations/{id}/resolve

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Check whether a closed/resolved conversation can be reopened

GET
/conversations/{id}/reopen-status

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Reopen a closed/resolved conversation

POST
/conversations/{id}/reopen

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Mark conversation for follow-up

POST
/conversations/{id}/follow-up

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

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/string/follow-up" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty

Remove follow-up from conversation

DELETE
/conversations/{id}/follow-up

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X delete "https://loading/api/v1/conversations/string/follow-up"
Empty

Get sibling conversations metadata for the same contact (cross-conversation history)

GET
/conversations/{id}/timeline

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Get aggregated contact history (other conversations from the same contact)

GET
/conversations/{id}/contact-history

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

curl -X get "https://loading/api/v1/conversations/string/contact-history"
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

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
Empty
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

Emoji to react with (empty string removes the reaction)

Response Body

curl -X post "https://loading/api/v1/messages/string/react" \  -H "Content-Type: application/json" \  -d '{    "emoji": "string"  }'
Empty
Empty
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
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
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 (requiere rol Admin)

POST
/quick-replies

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" \  -H "Content-Type: application/json" \  -d '{    "shortcut": "string",    "label": "string",    "text": "string"  }'
Empty
Empty

List all quick replies including inactive (requiere rol Admin)

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 (requiere rol Admin)

PATCH
/quick-replies/{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/quick-replies/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
Empty
Empty

Delete a quick reply (requiere rol Admin)

DELETE
/quick-replies/{id}

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Bulk actions on quick replies (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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

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

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

Update a tag

PUT
/tags/{id}

Authorization

AuthorizationBearer <token>

In: header

Response Body

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

Delete a tag (cascade removes from conversations)

DELETE
/tags/{id}

Authorization

AuthorizationBearer <token>

In: header

Response Body

curl -X delete "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 (requiere rol Admin)

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 (requiere rol Admin)

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, requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

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

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

Assign or change a template's folder (local metadata, requiere rol Admin)

PATCH
/templates/{id}/folder

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/templates/string/folder" \  -H "Content-Type: application/json" \  -d '{    "folder": "string"  }'
Empty
Empty

Set or change a template's default inbox category (local metadata, requiere rol Admin)

PATCH
/templates/{id}/inbox-category

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/templates/string/inbox-category" \  -H "Content-Type: application/json" \  -d '{    "inboxCategory": "string"  }'
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

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

PUT
/templates/{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 put "https://loading/api/v1/templates/string" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "category": "MARKETING",    "components": [      {}    ]  }'
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

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

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X post "https://loading/api/v1/templates/upload-media" \  -F file="string" \  -F headerType="IMAGE"
Empty
Empty

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 (requiere rol Admin)

DELETE
/templates/{id}/meta

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

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

Bulk actions on templates (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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 (requiere rol Admin)

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

¿Esta página fue útil?