ChatKomodo Docs Home Sign in

API reference · Account

Settings

Read a setting

GET/v1/settings/{key}

Read a tenant setting. Keys: send_window, business_hours, welcome_message, csat_config, chatbot_flows, canned_responses, typing_delay. value is null when never set. **send_window**: blast (bulk) sends are only released inside this daily window (default 08:00–20:00 in the business timezone, or in each recipient's own timezone) and wait for the next opening otherwise; 1:1 replies, scheduled and recurring messages are unaffected.

Path parameters

  • keystringrequired

Responses

  • 200Setting
    Response fields
    • keystringrequired
    • valueany
  • 404Unknown key
Request
curl "https://api.chatkomodo.com/v1/settings/send_window" \
  -H "Authorization: Bearer $CHATKOMODO_API_KEY"
const res = await fetch('https://api.chatkomodo.com/v1/settings/send_window', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);
import os
import requests

res = requests.get(
    "https://api.chatkomodo.com/v1/settings/send_window",
    headers={
        "Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.chatkomodo.com/v1/settings/send_window', [
    'headers' => [
        'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
    ],
]);

print_r(json_decode((string) $res->getBody(), true));
Response 200
{
  "key": "uploads/abc123.jpg",
  "value": "vip"
}

Write a setting

PUT/v1/settings/{key}

Write a tenant setting. For send_window the body is {enabled, start, end, basis}; any other key takes its own JSON structure.

Path parameters

  • keystringrequired

Request body

  • enabledbooleanrequired
  • startstringrequired
    HH:MM, local time
  • endstringrequired
    HH:MM, local time
  • basisstringrequired
    business = the profile timezone; recipient = the timezone of each recipient's country (derived from the number)
    One of: business, recipient

Responses

  • 200Saved
    Response fields
    • okbooleanrequired
  • 400Validation error
Request
curl -X PUT "https://api.chatkomodo.com/v1/settings/send_window" \
  -H "Authorization: Bearer $CHATKOMODO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": true,
  "start": "09:00",
  "end": "18:00",
  "basis": "recipient"
}'
const res = await fetch('https://api.chatkomodo.com/v1/settings/send_window', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "enabled": true,
    "start": "09:00",
    "end": "18:00",
    "basis": "recipient"
  }),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);
import os
import requests

res = requests.put(
    "https://api.chatkomodo.com/v1/settings/send_window",
    headers={
        "Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
    },
    json={
        "enabled": True,
        "start": "09:00",
        "end": "18:00",
        "basis": "recipient",
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();
$res = $client->request('PUT', 'https://api.chatkomodo.com/v1/settings/send_window', [
    'headers' => [
        'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
    ],
    'json' => [
        'enabled' => true,
        'start' => '09:00',
        'end' => '18:00',
        'basis' => 'recipient',
    ],
]);

print_r(json_decode((string) $res->getBody(), true));
Response 200
{
  "ok": true
}

Reset a setting

DEL/v1/settings/{key}

Reset a tenant setting to its default.

Path parameters

  • keystringrequired

Responses

  • 200Reset
    Response fields
    • okbooleanrequired
Request
curl -X DELETE "https://api.chatkomodo.com/v1/settings/send_window" \
  -H "Authorization: Bearer $CHATKOMODO_API_KEY"
const res = await fetch('https://api.chatkomodo.com/v1/settings/send_window', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);
import os
import requests

res = requests.delete(
    "https://api.chatkomodo.com/v1/settings/send_window",
    headers={
        "Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();
$res = $client->request('DELETE', 'https://api.chatkomodo.com/v1/settings/send_window', [
    'headers' => [
        'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
    ],
]);

print_r(json_decode((string) $res->getBody(), true));
Response 200
{
  "ok": true
}