Start preview chat
Use this endpoint to test your bot. The answers will not be saved. And some blocks like “Send email” will be skipped.
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.
If set, it will override the typebot that is used to start the chat.
Expiration delay in hours after latest interaction
Deprecated, use container.border.roundeness
instead
curl --request POST \
--url https://typebot.io/api/v1/typebots/{typebotId}/preview/startChat \
--header 'Content-Type: application/json' \
--data '{
"isStreamEnabled": true,
"message": "<string>",
"isOnlyRegistering": true,
"typebot": {
"version": "3",
"id": "<string>",
"groups": [
{
"id": "<string>",
"title": "<string>",
"graphCoordinates": {
"x": 123,
"y": 123
},
"blocks": [
{
"id": "<string>",
"outgoingEdgeId": "<string>",
"type": "start",
"label": "<string>"
}
]
}
],
"events": [
"<any>"
],
"edges": [
{
"id": "<string>",
"from": {
"blockId": "<string>",
"itemId": "<string>"
},
"to": {
"groupId": "<string>",
"blockId": "<string>"
}
}
],
"variables": [
{
"id": "<string>",
"name": "<string>",
"isSessionVariable": true,
"value": "<string>"
}
],
"settings": {
"general": {
"isBrandingEnabled": true,
"isTypingEmulationEnabled": true,
"isInputPrefillEnabled": true,
"isHideQueryParamsEnabled": true,
"isNewResultOnRefreshEnabled": true,
"rememberUser": {
"isEnabled": true,
"storage": "session"
}
},
"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": {
"logicalOperator": "OR",
"comparisons": [
{
"id": "<string>",
"comparisonOperator": "Equal to",
"value": "<string>"
}
]
},
"sessionExpiryTimeout": 24.005
},
"publicShare": {
"isEnabled": true
},
"security": {
"allowedOrigins": [
"<string>"
]
}
},
"theme": {
"general": {
"font": "<string>",
"background": {
"type": "Color",
"content": "<string>"
},
"progressBar": {
"isEnabled": true,
"color": "<string>",
"backgroundColor": "<string>",
"placement": "Top",
"thickness": 123,
"position": "fixed"
}
},
"chat": {
"container": {
"maxWidth": "<string>",
"maxHeight": "<string>",
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"hostAvatar": {
"isEnabled": true,
"url": "<string>"
},
"guestAvatar": {
"isEnabled": true,
"url": "<string>"
},
"hostBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"guestBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"buttons": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"inputs": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
},
"placeholderColor": "<string>"
},
"roundness": "none"
},
"customCss": "<string>"
}
},
"startFrom": {
"type": "group",
"groupId": "<string>"
},
"prefilledVariables": {
"First name": "John",
"Email": "[email protected]"
}
}'
{
"sessionId": "<string>",
"typebot": {
"id": "<string>",
"theme": {
"general": {
"font": "<string>",
"background": {
"type": "Color",
"content": "<string>"
},
"progressBar": {
"isEnabled": true,
"color": "<string>",
"backgroundColor": "<string>",
"placement": "Top",
"thickness": 123,
"position": "fixed"
}
},
"chat": {
"container": {
"maxWidth": "<string>",
"maxHeight": "<string>",
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"hostAvatar": {
"isEnabled": true,
"url": "<string>"
},
"guestAvatar": {
"isEnabled": true,
"url": "<string>"
},
"hostBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"guestBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"buttons": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"inputs": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
},
"placeholderColor": "<string>"
},
"roundness": "none"
},
"customCss": "<string>"
},
"settings": {
"general": {
"isBrandingEnabled": true,
"isTypingEmulationEnabled": true,
"isInputPrefillEnabled": true,
"isHideQueryParamsEnabled": true,
"isNewResultOnRefreshEnabled": true,
"rememberUser": {
"isEnabled": true,
"storage": "session"
}
},
"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": {
"logicalOperator": "OR",
"comparisons": [
{
"id": "<string>",
"comparisonOperator": "Equal to",
"value": "<string>"
}
]
},
"sessionExpiryTimeout": 24.005
},
"publicShare": {
"isEnabled": true
},
"security": {
"allowedOrigins": [
"<string>"
]
}
}
},
"lastMessageNewFormat": "<string>",
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"html": "<string>",
"richText": [
"<any>"
],
"plainText": "<string>"
}
}
],
"input": {
"id": "<string>",
"outgoingEdgeId": "<string>",
"type": "text input",
"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": "<any>"
}
],
"dynamicTheme": {
"hostAvatarUrl": "<string>",
"guestAvatarUrl": "<string>"
},
"progress": 123
}
Path Parameters
Body
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.
If set, it will override the typebot that is used to start the chat.
3
, 4
, 5
start
session
, local
OR
, AND
Equal to
, Not equal
, Contains
, Does not contain
, Greater than
, Less than
, Is set
, Is empty
, Starts with
, Ends with
, Matches regex
, Does not match regex
Expiration delay in hours after latest interaction
Color
, Image
, None
Top
, Bottom
fixed
, absolute
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
Deprecated, use container.border.roundeness
instead
none
, medium
, large
group
Response
To save and use for /continueChat requests.
Color
, Image
, None
Top
, Bottom
fixed
, absolute
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
none
, sm
, md
, lg
, xl
, 2xl
none
, medium
, large
, custom
Deprecated, use container.border.roundeness
instead
none
, medium
, large
session
, local
OR
, AND
Equal to
, Not equal
, Contains
, Does not contain
, Greater than
, Less than
, Is set
, Is empty
, Starts with
, Ends with
, Matches regex
, Does not match regex
Expiration delay in hours after latest interaction
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
text input
Actions to execute on the client side
scriptToExecute
Logs that were saved during the last execution
If the typebot contains dynamic avatars, dynamicTheme returns the new avatar URLs whenever their variables are updated.
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.
curl --request POST \
--url https://typebot.io/api/v1/typebots/{typebotId}/preview/startChat \
--header 'Content-Type: application/json' \
--data '{
"isStreamEnabled": true,
"message": "<string>",
"isOnlyRegistering": true,
"typebot": {
"version": "3",
"id": "<string>",
"groups": [
{
"id": "<string>",
"title": "<string>",
"graphCoordinates": {
"x": 123,
"y": 123
},
"blocks": [
{
"id": "<string>",
"outgoingEdgeId": "<string>",
"type": "start",
"label": "<string>"
}
]
}
],
"events": [
"<any>"
],
"edges": [
{
"id": "<string>",
"from": {
"blockId": "<string>",
"itemId": "<string>"
},
"to": {
"groupId": "<string>",
"blockId": "<string>"
}
}
],
"variables": [
{
"id": "<string>",
"name": "<string>",
"isSessionVariable": true,
"value": "<string>"
}
],
"settings": {
"general": {
"isBrandingEnabled": true,
"isTypingEmulationEnabled": true,
"isInputPrefillEnabled": true,
"isHideQueryParamsEnabled": true,
"isNewResultOnRefreshEnabled": true,
"rememberUser": {
"isEnabled": true,
"storage": "session"
}
},
"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": {
"logicalOperator": "OR",
"comparisons": [
{
"id": "<string>",
"comparisonOperator": "Equal to",
"value": "<string>"
}
]
},
"sessionExpiryTimeout": 24.005
},
"publicShare": {
"isEnabled": true
},
"security": {
"allowedOrigins": [
"<string>"
]
}
},
"theme": {
"general": {
"font": "<string>",
"background": {
"type": "Color",
"content": "<string>"
},
"progressBar": {
"isEnabled": true,
"color": "<string>",
"backgroundColor": "<string>",
"placement": "Top",
"thickness": 123,
"position": "fixed"
}
},
"chat": {
"container": {
"maxWidth": "<string>",
"maxHeight": "<string>",
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"hostAvatar": {
"isEnabled": true,
"url": "<string>"
},
"guestAvatar": {
"isEnabled": true,
"url": "<string>"
},
"hostBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"guestBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"buttons": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"inputs": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
},
"placeholderColor": "<string>"
},
"roundness": "none"
},
"customCss": "<string>"
}
},
"startFrom": {
"type": "group",
"groupId": "<string>"
},
"prefilledVariables": {
"First name": "John",
"Email": "[email protected]"
}
}'
{
"sessionId": "<string>",
"typebot": {
"id": "<string>",
"theme": {
"general": {
"font": "<string>",
"background": {
"type": "Color",
"content": "<string>"
},
"progressBar": {
"isEnabled": true,
"color": "<string>",
"backgroundColor": "<string>",
"placement": "Top",
"thickness": 123,
"position": "fixed"
}
},
"chat": {
"container": {
"maxWidth": "<string>",
"maxHeight": "<string>",
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"hostAvatar": {
"isEnabled": true,
"url": "<string>"
},
"guestAvatar": {
"isEnabled": true,
"url": "<string>"
},
"hostBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"guestBubbles": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"buttons": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
}
},
"inputs": {
"backgroundColor": "<string>",
"color": "<string>",
"blur": 123,
"opacity": 0.5,
"shadow": "none",
"border": {
"thickness": 123,
"color": "<string>",
"roundeness": "none",
"customRoundeness": 123,
"opacity": 0.5
},
"placeholderColor": "<string>"
},
"roundness": "none"
},
"customCss": "<string>"
},
"settings": {
"general": {
"isBrandingEnabled": true,
"isTypingEmulationEnabled": true,
"isInputPrefillEnabled": true,
"isHideQueryParamsEnabled": true,
"isNewResultOnRefreshEnabled": true,
"rememberUser": {
"isEnabled": true,
"storage": "session"
}
},
"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": {
"logicalOperator": "OR",
"comparisons": [
{
"id": "<string>",
"comparisonOperator": "Equal to",
"value": "<string>"
}
]
},
"sessionExpiryTimeout": 24.005
},
"publicShare": {
"isEnabled": true
},
"security": {
"allowedOrigins": [
"<string>"
]
}
}
},
"lastMessageNewFormat": "<string>",
"messages": [
{
"id": "<string>",
"type": "text",
"content": {
"html": "<string>",
"richText": [
"<any>"
],
"plainText": "<string>"
}
}
],
"input": {
"id": "<string>",
"outgoingEdgeId": "<string>",
"type": "text input",
"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": "<any>"
}
],
"dynamicTheme": {
"hostAvatarUrl": "<string>",
"guestAvatarUrl": "<string>"
},
"progress": 123
}