Skip to main content

LlamadaPro API (1.0.0)

Download OpenAPI specification:Download

License: ISC

API to consume LlamadaPro services (beta).

v2/calls

StartAgentCall

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
toPhoneNumber
required
string
fromPhoneNumber
string
objectives
required
Array of strings
userId
number <double>
object (AgentCallPersonality)

Interface representing agent call personality

localization
string (EmployeePersonalityLocalization)
Enum: "CL" "MX" "CO" "PE" "US"
constraints
Array of strings
object (ContactInfo)

Interface representing contact information

knowledgeBase
string
taskSteps
Array of strings
maxDurationSeconds
number <double>
silenceTimeoutSeconds
number <double>
customData
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

provider
string
Value: "vapi"
object (VapiProviderConfig)

Interface representing Vapi-specific configurations

Responses

Request samples

Content type
application/json
{
  • "toPhoneNumber": "string",
  • "fromPhoneNumber": "string",
  • "objectives": [
    ],
  • "userId": 0.1,
  • "personality": {
    },
  • "localization": "CL",
  • "constraints": [
    ],
  • "contactInfo": {
    },
  • "knowledgeBase": "string",
  • "taskSteps": [
    ],
  • "maxDurationSeconds": 0.1,
  • "silenceTimeoutSeconds": 0.1,
  • "customData": {
    },
  • "provider": "vapi",
  • "providerConfig": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "userId": 0.1,
  • "contactId": 0.1,
  • "opportunityId": 0.1,
  • "analysisConfigId": 0.1,
  • "teamId": 0.1,
  • "from": "string",
  • "to": "string",
  • "redirectedTo": "string",
  • "duration": 0.1,
  • "direction": "string",
  • "status": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "metadata": null,
  • "customData": null,
  • "agentScore": 0.1,
  • "category": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastUpdateSequence": 0.1
}

v1/tasks

GetTasks

List tasks with support for filtering, sorting, and pagination.

Returns a paginated list of tasks. Supports filtering by status, due dates, conversation, assignee, and other criteria.

Example usage: GET /api/v1/tasks?status=pending&limit=20&pageToken=Xde34567890

Authorizations:
NoneApiKeyAuth
query Parameters
limit
number <double>
pageToken
string
status
string
Enum: "completed" "cancelled" "scheduled" "overdue"
dueBefore
string <date-time>
dueAfter
string <date-time>
conversationId
number <double>
assignedToType
string
Enum: "user" "ai_employee"
assignedToId
string

Responses

Response samples

Content type
application/json
{
  • "nextPageToken": "string",
  • "totalCount": 0.1,
  • "items": [
    ]
}

CreateTask

Create a new task.

Creates a new task with the specified details. Tasks can be assigned to users and can include due dates, descriptions, and other metadata.

Example usage: POST /api/v1/tasks { "title": "Follow up with client", "objective": "Send proposal to client", "dueDate": "2024-02-15T10:00:00Z", "assignedTo": { "type": "user", "id": "123" } }

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
required
object
objective
required
string
required
object
required
object
dueDate
string or null <date-time>
status
string
Enum: "completed" "cancelled" "scheduled" "overdue"

Responses

Request samples

Content type
application/json
{
  • "context": {
    },
  • "objective": "string",
  • "createdBy": {
    },
  • "assignedTo": {
    },
  • "dueDate": "2019-08-24T14:15:22Z",
  • "status": "completed"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "context": {
    },
  • "objective": "string",
  • "createdBy": {
    },
  • "assignedTo": {
    },
  • "publishedAt": "2019-08-24T14:15:22Z",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "completedAt": "2019-08-24T14:15:22Z",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancellationReason": "string",
  • "status": "completed"
}

GetTask

Get a task by ID.

Retrieves a single task by its unique identifier, including all task details and assignment information.

Authorizations:
NoneApiKeyAuth
path Parameters
taskId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "context": {
    },
  • "objective": "string",
  • "createdBy": {
    },
  • "assignedTo": {
    },
  • "publishedAt": "2019-08-24T14:15:22Z",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "completedAt": "2019-08-24T14:15:22Z",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancellationReason": "string",
  • "status": "completed"
}

UpdateTask

Update an existing task.

Updates the details of an existing task. Only fields provided in the request body will be updated. This includes status changes, assignment updates, due date modifications, etc.

Example usage: PUT /api/v1/tasks/task_123 { "status": "completed", "objective": "Updated task objective" }

Authorizations:
NoneApiKeyAuth
path Parameters
taskId
required
string
Request Body schema: application/json
required
status
string
Enum: "completed" "cancelled" "scheduled" "overdue"
object
objective
string
object
publishedAt
string or null <date-time>
dueDate
string or null <date-time>
completedAt
string or null <date-time>
cancelledAt
string or null <date-time>
cancellationReason
string or null

Responses

Request samples

Content type
application/json
{
  • "status": "completed",
  • "context": {
    },
  • "objective": "string",
  • "assignedTo": {
    },
  • "publishedAt": "2019-08-24T14:15:22Z",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "completedAt": "2019-08-24T14:15:22Z",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancellationReason": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "context": {
    },
  • "objective": "string",
  • "createdBy": {
    },
  • "assignedTo": {
    },
  • "publishedAt": "2019-08-24T14:15:22Z",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "completedAt": "2019-08-24T14:15:22Z",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancellationReason": "string",
  • "status": "completed"
}

DeleteTask

Delete a task by ID.

Permanently deletes a task and all associated data. This action cannot be undone.

Authorizations:
NoneApiKeyAuth
path Parameters
taskId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "context": {
    },
  • "objective": "string",
  • "createdBy": {
    },
  • "assignedTo": {
    },
  • "publishedAt": "2019-08-24T14:15:22Z",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "completedAt": "2019-08-24T14:15:22Z",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancellationReason": "string",
  • "status": "completed"
}

v1/calls/recordings

GetRecording

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "callId": 0.1,
  • "providerId": "string",
  • "providerName": "string",
  • "callProviderId": "string",
  • "callProviderName": "string",
  • "url": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "duration": 0.1,
  • "dualChannel": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

LoadRecording

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
userId
required
number <double>
url
required
string
callTo
string
callFrom
string
callDirection
string (CallDirection)
Enum: "outgoing" "incoming"
callStartTime
string

Responses

Request samples

Content type
application/json
{
  • "userId": 0.1,
  • "url": "string",
  • "callTo": "string",
  • "callFrom": "string",
  • "callDirection": "outgoing",
  • "callStartTime": "string"
}

Response samples

Content type
application/json
{
  • "code": 0.1,
  • "error": "string",
  • "message": "string",
  • "details": {
    }
}

v1/conversations

BulkCreate

Create multiple conversations in a single request.

This endpoint allows you to create multiple conversations at once. Each conversation in the batch will be validated before processing. The response includes details about any validation issues encountered during processing.

If some conversations fail validation, the valid ones will still be processed.

Authorizations:
NoneNoneApiKeyAuth
Request Body schema: application/json
required
required
Array of BulkSingleConversationCreateParams (object) or any

Array of conversations to process, allowing unknown

Array
Any of
createdAt
string <date-time>
userId
number or null <double>

Reference to the user involved in the conversation

funnelId
required
number <double>

Reference to the funnel this conversation belongs to

funnelStatusId
number or null <double>

Optional reference to the current funnel status

archivedAt
string or null <date-time>

Optional timestamp when the conversation was archived

customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

contactId
number <double>

Optional explicit contact to attach; bypasses address-based disambiguation

object (BulkConversationContactCreateParams)

Contact information for creating a contact within a bulk conversation request

Responses

Request samples

Content type
application/json
{
  • "conversations": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "operationId": "string",
  • "report": {
    }
}

BulkUpdate

Update multiple conversations in a single request.

This endpoint allows you to update multiple existing conversations at once. Each conversation update in the batch will be validated before processing. The response includes details about any validation issues encountered during processing.

You must provide the ID for each conversation you want to update. If some conversations fail validation, the valid ones will still be processed.

Authorizations:
NoneApiKeyAuthNone
Request Body schema: application/json
required
required
Array of BulkSingleConversationUpdateParams (object) or any

Array of conversations to process, allowing unknown

Array
Any of
createdAt
string <date-time>
userId
number or null <double>

Reference to the user involved in the conversation

funnelStatusId
number or null <double>

Optional reference to the current funnel status

archivedAt
string or null <date-time>

Optional timestamp when the conversation was archived

customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

id
required
number <double>

ID of the conversation to update

object (BulkConversationContactUpdateParams)

Contact information for updating a contact within a bulk conversation request

Responses

Request samples

Content type
application/json
{
  • "conversations": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "operationId": "string",
  • "report": {
    }
}

Create

Create a single conversation.

This endpoint allows you to create a single conversation and returns the created conversation immediately with all associated data including contact information.

Use this endpoint when you need the created conversation immediately for subsequent operations.

Either contactId or contact information must be provided. If contact is provided, a new contact will be created or an existing contact will be matched based on the addresses and updated.

Authorizations:
NoneNoneApiKeyAuth
Request Body schema: application/json
required
createdAt
string <date-time>
userId
number or null <double>

Reference to the user involved in the conversation

funnelId
required
number <double>

Reference to the funnel this conversation belongs to

funnelStatusId
number or null <double>

Optional reference to the current funnel status

archivedAt
string or null <date-time>

Optional timestamp when the conversation was archived

customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

contactId
number <double>

Optional explicit contact to attach; bypasses address-based disambiguation

object (BulkConversationContactCreateParams)

Contact information for creating a contact within a bulk conversation request

Responses

Request samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "userId": 0.1,
  • "funnelId": 0.1,
  • "funnelStatusId": 0.1,
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "customFields": {
    },
  • "contactId": 0.1,
  • "contact": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "contactId": 0.1,
  • "userId": 0.1,
  • "funnelId": 0.1,
  • "funnelStatusId": 0.1,
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "channelSessions": [
    ],
  • "contacts": [
    ],
  • "customFields": {
    }
}

v1/contacts

GetContacts

List contacts with support for filtering, sorting, and pagination.

Returns a paginated list of contacts. Supports basic filtering, sorting and pagination via query parameters.

Note: The phone and email fields on the Contact object are legacy and will be removed in the future. Use the addresses array for all phone numbers and email addresses.

Example usage: GET /api/v1/contacts?filterBy=firstName:John;email:john@example.com&sortBy=createdAt=desc&pageSize=20&pageToken=Xde34567890

Authorizations:
NoneApiKeyAuth
query Parameters
filterBy
string
searchBy
string
sortBy
string
page
number <double>
pageSize
number <double>
pageToken
string

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "nextPageToken": "string",
  • "totalCount": 0.1
}

CreateContact

Create a new contact.

Creates a new contact. Custom fields and addresses can be included in the request body.

Note: The phone and email fields on the Contact object are legacy and will be removed in the future. Use the addresses array for all phone numbers and email addresses.

Example usage: POST /api/v1/contacts { "firstName": "Jane", "lastName": "Doe", "customFields": { "source": "web" }, "addresses": [ { "address": "+56912345678", "channelType": "PHONE" } ] }

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
userId
number or null <double>
customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

providerId
string or null
providerName
string or null
nationalId
string or null
firstName
string or null
lastName
string or null
email
string or null
Deprecated
phone
string or null
Deprecated
contactCompanyId
number or null <double>
companyPosition
string or null
metadata
any
createdAt
string <date-time>
Array of objects (Omit_NewContactAddress.contactId_)

Responses

Request samples

Content type
application/json
{
  • "userId": 0.1,
  • "customFields": {
    },
  • "providerId": "string",
  • "providerName": "string",
  • "nationalId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "contactCompanyId": 0.1,
  • "companyPosition": "string",
  • "metadata": null,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "addresses": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "nationalId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "userId": 0.1,
  • "contactCompanyId": 0.1,
  • "companyPosition": "string",
  • "metadata": null,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customFields": {
    },
  • "addresses": [
    ]
}

GetContact

Get a contact by ID.

Retrieves a single contact by its unique identifier, including all custom fields and addresses.

Note: The phone and email fields on the Contact object are legacy and will be removed in the future. Use the addresses array for all phone numbers and email addresses.

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "nationalId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "userId": 0.1,
  • "contactCompanyId": 0.1,
  • "companyPosition": "string",
  • "metadata": null,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customFields": {
    },
  • "addresses": [
    ]
}

UpdateContact

Update an existing contact.

Updates the details of an existing contact, including custom fields and addresses. Only fields provided in the request body will be updated.

Note: The phone and email fields on the Contact object are legacy and will be removed in the future. Use the addresses array for all phone numbers and email addresses.

Example usage: PUT /api/v1/contacts/123 { "firstName": "Janet", "customFields": { "priority": "high" } }

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>
Request Body schema: application/json
required
id
number <double>
tenantId
string
createdAt
string <date-time>
updatedAt
string <date-time>
userId
number or null <double>
customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

metadata
any
providerId
string or null
providerName
string or null
nationalId
string or null
firstName
string or null
lastName
string or null
email
string or null
Deprecated
phone
string or null
Deprecated
contactCompanyId
number or null <double>
companyPosition
string or null
Array of objects (Omit_NewContactAddress.contactId_)

Responses

Request samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "userId": 0.1,
  • "customFields": {
    },
  • "metadata": null,
  • "providerId": "string",
  • "providerName": "string",
  • "nationalId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "contactCompanyId": 0.1,
  • "companyPosition": "string",
  • "addresses": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "nationalId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "userId": 0.1,
  • "contactCompanyId": 0.1,
  • "companyPosition": "string",
  • "metadata": null,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customFields": {
    },
  • "addresses": [
    ]
}

DeleteContact

Delete a contact by ID.

Permanently deletes a contact and all associated custom fields and addresses.

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "nationalId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "userId": 0.1,
  • "contactCompanyId": 0.1,
  • "companyPosition": "string",
  • "metadata": null,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customFields": {
    },
  • "addresses": [
    ]
}

SearchContacts

Search contacts using advanced querying, sorting, search and pagination.

Performs a full search across all contacts. Supports advanced search parameters, sorting and pagination.

Note:

  • This endpoint may be rate limited to ensure system stability.
  • The phone and email fields on the Contact object are legacy and may be removed in the future. Use the addresses array for all phone numbers and email addresses.

Example usage: POST /api/v1/contacts/search { "filters": [ { "field": "addresses.address", "operator": "eq", "value": "+56912345678" }, { "field": "addresses.address", "operator": "contains", "value": "example.com" } ], "sort": [ { "field": "createdAt", "direction": "desc" } ], "size": 20, "pageToken": "Xde34567890", "includeTotalCount": "true" }

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
search
string
Array of objects (SearcherDocumentSearchFilter)
Array of objects (SearcherDocumentSearchSort)
size
number <double>
pageToken
string
includeArchived
boolean
includeTotalCount
boolean

Responses

Request samples

Content type
application/json
{
  • "search": "string",
  • "filters": [
    ],
  • "sort": [
    ],
  • "size": 0.1,
  • "pageToken": "string",
  • "includeArchived": true,
  • "includeTotalCount": true
}

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "nextPageToken": "string",
  • "totalCount": 0.1
}

v1/messaging/messages

GetMessage

Get a message by ID.

This endpoint allows you to retrieve a specific message using its unique identifier. The response includes all message details including content, sender/recipient info, signed attachments, and metadata.

Authorizations:
NoneApiKeyAuthNone
path Parameters
messageId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "conversationId": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "providerId": "string",
  • "contactId": 0.1,
  • "userId": "string",
  • "content": "string",
  • "status": "pending",
  • "direction": "inbound",
  • "channel": "whatsapp",
  • "sender": {
    },
  • "recipient": {
    },
  • "attachments": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "metadata": {
    },
  • "errors": [
    ],
  • "customFields": {
    },
  • "mediaProcessing": {
    }
}

v1/messaging/whatsapp/messages

CreateTemplateMessage

Send a WhatsApp template message.

Note: You must use either 'variables' OR 'components', but not both:

  • Use 'variables' for simple cases with only text variables in the body component
  • Use 'components' for full functionality including images, documents, currency, headers, and buttons

Important: While the API supports all WhatsApp template components, templates with some components (like images, documents, currency) are not yet supported using the LlamadaPro UI.

Phone numbers must be in E.164 format (e.g. +14155552671)

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
fromPhoneNumber
required
string
toPhoneNumber
required
string
userId
string
templateName
required
string
languageCode
required
string
Array of objects (WhatsAppTemplateMessageVariable)
Array of WhatsAppTemplateMessageHeaderComponent (object) or WhatsAppTemplateMessageBodyComponent (object) or WhatsAppTemplateMessageButtonComponent (object) (WhatsAppTemplateMessageComponent)
customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

Responses

Request samples

Content type
application/json
{
  • "fromPhoneNumber": "string",
  • "toPhoneNumber": "string",
  • "userId": "string",
  • "templateName": "string",
  • "languageCode": "string",
  • "variables": [
    ],
  • "components": [
    ],
  • "customFields": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "conversationId": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "providerId": "string",
  • "contactId": 0.1,
  • "userId": "string",
  • "content": "string",
  • "status": "pending",
  • "direction": "inbound",
  • "channel": "whatsapp",
  • "sender": {
    },
  • "recipient": {
    },
  • "attachments": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "metadata": {
    },
  • "errors": [
    ],
  • "customFields": {
    },
  • "mediaProcessing": {
    }
}

CreateMessage

Send a WhatsApp free form message.

Supports sending various types of messages including text, images, documents, etc. For media messages, provide a fileId from the files service.

Phone numbers must be in E.164 format (e.g. +14155552671)

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
fromPhoneNumber
required
string
toPhoneNumber
required
string
userId
string
content
required
string
type
required
string (WhatsAppMessageType)
Enum: "text" "image" "audio" "video" "document" "sticker" "location" "contacts" "interactive" "reaction" "button" "order" "system" "unknown" "unsupported" "media_placeholder"

WhatsApp message types.

Defines all supported message types that can be received from WhatsApp webhooks, including standard message types and special types for coexistence features.

customFields
object (Dictionary_unknown_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

fileId
string

Responses

Request samples

Content type
application/json
{
  • "fromPhoneNumber": "string",
  • "toPhoneNumber": "string",
  • "userId": "string",
  • "content": "string",
  • "type": "text",
  • "customFields": {
    },
  • "fileId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "conversationId": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "providerId": "string",
  • "contactId": 0.1,
  • "userId": "string",
  • "content": "string",
  • "status": "pending",
  • "direction": "inbound",
  • "channel": "whatsapp",
  • "sender": {
    },
  • "recipient": {
    },
  • "attachments": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "metadata": {
    },
  • "errors": [
    ],
  • "customFields": {
    },
  • "mediaProcessing": {
    }
}

UploadMedia

Upload media to WhatsApp Business API.

Supports two modes:

  1. File ID mode: Upload existing file from files service via fileId
  2. Direct upload mode: Upload raw file data via fileName, contentType, and content

Phone numbers must be in E.164 format (e.g. +14155552671)

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
fileName
string
contentType
string
fileId
string
fromPhoneNumber
required
string
content
string
tags
object (Dictionary_string_)

A TSOA-compatible dictionary type that replaces Record<string, T>. This type is used to ensure proper runtime validation with TSOA.

Responses

Request samples

Content type
application/json
{
  • "fileName": "string",
  • "contentType": "string",
  • "fileId": "string",
  • "fromPhoneNumber": "string",
  • "content": "string",
  • "tags": {
    }
}

Response samples

Content type
application/json
{
  • "url": "string",
  • "size": 0.1,
  • "fileName": "string",
  • "contentType": "string",
  • "fileId": "string",
  • "mediaId": "string",
  • "tags": {
    }
}

v1/custom-fields/list-options

GetCustomFieldListOptions

List options for a custom field definition with sorting and pagination.

Authorizations:
NoneApiKeyAuth
path Parameters
definitionId
required
number <double>
query Parameters
filterBy
string
searchBy
string
sortBy
string
page
number <double>
pageSize
number <double>
pageToken
string
tenantId
string

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "nextPageToken": "string",
  • "totalCount": 0.1
}

CreateCustomFieldListOption

Create a new option for a custom field definition.

Authorizations:
NoneApiKeyAuth
path Parameters
definitionId
required
number <double>
Request Body schema: application/json
required
definitionId
required
number <double>

Reference to the custom field definition this option belongs to

value
required
string

The actual value to be stored

label
string or null

Optional human-readable label for the value

description
string or null

Optional description of what this option represents

Responses

Request samples

Content type
application/json
{
  • "definitionId": 0.1,
  • "value": "string",
  • "label": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "definitionId": 0.1,
  • "value": "string",
  • "label": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

GetCustomFieldListOption

Get a specific option by ID, including its properties.

Authorizations:
NoneApiKeyAuth
path Parameters
definitionId
required
number <double>
optionId
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "definitionId": 0.1,
  • "value": "string",
  • "label": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

UpdateCustomFieldListOption

Update an option's display properties while preserving its other values.

Authorizations:
NoneApiKeyAuth
path Parameters
definitionId
required
number <double>
optionId
required
number <double>
Request Body schema: application/json
required
id
number <double>

Unique identifier for the list option

tenantId
string

Tenant identifier the custom field belongs to

definitionId
number <double>

Reference to the custom field definition this option belongs to

value
string

The actual value to be stored

label
string or null

Optional human-readable label for the value

description
string or null

Optional description of what this option represents

createdAt
string <date-time>

Timestamp of when the option was created

updatedAt
string <date-time>

Timestamp of when the option was last updated

Responses

Request samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "definitionId": 0.1,
  • "value": "string",
  • "label": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "definitionId": 0.1,
  • "value": "string",
  • "label": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

DeleteCustomFieldListOption

Delete an option from a custom field definition. Warning: Affects existing records using this option.

Authorizations:
NoneApiKeyAuth
path Parameters
definitionId
required
number <double>
optionId
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "definitionId": 0.1,
  • "value": "string",
  • "label": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

v1/custom-fields/definitions

GetCustomFieldDefinitions

List custom field definitions with support for filtering by entity type, sorting, and pagination.

Authorizations:
NoneApiKeyAuth
query Parameters
filterBy
string
searchBy
string
sortBy
string
page
number <double>
pageSize
number <double>
pageToken
string
tenantId
string

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "nextPageToken": "string",
  • "totalCount": 0.1
}

CreateCustomFieldDefinition

Create a new custom field definition with specified type.

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
description
string or null

Optional description of the field's purpose

entityType
required
string (CustomFieldEntityType)
Enum: "CONTACT" "COMPANY" "FUNNEL_CONVERSATION" "FUNNEL_CHANNEL_SESSION" "PRODUCT"

Represents the entity types that custom fields can have.

fieldKey
required
string

Unique key/identifier for the field

fieldLabel
string or null

Optional human-readable label for the field

fieldType
required
string (CustomFieldType)
Enum: "STRING" "NUMBER" "DATE" "BOOLEAN" "LIST" "FILE"

Represents the supported data types for custom fields.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "entityType": "CONTACT",
  • "fieldKey": "string",
  • "fieldLabel": "string",
  • "fieldType": "STRING"
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "entityType": "CONTACT",
  • "fieldKey": "string",
  • "fieldLabel": "string",
  • "fieldType": "STRING",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

GetCustomFieldDefinition

Get a custom field definition by ID, including its properties.

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "entityType": "CONTACT",
  • "fieldKey": "string",
  • "fieldLabel": "string",
  • "fieldType": "STRING",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

UpdateCustomFieldDefinition

Update a custom field definition's properties while preserving existing data.

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>
Request Body schema: application/json
required
id
number <double>

Unique identifier for the custom field definition

tenantId
string

Tenant identifier the custom field belongs to

entityType
string (CustomFieldEntityType)
Enum: "CONTACT" "COMPANY" "FUNNEL_CONVERSATION" "FUNNEL_CHANNEL_SESSION" "PRODUCT"

Represents the entity types that custom fields can have.

fieldKey
string

Unique key/identifier for the field

fieldLabel
string or null

Optional human-readable label for the field

fieldType
string (CustomFieldType)
Enum: "STRING" "NUMBER" "DATE" "BOOLEAN" "LIST" "FILE"

Represents the supported data types for custom fields.

description
string or null

Optional description of the field's purpose

createdAt
string <date-time>

Timestamp of when the definition was created

updatedAt
string <date-time>

Timestamp of when the definition was last updated

Responses

Request samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "entityType": "CONTACT",
  • "fieldKey": "string",
  • "fieldLabel": "string",
  • "fieldType": "STRING",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "entityType": "CONTACT",
  • "fieldKey": "string",
  • "fieldLabel": "string",
  • "fieldType": "STRING",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

DeleteCustomFieldDefinition

Delete a custom field definition. If force=true, deletes all associated values. This action is permanent and affects all entities using this field.

Authorizations:
NoneApiKeyAuth
path Parameters
id
required
number <double>
query Parameters
force
boolean

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "entityType": "CONTACT",
  • "fieldKey": "string",
  • "fieldLabel": "string",
  • "fieldType": "STRING",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

v1/calls

StartBridgeCall

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
from
string
to
required
string
object (ProviderData)
callCustomData
object (CallCustomData)

Responses

Request samples

Content type
application/json
{
  • "to": "+1234567890",
  • "callCustomData": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "userId": 0.1,
  • "contactId": 0.1,
  • "opportunityId": 0.1,
  • "analysisConfigId": 0.1,
  • "teamId": 0.1,
  • "from": "string",
  • "to": "string",
  • "redirectedTo": "string",
  • "duration": 0.1,
  • "direction": "string",
  • "status": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "metadata": null,
  • "customData": null,
  • "agentScore": 0.1,
  • "category": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastUpdateSequence": 0.1
}

StartAgentCall

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
voiceAgentId
required
number <double>
to
required
string
contextVariables
required
object
customData
object (CallCustomData)

Responses

Request samples

Content type
application/json
{
  • "voiceAgentId": 123,
  • "to": "+1234567890",
  • "contextVariables": {
    },
  • "customData": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "userId": 0.1,
  • "contactId": 0.1,
  • "opportunityId": 0.1,
  • "analysisConfigId": 0.1,
  • "teamId": 0.1,
  • "from": "string",
  • "to": "string",
  • "redirectedTo": "string",
  • "duration": 0.1,
  • "direction": "string",
  • "status": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "metadata": null,
  • "customData": null,
  • "agentScore": 0.1,
  • "category": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastUpdateSequence": 0.1
}

CreateCall

Authorizations:
NoneApiKeyAuth
Request Body schema: application/json
required
status
required
string
userId
required
number or null <double>
metadata
required
any
providerId
string
providerName
string
customData
any
funnelConversationId
number <double>
sessionId
number <double>
from
required
string
to
required
string
redirectedTo
string or null
duration
required
number or null <double>
direction
required
string
startTime
required
string <date-time>
teamId
number or null <double>

Responses

Request samples

Content type
application/json
{
  • "status": "string",
  • "userId": 0.1,
  • "metadata": null,
  • "providerId": "string",
  • "providerName": "string",
  • "customData": null,
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "from": "string",
  • "to": "string",
  • "redirectedTo": "string",
  • "duration": 0.1,
  • "direction": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "teamId": 0.1
}

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "userId": 0.1,
  • "contactId": 0.1,
  • "opportunityId": 0.1,
  • "analysisConfigId": 0.1,
  • "teamId": 0.1,
  • "from": "string",
  • "to": "string",
  • "redirectedTo": "string",
  • "duration": 0.1,
  • "direction": "string",
  • "status": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "metadata": null,
  • "customData": null,
  • "agentScore": 0.1,
  • "category": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastUpdateSequence": 0.1
}

GetCall

Authorizations:
NoneApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "funnelConversationId": 0.1,
  • "sessionId": 0.1,
  • "userId": 0.1,
  • "contactId": 0.1,
  • "opportunityId": 0.1,
  • "analysisConfigId": 0.1,
  • "teamId": 0.1,
  • "from": "string",
  • "to": "string",
  • "redirectedTo": "string",
  • "duration": 0.1,
  • "direction": "string",
  • "status": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "metadata": null,
  • "customData": null,
  • "agentScore": 0.1,
  • "category": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastUpdateSequence": 0.1
}

GetCallTranscription

Authorizations:
NoneApiKeyAuth
path Parameters
callId
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "providerId": "string",
  • "providerName": "string",
  • "recordingId": 0.1,
  • "url": "string",
  • "text": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

GetCallRecording

Authorizations:
NoneApiKeyAuth
path Parameters
callId
required
number <double>

Responses

Response samples

Content type
application/json
{
  • "id": 0.1,
  • "tenantId": "string",
  • "callId": 0.1,
  • "providerId": "string",
  • "providerName": "string",
  • "callProviderId": "string",
  • "callProviderName": "string",
  • "url": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "duration": 0.1,
  • "dualChannel": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}