curl --request POST \
--url https://sellitbr.com/api/v1/sellits/{publicId}/startChat \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"isStreamEnabled": false,
"resultId": "<string>",
"isOnlyRegistering": false,
"prefilledVariables": {
"First name": "John",
"Email": "john@gmail.com"
}
}
'import requests
url = "https://sellitbr.com/api/v1/sellits/{publicId}/startChat"
payload = {
"message": "<string>",
"isStreamEnabled": False,
"resultId": "<string>",
"isOnlyRegistering": False,
"prefilledVariables": {
"First name": "John",
"Email": "john@gmail.com"
}
}
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: '<string>',
isStreamEnabled: false,
resultId: '<string>',
isOnlyRegistering: false,
prefilledVariables: {'First name': 'John', Email: 'john@gmail.com'}
})
};
fetch('https://sellitbr.com/api/v1/sellits/{publicId}/startChat', 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://sellitbr.com/api/v1/sellits/{publicId}/startChat",
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' => '<string>',
'isStreamEnabled' => false,
'resultId' => '<string>',
'isOnlyRegistering' => false,
'prefilledVariables' => [
'First name' => 'John',
'Email' => 'john@gmail.com'
]
]),
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://sellitbr.com/api/v1/sellits/{publicId}/startChat"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"isStreamEnabled\": false,\n \"resultId\": \"<string>\",\n \"isOnlyRegistering\": false,\n \"prefilledVariables\": {\n \"First name\": \"John\",\n \"Email\": \"john@gmail.com\"\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://sellitbr.com/api/v1/sellits/{publicId}/startChat")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"isStreamEnabled\": false,\n \"resultId\": \"<string>\",\n \"isOnlyRegistering\": false,\n \"prefilledVariables\": {\n \"First name\": \"John\",\n \"Email\": \"john@gmail.com\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sellitbr.com/api/v1/sellits/{publicId}/startChat")
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\": \"<string>\",\n \"isStreamEnabled\": false,\n \"resultId\": \"<string>\",\n \"isOnlyRegistering\": false,\n \"prefilledVariables\": {\n \"First name\": \"John\",\n \"Email\": \"john@gmail.com\"\n }\n}"
response = http.request(request)
puts response.read_body{
"sessionId": "<string>",
"sellit": {
"id": "<string>",
"theme": {
"general": {
"font": "<string>",
"background": {
"content": "<string>"
},
"progressBar": {
"isEnabled": true,
"color": "<string>",
"backgroundColor": "<string>",
"thickness": 123
}
},
"chat": {
"hostAvatar": {
"isEnabled": true,
"url": "<string>"
},
"guestAvatar": {
"isEnabled": true,
"url": "<string>"
},
"hostBubbles": {
"backgroundColor": "<string>",
"color": "<string>"
},
"guestBubbles": {
"backgroundColor": "<string>",
"color": "<string>"
},
"buttons": {
"backgroundColor": "<string>",
"color": "<string>"
},
"inputs": {
"backgroundColor": "<string>",
"color": "<string>",
"placeholderColor": "<string>"
}
},
"customCss": "<string>"
},
"settings": {
"general": {
"isBrandingEnabled": true,
"isTypingEmulationEnabled": true,
"isInputPrefillEnabled": true,
"isHideQueryParamsEnabled": true,
"isNewResultOnRefreshEnabled": true,
"rememberUser": {
"isEnabled": true
}
},
"typingEmulation": {
"enabled": true,
"speed": 123,
"maxDelay": 123,
"delayBetweenBubbles": 2.5,
"isDisabledOnFirstMessage": true
},
"metadata": {
"title": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"favIconUrl": "<string>",
"customHeadCode": "<string>",
"googleTagManagerId": "<string>"
},
"whatsApp": {
"isEnabled": true,
"startCondition": {
"comparisons": [
{
"id": "<string>",
"value": "<string>"
}
]
},
"sessionExpiryTimeout": 24.005
},
"publicShare": {
"isEnabled": true
},
"security": {
"allowedOrigins": [
"<string>"
]
}
}
},
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"html": "<string>",
"richText": [
"<unknown>"
],
"plainText": "<string>"
}
}
],
"resultId": "<string>",
"lastMessageNewFormat": "<string>",
"input": {
"id": "<string>",
"type": "text input",
"outgoingEdgeId": "<string>",
"options": {
"labels": {
"placeholder": "<string>",
"button": "<string>"
},
"variableId": "<string>",
"isLong": true
},
"prefilledValue": "<string>",
"runtimeOptions": {
"paymentIntentSecret": "<string>",
"amountLabel": "<string>",
"publicKey": "<string>"
}
},
"clientSideActions": [
{
"type": "scriptToExecute",
"scriptToExecute": {
"content": "<string>",
"args": [
{
"id": "<string>",
"value": "<string>"
}
]
},
"lastBubbleBlockId": "<string>",
"expectsDedicatedReply": true
}
],
"logs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
],
"dynamicTheme": {
"hostAvatarUrl": "<string>",
"guestAvatarUrl": "<string>"
},
"progress": 123
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Start chat
curl --request POST \
--url https://sellitbr.com/api/v1/sellits/{publicId}/startChat \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"isStreamEnabled": false,
"resultId": "<string>",
"isOnlyRegistering": false,
"prefilledVariables": {
"First name": "John",
"Email": "john@gmail.com"
}
}
'import requests
url = "https://sellitbr.com/api/v1/sellits/{publicId}/startChat"
payload = {
"message": "<string>",
"isStreamEnabled": False,
"resultId": "<string>",
"isOnlyRegistering": False,
"prefilledVariables": {
"First name": "John",
"Email": "john@gmail.com"
}
}
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: '<string>',
isStreamEnabled: false,
resultId: '<string>',
isOnlyRegistering: false,
prefilledVariables: {'First name': 'John', Email: 'john@gmail.com'}
})
};
fetch('https://sellitbr.com/api/v1/sellits/{publicId}/startChat', 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://sellitbr.com/api/v1/sellits/{publicId}/startChat",
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' => '<string>',
'isStreamEnabled' => false,
'resultId' => '<string>',
'isOnlyRegistering' => false,
'prefilledVariables' => [
'First name' => 'John',
'Email' => 'john@gmail.com'
]
]),
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://sellitbr.com/api/v1/sellits/{publicId}/startChat"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"isStreamEnabled\": false,\n \"resultId\": \"<string>\",\n \"isOnlyRegistering\": false,\n \"prefilledVariables\": {\n \"First name\": \"John\",\n \"Email\": \"john@gmail.com\"\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://sellitbr.com/api/v1/sellits/{publicId}/startChat")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"isStreamEnabled\": false,\n \"resultId\": \"<string>\",\n \"isOnlyRegistering\": false,\n \"prefilledVariables\": {\n \"First name\": \"John\",\n \"Email\": \"john@gmail.com\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sellitbr.com/api/v1/sellits/{publicId}/startChat")
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\": \"<string>\",\n \"isStreamEnabled\": false,\n \"resultId\": \"<string>\",\n \"isOnlyRegistering\": false,\n \"prefilledVariables\": {\n \"First name\": \"John\",\n \"Email\": \"john@gmail.com\"\n }\n}"
response = http.request(request)
puts response.read_body{
"sessionId": "<string>",
"sellit": {
"id": "<string>",
"theme": {
"general": {
"font": "<string>",
"background": {
"content": "<string>"
},
"progressBar": {
"isEnabled": true,
"color": "<string>",
"backgroundColor": "<string>",
"thickness": 123
}
},
"chat": {
"hostAvatar": {
"isEnabled": true,
"url": "<string>"
},
"guestAvatar": {
"isEnabled": true,
"url": "<string>"
},
"hostBubbles": {
"backgroundColor": "<string>",
"color": "<string>"
},
"guestBubbles": {
"backgroundColor": "<string>",
"color": "<string>"
},
"buttons": {
"backgroundColor": "<string>",
"color": "<string>"
},
"inputs": {
"backgroundColor": "<string>",
"color": "<string>",
"placeholderColor": "<string>"
}
},
"customCss": "<string>"
},
"settings": {
"general": {
"isBrandingEnabled": true,
"isTypingEmulationEnabled": true,
"isInputPrefillEnabled": true,
"isHideQueryParamsEnabled": true,
"isNewResultOnRefreshEnabled": true,
"rememberUser": {
"isEnabled": true
}
},
"typingEmulation": {
"enabled": true,
"speed": 123,
"maxDelay": 123,
"delayBetweenBubbles": 2.5,
"isDisabledOnFirstMessage": true
},
"metadata": {
"title": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"favIconUrl": "<string>",
"customHeadCode": "<string>",
"googleTagManagerId": "<string>"
},
"whatsApp": {
"isEnabled": true,
"startCondition": {
"comparisons": [
{
"id": "<string>",
"value": "<string>"
}
]
},
"sessionExpiryTimeout": 24.005
},
"publicShare": {
"isEnabled": true
},
"security": {
"allowedOrigins": [
"<string>"
]
}
}
},
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"html": "<string>",
"richText": [
"<unknown>"
],
"plainText": "<string>"
}
}
],
"resultId": "<string>",
"lastMessageNewFormat": "<string>",
"input": {
"id": "<string>",
"type": "text input",
"outgoingEdgeId": "<string>",
"options": {
"labels": {
"placeholder": "<string>",
"button": "<string>"
},
"variableId": "<string>",
"isLong": true
},
"prefilledValue": "<string>",
"runtimeOptions": {
"paymentIntentSecret": "<string>",
"amountLabel": "<string>",
"publicKey": "<string>"
}
},
"clientSideActions": [
{
"type": "scriptToExecute",
"scriptToExecute": {
"content": "<string>",
"args": [
{
"id": "<string>",
"value": "<string>"
}
]
},
"lastBubbleBlockId": "<string>",
"expectsDedicatedReply": true
}
],
"logs": [
{
"status": "<string>",
"description": "<string>",
"details": "<unknown>"
}
],
"dynamicTheme": {
"hostAvatarUrl": "<string>",
"guestAvatarUrl": "<string>"
},
"progress": 123
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Path Parameters
Body
Only provide it if your flow starts with an input block and you'd like to directly provide an answer to it.
If enabled, you will be required to stream OpenAI completions on a client and send the generated response back to the API.
Provide it if you'd like to overwrite an existing result.
If set to true, it will only register the session and not start the bot. This is used for 3rd party chat platforms as it can require a session to be registered before sending the first message.
Show child attributes
Show child attributes
{
"First name": "John",
"Email": "john@gmail.com"
}Response
Successful response
To save and use for /continueChat requests.
Show child attributes
Show child attributes
- 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
- Payment
- Rating
- File
- Picture choice
- 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 webhook
- Inject start props
- Init Pixel
- Exec stream
- Execute code
Show child attributes
Show child attributes
Logs that were saved during the last execution
Show child attributes
Show child attributes
If the sellit 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.