curl --request POST \
--url https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"type": "text",
"text": "<string>",
"metadata": {
"replyId": "<string>"
},
"attachedFileUrls": [
"<string>"
]
},
"textBubbleContentFormat": "richText"
}
'import requests
url = "https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat"
payload = {
"message": {
"type": "text",
"text": "<string>",
"metadata": { "replyId": "<string>" },
"attachedFileUrls": ["<string>"]
},
"textBubbleContentFormat": "richText"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
type: 'text',
text: '<string>',
metadata: {replyId: '<string>'},
attachedFileUrls: ['<string>']
},
textBubbleContentFormat: 'richText'
})
};
fetch('https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat', 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://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat",
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>',
'metadata' => [
'replyId' => '<string>'
],
'attachedFileUrls' => [
'<string>'
]
],
'textBubbleContentFormat' => 'richText'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat"
payload := strings.NewReader("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"metadata\": {\n \"replyId\": \"<string>\"\n },\n \"attachedFileUrls\": [\n \"<string>\"\n ]\n },\n \"textBubbleContentFormat\": \"richText\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"metadata\": {\n \"replyId\": \"<string>\"\n },\n \"attachedFileUrls\": [\n \"<string>\"\n ]\n },\n \"textBubbleContentFormat\": \"richText\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"metadata\": {\n \"replyId\": \"<string>\"\n },\n \"attachedFileUrls\": [\n \"<string>\"\n ]\n },\n \"textBubbleContentFormat\": \"richText\"\n}"
response = http.request(request)
puts response.read_body{
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"type": "richText",
"richText": "<unknown>"
}
}
],
"lastMessageNewFormat": "<string>",
"input": {
"id": "<string>",
"type": "text input",
"outgoingEdgeId": "<string>",
"options": {
"labels": {
"placeholder": "<string>",
"button": "<string>"
},
"variableId": "<string>",
"isLong": true,
"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>"
}
],
"isUnsafe": true,
"isCode": true
},
"lastBubbleBlockId": "<string>",
"expectsDedicatedReply": true
}
],
"logs": [
{
"description": "<string>",
"status": "<string>",
"details": "<string>",
"context": "<string>"
}
],
"dynamicTheme": {
"hostAvatarUrl": "<string>",
"guestAvatarUrl": "<string>",
"backgroundUrl": "<string>"
},
"progress": 123
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Continue chat
curl --request POST \
--url https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"type": "text",
"text": "<string>",
"metadata": {
"replyId": "<string>"
},
"attachedFileUrls": [
"<string>"
]
},
"textBubbleContentFormat": "richText"
}
'import requests
url = "https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat"
payload = {
"message": {
"type": "text",
"text": "<string>",
"metadata": { "replyId": "<string>" },
"attachedFileUrls": ["<string>"]
},
"textBubbleContentFormat": "richText"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
type: 'text',
text: '<string>',
metadata: {replyId: '<string>'},
attachedFileUrls: ['<string>']
},
textBubbleContentFormat: 'richText'
})
};
fetch('https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat', 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://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat",
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>',
'metadata' => [
'replyId' => '<string>'
],
'attachedFileUrls' => [
'<string>'
]
],
'textBubbleContentFormat' => 'richText'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat"
payload := strings.NewReader("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"metadata\": {\n \"replyId\": \"<string>\"\n },\n \"attachedFileUrls\": [\n \"<string>\"\n ]\n },\n \"textBubbleContentFormat\": \"richText\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"metadata\": {\n \"replyId\": \"<string>\"\n },\n \"attachedFileUrls\": [\n \"<string>\"\n ]\n },\n \"textBubbleContentFormat\": \"richText\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://chat.aichatbotpro.com.au/api/v1/sessions/{sessionId}/continueChat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"metadata\": {\n \"replyId\": \"<string>\"\n },\n \"attachedFileUrls\": [\n \"<string>\"\n ]\n },\n \"textBubbleContentFormat\": \"richText\"\n}"
response = http.request(request)
puts response.read_body{
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"type": "richText",
"richText": "<unknown>"
}
}
],
"lastMessageNewFormat": "<string>",
"input": {
"id": "<string>",
"type": "text input",
"outgoingEdgeId": "<string>",
"options": {
"labels": {
"placeholder": "<string>",
"button": "<string>"
},
"variableId": "<string>",
"isLong": true,
"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>"
}
],
"isUnsafe": true,
"isCode": true
},
"lastBubbleBlockId": "<string>",
"expectsDedicatedReply": true
}
],
"logs": [
{
"description": "<string>",
"status": "<string>",
"details": "<string>",
"context": "<string>"
}
],
"dynamicTheme": {
"hostAvatarUrl": "<string>",
"guestAvatarUrl": "<string>",
"backgroundUrl": "<string>"
},
"progress": 123
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
- Text
- Audio
- Command
Show child attributes
Show child attributes
richText, markdown Response
Successful response
- Text
- Image
- Video
- Audio
- Embed
- Custom embed
Show child attributes
Show child attributes
The sent message is validated and formatted on the backend. For example, if for a date input you replied something like tomorrow, the backend will convert it to a date string. This field returns the formatted message.
- Text
- Buttons
- Email
- Number
- URL
- Phone number
- Date
- Time
- Payment
- Rating
- File
- Picture choice
- Option 13
- Buttons v5
- File input v5
- Picture choice v5
Show child attributes
Show child attributes
Actions to execute on the client side
- Script to execute
- Redirect
- Chatwoot
- Google Analytics
- Wait
- Set variable
- Stream OpenAI
- Execute HTTP request
- Inject start props
- Init Pixel
- Exec stream
- Execute code
- Listen to webhook
Show child attributes
Show child attributes
Logs that were saved during the last execution
Show child attributes
Show child attributes
If the bot contains dynamic avatars, dynamicTheme returns the new avatar URLs whenever their variables are updated.
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.