CX Bot & Inbox API
WhatsApp CX Bot and Multi-user Inbox API for ENI Networks
Overview KPIs and charts (requiere rol Admin)
In: header
Query Parameters
date-timedate-time"America/Mexico_City"true | falsetrue | falseResponse Body
curl -X get "https://loading/api/v1/analytics/overview"Conversation volume, response times, categories (requiere rol Admin)
In: header
Query Parameters
date-timedate-time"America/Mexico_City"true | falsetrue | falseResponse Body
curl -X get "https://loading/api/v1/analytics/conversations"Per-agent performance metrics (requiere rol Admin)
In: header
Query Parameters
date-timedate-time"America/Mexico_City"true | falseResponse Body
curl -X get "https://loading/api/v1/analytics/agents"Bot performance metrics (requiere rol Admin)
In: header
Query Parameters
date-timedate-time"America/Mexico_City"true | falseResponse Body
curl -X get "https://loading/api/v1/analytics/bot"Campaign delivery funnel and costs (requiere rol Admin)
In: header
Query Parameters
date-timedate-time"America/Mexico_City"true | falseResponse Body
curl -X get "https://loading/api/v1/analytics/campaigns"List API keys for the organization (requiere rol Admin)
In: header
Response Body
curl -X get "https://loading/api/v1/api-keys"Create a new API key (requiere rol Admin). Returns the full key ONCE.
In: header
Response Body
curl -X post "https://loading/api/v1/api-keys"curl -X patch "https://loading/api/v1/api-keys/{id}"Delete an API key permanently (requiere rol Admin)
In: header
curl -X delete "https://loading/api/v1/api-keys/{id}"Create a campaign (bulk template send)
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" } ] }'curl -X get "https://loading/api/v1/campaigns"curl -X get "https://loading/api/v1/campaigns/stats/global"Get real costs from Meta per template and WABA total (last 90 days)
In: header
Response Body
curl -X get "https://loading/api/v1/campaigns/meta-costs"Get calculated real cost for a campaign based on Meta analytics
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/campaigns/string/meta-cost"Get campaign detail with paginated recipients
In: header
Path Parameters
Query Parameters
125"all" | "PENDING" | "SENT" | "DELIVERED" | "READ" | "FAILED" | "REPLIED"Response Body
curl -X get "https://loading/api/v1/campaigns/string"Get WhatsApp phone number status and quality rating (requiere rol Admin)
In: header
Response Body
curl -X get "https://loading/api/v1/campaigns/phone-status"Export campaign recipients as CSV
In: header
Path Parameters
Query Parameters
"all" | "PENDING" | "SENT" | "DELIVERED" | "READ" | "FAILED" | "REPLIED"Response Body
text/csv
curl -X get "https://loading/api/v1/campaigns/string/export""string"Get aggregated recipient stats for a campaign
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/campaigns/string/stats"Estimate campaign cost before sending
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" } ] }'curl -X get "https://loading/api/v1/campaigns/pricing"Get paginated survey responses for a SURVEY campaign (requiere rol Admin)
In: header
Path Parameters
Query Parameters
150Response Body
curl -X get "https://loading/api/v1/campaigns/string/survey-results"Export survey responses as CSV for a SURVEY campaign (requiere rol Admin)
In: header
Path Parameters
Response Body
text/csv
curl -X get "https://loading/api/v1/campaigns/string/survey-results/export""string"List/search contacts
In: header
Query Parameters
50Response Body
curl -X get "https://loading/api/v1/contacts"Get contact by WhatsApp ID
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/contacts/string"Update contact name/category (on conversations) and/or lightweight profile (alias/notes/customFields)
In: header
Path Parameters
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 '{}'List conversations with filters
In: header
Query Parameters
"BOT_HANDLING" | "HUMAN_HANDLING" | "OPEN" | "WAITING_FOR_CUSTOMER" | "CLOSED"When true, search also matches message bodies (not just contact)
50When true, only conversations flagged for follow-up
Filter to conversations whose 24h window expires within N minutes
Comma-separated tag IDs to filter by
Sub-filter pill (unread = unreadCount > 0, needs_action = last message from customer)
"unread" | "needs_action" | "needs_action_window_open"Sort order for conversations
"newest""newest" | "oldest" | "waiting_longest" | "created_newest" | "created_oldest"Response Body
curl -X get "https://loading/api/v1/conversations"curl -X get "https://loading/api/v1/conversations/categories"Distinct categories with conversation counts (ADMIN) — raw values, for the merge tool
In: header
Response Body
curl -X get "https://loading/api/v1/conversations/categories/counts"Merge near-duplicate categories into a canonical one (ADMIN)
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" }'Get sub-filter counts (all, unread, needs_action)
In: header
Query Parameters
Response Body
curl -X get "https://loading/api/v1/conversations/counts"Bulk re-classify and re-route open conversations (ADMIN)
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" }'Re-classify a single conversation using AI
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/re-classify"Re-evaluate routing rules and reassign team
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/re-route"curl -X get "https://loading/api/v1/conversations/string"Update conversation (status, assignment, etc.)
In: header
Path Parameters
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 '{}'Agent takes over conversation from bot
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/takeover"Generate a handoff summary preview for agent review
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/generate-handoff-summary"Return conversation to bot handling
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
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 '{}'curl -X post "https://loading/api/v1/conversations/string/read"Assign conversation to an agent
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
curl -X post "https://loading/api/v1/conversations/string/assign" \ -H "Content-Type: application/json" \ -d '{ "userId": "string" }'Unassign conversation (release it for other agents)
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/unassign"Resolve conversation (mark as resolved)
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/resolve"Check whether a closed/resolved conversation can be reopened
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/conversations/string/reopen-status"Reopen a closed/resolved conversation
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/conversations/string/reopen"Mark conversation for follow-up
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
curl -X post "https://loading/api/v1/conversations/string/follow-up" \ -H "Content-Type: application/json" \ -d '{}'Remove follow-up from conversation
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/conversations/string/follow-up"Get sibling conversations metadata for the same contact (cross-conversation history)
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/conversations/string/timeline"Get aggregated contact history (other conversations from the same contact)
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/conversations/string/contact-history"curl -X get "https://loading/api/v1/health"curl -X get "https://loading/api/v1/ready"Get messages for a conversation (cursor-based pagination)
In: header
Path Parameters
Query Parameters
50Response Body
curl -X get "https://loading/api/v1/conversations/string/messages"Send a message in a conversation
In: header
Path Parameters
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" }'Send a media message (image, video, audio, document)
In: header
Path Parameters
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"Send a reaction to a message via WhatsApp
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
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" }'Retry media download for a message with failed/missing media
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/messages/string/retry-media"Toggle message visibility (hide/unhide)
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/messages/string/toggle-hide"curl -X get "https://loading/api/v1/quick-replies"Create a quick reply (requiere rol Admin)
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" }'List all quick replies including inactive (requiere rol Admin)
In: header
Response Body
curl -X get "https://loading/api/v1/quick-replies/all"Update a quick reply (requiere rol Admin)
In: header
Path Parameters
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 '{}'Delete a quick reply (requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/quick-replies/string"Bulk actions on quick replies (requiere rol Admin)
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" } }'Upload media attachment for a quick reply (requiere rol Admin)
In: header
Path Parameters
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
curl -X post "https://loading/api/v1/quick-replies/string/media"Remove media from a quick reply (requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/quick-replies/string/media"curl -X get "https://loading/api/v1/tags"curl -X post "https://loading/api/v1/tags"curl -X get "https://loading/api/v1/tags/colors"curl -X put "https://loading/api/v1/tags/{id}"curl -X delete "https://loading/api/v1/tags/{id}"curl -X post "https://loading/api/v1/conversations/{conversationId}/tags"curl -X delete "https://loading/api/v1/conversations/{conversationId}/tags/{tagId}"List teams
In: header
Query Parameters
falseResponse Body
curl -X get "https://loading/api/v1/teams"Create a team (requiere rol Admin)
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" }'Get team detail with members
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/teams/string"Update team properties (requiere rol Admin)
In: header
Path Parameters
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 '{}'Deactivate a team (soft delete, requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/teams/string"Add a member to a team (requiere rol Admin)
In: header
Path Parameters
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" }'Update a team member's role (requiere rol Admin)
In: header
Path Parameters
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" }'Remove a member from a team (requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/teams/string/members/string"Get team schedule (working hours)
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/teams/string/schedule"Create or update team schedule (requiere rol Admin)
In: header
Path Parameters
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" }'Check if team is currently in working hours
In: header
Path Parameters
Response Body
curl -X get "https://loading/api/v1/teams/string/schedule/status"curl -X get "https://loading/api/v1/templates/string/header-media"curl -X get "https://loading/api/v1/templates"Create a WhatsApp template and submit to Meta for approval
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": [ {} ] }'Save a template locally as DRAFT without submitting to Meta
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": [ {} ] }'Update a DRAFT template locally
In: header
Path Parameters
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": [ {} ] }'Assign or change a template's folder (local metadata, requiere rol Admin)
In: header
Path Parameters
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" }'Set or change a template's default inbox category (local metadata, requiere rol Admin)
In: header
Path Parameters
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" }'Submit a DRAFT template to Meta for approval
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/templates/string/submit"Edit a template's components in Meta and update in DB
In: header
Path Parameters
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": [ {} ] }'Soft-delete a template (mark as REMOVED)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/templates/string"Send a template message to a conversation
In: header
Path Parameters
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" }'Send a template message to an arbitrary phone number (creates or reuses conversation)
In: header
Path Parameters
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" }'Upload media for template header (returns file handle for Meta)
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"curl -X post "https://loading/api/v1/templates/sync"Duplicate a template as a DRAFT
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/templates/string/duplicate"Delete template from Meta and mark as REMOVED in DB (requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/templates/string/meta"Bulk actions on templates (requiere rol Admin)
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" } }'curl -X get "https://loading/api/v1/users"Create a new user (requiere rol Admin)
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" }'Update a user (requiere rol Admin)
In: header
Path Parameters
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 '{}'Soft-delete a user (requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X delete "https://loading/api/v1/users/string"Resend invitation email to a user (requiere rol Admin)
In: header
Path Parameters
Response Body
curl -X post "https://loading/api/v1/users/string/resend-invite"Update user online status
In: header
Path Parameters
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" }'Bulk actions on users (requiere rol Admin)
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" } }'¿Esta página fue útil?