curl --request POST \
--url https://api.wotnot.io/v1/bots/{bot_id}/deploy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"flow_diagram": "BOT_FLOW_JSON"
}
'import requests
url = "https://api.wotnot.io/v1/bots/{bot_id}/deploy"
payload = { "flow_diagram": "BOT_FLOW_JSON" }
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({flow_diagram: 'BOT_FLOW_JSON'})
};
fetch('https://api.wotnot.io/v1/bots/{bot_id}/deploy', 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://api.wotnot.io/v1/bots/{bot_id}/deploy",
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([
'flow_diagram' => 'BOT_FLOW_JSON'
]),
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://api.wotnot.io/v1/bots/{bot_id}/deploy"
payload := strings.NewReader("{\n \"flow_diagram\": \"BOT_FLOW_JSON\"\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://api.wotnot.io/v1/bots/{bot_id}/deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"flow_diagram\": \"BOT_FLOW_JSON\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wotnot.io/v1/bots/{bot_id}/deploy")
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 \"flow_diagram\": \"BOT_FLOW_JSON\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": "BOT_FLOW_JSON",
"is_deployed": true,
"last_deployed_at": "2025-05-05 10:37:43.128000"
}{
"error": "BOT_NOT_FOUND",
"ok": false,
"status": 404,
"message": "Bot not found."
}Deploy bot
Deploys a bot using the flow JSON you send in the body. Use it after you’ve changed the flow JSON you got from Get bot flow.
curl --request POST \
--url https://api.wotnot.io/v1/bots/{bot_id}/deploy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"flow_diagram": "BOT_FLOW_JSON"
}
'import requests
url = "https://api.wotnot.io/v1/bots/{bot_id}/deploy"
payload = { "flow_diagram": "BOT_FLOW_JSON" }
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({flow_diagram: 'BOT_FLOW_JSON'})
};
fetch('https://api.wotnot.io/v1/bots/{bot_id}/deploy', 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://api.wotnot.io/v1/bots/{bot_id}/deploy",
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([
'flow_diagram' => 'BOT_FLOW_JSON'
]),
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://api.wotnot.io/v1/bots/{bot_id}/deploy"
payload := strings.NewReader("{\n \"flow_diagram\": \"BOT_FLOW_JSON\"\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://api.wotnot.io/v1/bots/{bot_id}/deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"flow_diagram\": \"BOT_FLOW_JSON\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wotnot.io/v1/bots/{bot_id}/deploy")
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 \"flow_diagram\": \"BOT_FLOW_JSON\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": "BOT_FLOW_JSON",
"is_deployed": true,
"last_deployed_at": "2025-05-05 10:37:43.128000"
}{
"error": "BOT_NOT_FOUND",
"ok": false,
"status": 404,
"message": "Bot not found."
}Authorizations
All of WotNot's APIs use Bearer token authentication. Send your account token as Bearer <token>. You can find it in Settings > Account Settings > Developer. Keep it on your server: anyone who has it can call the API as your account.
Path Parameters
The ID of the bot you want to deploy.
Body
The flow JSON to deploy.
The bot's flow JSON, with your changes. In the example, BOT_FLOW_JSON stands in for that JSON.
"BOT_FLOW_JSON"
Response
Returns ok set to true, the deployed flow JSON in data, and when the bot was deployed.
true when the request worked. Errors return false.
true
The bot's flow JSON as deployed. In the example, BOT_FLOW_JSON stands in for that JSON.
"BOT_FLOW_JSON"
Whether the bot is deployed. true after a successful deploy.
true
When the bot was last deployed, in the format YYYY-MM-DD HH:MM:SS.ffffff, for example 2025-05-05 10:37:43.128000.
"2025-05-05 10:37:43.128000"
Was this page helpful?