Skip to main content
POST
This endpoint allows you to send messages to an AI agent and receive responses. It supports:
  • Simple text queries
  • File attachments (documents, images, audio)
  • Real-time response streaming
  • Continuation of existing conversations
  • Contact association (CRM)

Path

string
required
The ID of the agent you want to query (CUID format).

Body

Required

string
required
The user’s message or question.

Optional - Basic Configuration

boolean
default:"false"
If true, responds with Server-Sent Events in real-time.
string
ID to continue an existing conversation. Auto-generated if not provided.
string
Unique ID of the visitor/user. Auto-generated if not provided.
string
default:"api"
Source channel for the message. Valid values: api, dashboard, website, form, whatsapp, telegram, slack, meta, crisp, zapier, mail, mercadolibre, agent_builder, chatwoot, crmchatsappai.
string
Additional context for the AI (e.g., specific instructions).
string
Overrides the agent’s system prompt for this request only. The agent’s saved configuration in the database is not modified.Use this to test different prompt variants, run evaluations, or inject custom instructions without editing the agent from the dashboard.
An empty string "" is treated as no override — the agent’s saved system prompt is used instead. If both systemPrompt and promptType: "raw" are provided, promptType: "raw" takes precedence.

Optional - Webhook (Conversational Mode)

string
URL to receive the AI response asynchronously. Required when the agent has conversational mode enabled and channel is api.The webhook URL must:
  • Be a valid URL format
  • Use http:// or https:// protocol
  • Be reachable (the server validates connectivity)
  • Not point to localhost or private IPs in production (SSRF protection)

Optional - File Attachments

array
List of file attachments.

Optional - Contact (CRM)

object
Contact data to associate with the conversation.

Response (without streaming)

string
The agent’s response.
array
Sources used to generate the response.
string
ID of the response message.
string
ID of the conversation (save this to continue the conversation).
string
ID of the visitor.
boolean
Whether the agent requested human intervention.
string
Conversation status (e.g., UNRESOLVED, RESOLVED).
object
Token usage and cost information.
array
List of approvals for tool executions (if any).

Response (Conversational Mode with Webhook)

When the agent has conversational mode enabled and you provide a webhookUrl, the endpoint returns immediately with a queued status:
string
Always "queued" for webhook mode.
string
ID of the conversation.
string
ID of the visitor.
string
ID of the user’s input message.
string
Confirmation message indicating the request was queued.
string
The webhook URL where the response will be sent.

Webhook Payload

After processing (typically 8 seconds delay to batch multiple messages), a POST request is sent to your webhookUrl with the following payload:
Webhook Headers:
  • Content-Type: application/json
  • X-Laburen-Event: agent.response
In conversational mode, long responses are automatically split into multiple messages (maximum 3 for most channels, up to 10 for Instagram/Meta).

Streaming Response

When streaming: true, the endpoint responds with Server-Sent Events:
Events:
  • answer: Partial response text (concatenate to build the full answer)
  • endpoint_response: Full response object (JSON) with all metadata

Error Responses

Streaming Example (JavaScript)

Webhook Example (Conversational Mode)

When your agent has conversational mode enabled, use webhookUrl to receive the AI response asynchronously:
cURL
Immediate Response:
Webhook Receiver Example (Node.js/Express):