Chat
Send message
Sends a message to an existing conversation and receives the bot response.
POST
/
v1
/
conversations
/
{sessionId}
/
messages
Send message
curl --request POST \
--url https://quick.bot/api/v1/conversations/{sessionId}/messages \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"type": "text",
"text": "<string>",
"value": "<string>",
"attachedFileUrls": [
"<string>"
],
"createdAt": 123
},
"messageMetadata": {
"inputBlockId": "<string>",
"inputType": "<string>"
},
"clientLogs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
]
}
'import requests
url = "https://quick.bot/api/v1/conversations/{sessionId}/messages"
payload = {
"message": {
"type": "text",
"text": "<string>",
"value": "<string>",
"attachedFileUrls": ["<string>"],
"createdAt": 123
},
"messageMetadata": {
"inputBlockId": "<string>",
"inputType": "<string>"
},
"clientLogs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
type: 'text',
text: '<string>',
value: '<string>',
attachedFileUrls: ['<string>'],
createdAt: 123
},
messageMetadata: {inputBlockId: '<string>', inputType: '<string>'},
clientLogs: [{status: '<string>', description: '<string>', details: '<unknown>'}]
})
};
fetch('https://quick.bot/api/v1/conversations/{sessionId}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://quick.bot/api/v1/conversations/{sessionId}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'message' => [
'type' => 'text',
'text' => '<string>',
'value' => '<string>',
'attachedFileUrls' => [
'<string>'
],
'createdAt' => 123
],
'messageMetadata' => [
'inputBlockId' => '<string>',
'inputType' => '<string>'
],
'clientLogs' => [
[
'status' => '<string>',
'description' => '<string>',
'details' => '<unknown>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://quick.bot/api/v1/conversations/{sessionId}/messages"
payload := strings.NewReader("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"value\": \"<string>\",\n \"attachedFileUrls\": [\n \"<string>\"\n ],\n \"createdAt\": 123\n },\n \"messageMetadata\": {\n \"inputBlockId\": \"<string>\",\n \"inputType\": \"<string>\"\n },\n \"clientLogs\": [\n {\n \"status\": \"<string>\",\n \"description\": \"<string>\",\n \"details\": \"<unknown>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://quick.bot/api/v1/conversations/{sessionId}/messages")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"value\": \"<string>\",\n \"attachedFileUrls\": [\n \"<string>\"\n ],\n \"createdAt\": 123\n },\n \"messageMetadata\": {\n \"inputBlockId\": \"<string>\",\n \"inputType\": \"<string>\"\n },\n \"clientLogs\": [\n {\n \"status\": \"<string>\",\n \"description\": \"<string>\",\n \"details\": \"<unknown>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://quick.bot/api/v1/conversations/{sessionId}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"value\": \"<string>\",\n \"attachedFileUrls\": [\n \"<string>\"\n ],\n \"createdAt\": 123\n },\n \"messageMetadata\": {\n \"inputBlockId\": \"<string>\",\n \"inputType\": \"<string>\"\n },\n \"clientLogs\": [\n {\n \"status\": \"<string>\",\n \"description\": \"<string>\",\n \"details\": \"<unknown>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"actor": {
"role": "host",
"name": "<string>",
"avatarUrl": "<string>"
},
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"type": "markdown",
"markdown": "<string>"
}
}
],
"input": {
"id": "<string>",
"type": "text input",
"outgoingEdgeId": "<string>",
"options": {
"labels": {
"placeholder": "<string>",
"button": "<string>"
},
"variableId": "<string>",
"audioClip": {
"isEnabled": true,
"saveVariableId": "<string>"
},
"attachments": {
"isEnabled": true,
"saveVariableId": "<string>"
}
},
"prefilledValue": "<string>",
"runtimeOptions": {
"paymentIntentSecret": "<string>",
"amountLabel": "<string>",
"publicKey": "<string>"
}
},
"clientSideActions": [
{
"type": "scriptToExecute",
"scriptToExecute": {
"content": "<string>",
"args": [
{
"id": "<string>",
"value": "<string>"
}
],
"isCode": true
},
"lastBubbleBlockId": "<string>",
"expectsDedicatedReply": true
}
],
"logs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
],
"progress": 123,
"guestDisplayText": "<string>"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Path Parameters
The session ID you got from the POST /v1/conversations response.
Body
application/json
Response
Successful response
Show child attributes
Show child attributes
messages
(Text · object | Image · object | Video · object | Audio · object | Embed · object)[]
required
- Text
- Image
- Video
- Audio
- Embed
Show child attributes
Show child attributes
- Text
- Buttons
- Email
- Number
- URL
- Phone number
- Date
- Payment
- MercadoPago Payment
- Rating
- File
Show child attributes
Show child attributes
clientSideActions
(Script to execute · object | Redirect · object | Wait · object | Set variable · object | Inject start props · object | Execute code · object)[]
Actions to execute on the client side
- Script to execute
- Redirect
- Wait
- Set variable
- Inject start props
- Execute code
Show child attributes
Show child attributes
Logs that were saved during the last execution
Show child attributes
Show child attributes
If progress bar is enabled, this field will return a number between 0 and 100 indicating the current progress based on the longest remaining path of the flow.
⌘I
Send message
curl --request POST \
--url https://quick.bot/api/v1/conversations/{sessionId}/messages \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"type": "text",
"text": "<string>",
"value": "<string>",
"attachedFileUrls": [
"<string>"
],
"createdAt": 123
},
"messageMetadata": {
"inputBlockId": "<string>",
"inputType": "<string>"
},
"clientLogs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
]
}
'import requests
url = "https://quick.bot/api/v1/conversations/{sessionId}/messages"
payload = {
"message": {
"type": "text",
"text": "<string>",
"value": "<string>",
"attachedFileUrls": ["<string>"],
"createdAt": 123
},
"messageMetadata": {
"inputBlockId": "<string>",
"inputType": "<string>"
},
"clientLogs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
type: 'text',
text: '<string>',
value: '<string>',
attachedFileUrls: ['<string>'],
createdAt: 123
},
messageMetadata: {inputBlockId: '<string>', inputType: '<string>'},
clientLogs: [{status: '<string>', description: '<string>', details: '<unknown>'}]
})
};
fetch('https://quick.bot/api/v1/conversations/{sessionId}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://quick.bot/api/v1/conversations/{sessionId}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'message' => [
'type' => 'text',
'text' => '<string>',
'value' => '<string>',
'attachedFileUrls' => [
'<string>'
],
'createdAt' => 123
],
'messageMetadata' => [
'inputBlockId' => '<string>',
'inputType' => '<string>'
],
'clientLogs' => [
[
'status' => '<string>',
'description' => '<string>',
'details' => '<unknown>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://quick.bot/api/v1/conversations/{sessionId}/messages"
payload := strings.NewReader("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"value\": \"<string>\",\n \"attachedFileUrls\": [\n \"<string>\"\n ],\n \"createdAt\": 123\n },\n \"messageMetadata\": {\n \"inputBlockId\": \"<string>\",\n \"inputType\": \"<string>\"\n },\n \"clientLogs\": [\n {\n \"status\": \"<string>\",\n \"description\": \"<string>\",\n \"details\": \"<unknown>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://quick.bot/api/v1/conversations/{sessionId}/messages")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"value\": \"<string>\",\n \"attachedFileUrls\": [\n \"<string>\"\n ],\n \"createdAt\": 123\n },\n \"messageMetadata\": {\n \"inputBlockId\": \"<string>\",\n \"inputType\": \"<string>\"\n },\n \"clientLogs\": [\n {\n \"status\": \"<string>\",\n \"description\": \"<string>\",\n \"details\": \"<unknown>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://quick.bot/api/v1/conversations/{sessionId}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"value\": \"<string>\",\n \"attachedFileUrls\": [\n \"<string>\"\n ],\n \"createdAt\": 123\n },\n \"messageMetadata\": {\n \"inputBlockId\": \"<string>\",\n \"inputType\": \"<string>\"\n },\n \"clientLogs\": [\n {\n \"status\": \"<string>\",\n \"description\": \"<string>\",\n \"details\": \"<unknown>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"actor": {
"role": "host",
"name": "<string>",
"avatarUrl": "<string>"
},
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"type": "markdown",
"markdown": "<string>"
}
}
],
"input": {
"id": "<string>",
"type": "text input",
"outgoingEdgeId": "<string>",
"options": {
"labels": {
"placeholder": "<string>",
"button": "<string>"
},
"variableId": "<string>",
"audioClip": {
"isEnabled": true,
"saveVariableId": "<string>"
},
"attachments": {
"isEnabled": true,
"saveVariableId": "<string>"
}
},
"prefilledValue": "<string>",
"runtimeOptions": {
"paymentIntentSecret": "<string>",
"amountLabel": "<string>",
"publicKey": "<string>"
}
},
"clientSideActions": [
{
"type": "scriptToExecute",
"scriptToExecute": {
"content": "<string>",
"args": [
{
"id": "<string>",
"value": "<string>"
}
],
"isCode": true
},
"lastBubbleBlockId": "<string>",
"expectsDedicatedReply": true
}
],
"logs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
],
"progress": 123,
"guestDisplayText": "<string>"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}