Adds labels for the WABA chat.
curl --request PUT \
--url https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"labels": [
"label1",
"label2",
"label3"
]
}
'import requests
url = "https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels"
payload = { "labels": ["label1", "label2", "label3"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({labels: ['label1', 'label2', 'label3']})
};
fetch('https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels', 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://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'labels' => [
'label1',
'label2',
'label3'
]
]),
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://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels"
payload := strings.NewReader("{\n \"labels\": [\n \"label1\",\n \"label2\",\n \"label3\"\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"labels\": [\n \"label1\",\n \"label2\",\n \"label3\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"labels\": [\n \"label1\",\n \"label2\",\n \"label3\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "ok",
"data": {
"labels": [
"label1",
"label2",
"label3"
]
}
}{
"message": "<string>",
"status": "error",
"error_code": "validation_error",
"errors": [
{
"fields": [
"url"
],
"msg": "must be a valid http(s) URL"
}
]
}{
"message": "<string>",
"status": "error",
"error_code": "validation_error",
"errors": [
{
"fields": [
"url"
],
"msg": "must be a valid http(s) URL"
}
]
}{
"message": "<string>",
"status": "error",
"error_code": "validation_error",
"errors": [
{
"fields": [
"url"
],
"msg": "must be a valid http(s) URL"
}
]
}Labels
Add WABA Chat Labels
Add labels to a WABA chat.
PUT
/
waba
/
chats
/
{chat_id}
/
labels
Adds labels for the WABA chat.
curl --request PUT \
--url https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"labels": [
"label1",
"label2",
"label3"
]
}
'import requests
url = "https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels"
payload = { "labels": ["label1", "label2", "label3"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({labels: ['label1', 'label2', 'label3']})
};
fetch('https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels', 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://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'labels' => [
'label1',
'label2',
'label3'
]
]),
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://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels"
payload := strings.NewReader("{\n \"labels\": [\n \"label1\",\n \"label2\",\n \"label3\"\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"labels\": [\n \"label1\",\n \"label2\",\n \"label3\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.timelines.ai/integrations/api/waba/chats/{chat_id}/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"labels\": [\n \"label1\",\n \"label2\",\n \"label3\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "ok",
"data": {
"labels": [
"label1",
"label2",
"label3"
]
}
}{
"message": "<string>",
"status": "error",
"error_code": "validation_error",
"errors": [
{
"fields": [
"url"
],
"msg": "must be a valid http(s) URL"
}
]
}{
"message": "<string>",
"status": "error",
"error_code": "validation_error",
"errors": [
{
"fields": [
"url"
],
"msg": "must be a valid http(s) URL"
}
]
}{
"message": "<string>",
"status": "error",
"error_code": "validation_error",
"errors": [
{
"fields": [
"url"
],
"msg": "must be a valid http(s) URL"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
an id of the chat as appears in TimelinesAI (can be found in the URL of the chat page, or in the payload of outbound webhook). Supports sending messages to a group.
Body
application/json
Label names to apply. Each item must be a string up to 64 characters. Missing workspace labels are created automatically by label-apply endpoints.
Label name. Each label name can be up to 64 characters. Label-apply endpoints create a workspace label automatically when the supplied name does not already exist.
Maximum string length:
64Example:
["label1", "label2", "label3"]
⌘I

