Get full or filtered list of all WABA chats in the Workspace.
curl --request GET \
--url https://app.timelines.ai/integrations/api/waba/chats \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.timelines.ai/integrations/api/waba/chats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.timelines.ai/integrations/api/waba/chats', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.timelines.ai/integrations/api/waba/chats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.timelines.ai/integrations/api/waba/chats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.timelines.ai/integrations/api/waba/chats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "ok",
"data": {
"has_more_pages": true,
"chats": [
{
"id": "1000001",
"name": "John Doe",
"is_group": false,
"closed": false,
"read": true,
"labels": [
"label1",
"label2",
"label3"
],
"chatgpt_autoresponse_enabled": true,
"chat_url": "https://app.timelines.ai/chat/1000001/messages/",
"created_timestamp": "2024-01-08 10:35:18 +0200",
"unattended": false,
"waba_account_id": 4021,
"service_window_is_open": true,
"service_window_expires_at": "2024-01-30 13:55:04 +0200",
"phone": "+15551230000",
"responsible_email": "kate.smitch@acme.com",
"responsible_name": "Kate Smith",
"last_message_uid": "4f43a9a0-b87e-4667-adfd-689674c3326c",
"last_message_timestamp": "2024-01-29 13:55:04 +0200",
"last_message": {
"uid": "de919486-0c93-409d-ae66-c2bbb544faca",
"chat_id": "1000001",
"timestamp": "2023-06-18 15:19:23 +0300",
"received_timestamp": "2023-06-18 14:39:25 +0300",
"sender_phone": "+972540000001",
"sender_name": "John Doe",
"recipient_phone": "+972540000002",
"recipient_name": "Kate Smith",
"from_me": true,
"status": "Read",
"origin": "Public API",
"has_attachment": true,
"message_type": "Note",
"data": {
"key1": "value1",
"key2": "value2"
},
"created_by": "Kate Smith",
"text": "Hello, Kate👍",
"attachment_url": "https://acme.com/logo.png",
"attachment_filename": "logo.png"
},
"group_members": [
{
"name": "John Doe",
"phone": "+972502222222",
"role": "admin",
"chat_id": 123456
}
]
}
]
}
}{
"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"
}
]
}Chats
List WABA Chats
Get a full or filtered list of all WABA chats in the workspace.
GET
/
waba
/
chats
Get full or filtered list of all WABA chats in the Workspace.
curl --request GET \
--url https://app.timelines.ai/integrations/api/waba/chats \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.timelines.ai/integrations/api/waba/chats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.timelines.ai/integrations/api/waba/chats', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.timelines.ai/integrations/api/waba/chats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.timelines.ai/integrations/api/waba/chats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.timelines.ai/integrations/api/waba/chats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "ok",
"data": {
"has_more_pages": true,
"chats": [
{
"id": "1000001",
"name": "John Doe",
"is_group": false,
"closed": false,
"read": true,
"labels": [
"label1",
"label2",
"label3"
],
"chatgpt_autoresponse_enabled": true,
"chat_url": "https://app.timelines.ai/chat/1000001/messages/",
"created_timestamp": "2024-01-08 10:35:18 +0200",
"unattended": false,
"waba_account_id": 4021,
"service_window_is_open": true,
"service_window_expires_at": "2024-01-30 13:55:04 +0200",
"phone": "+15551230000",
"responsible_email": "kate.smitch@acme.com",
"responsible_name": "Kate Smith",
"last_message_uid": "4f43a9a0-b87e-4667-adfd-689674c3326c",
"last_message_timestamp": "2024-01-29 13:55:04 +0200",
"last_message": {
"uid": "de919486-0c93-409d-ae66-c2bbb544faca",
"chat_id": "1000001",
"timestamp": "2023-06-18 15:19:23 +0300",
"received_timestamp": "2023-06-18 14:39:25 +0300",
"sender_phone": "+972540000001",
"sender_name": "John Doe",
"recipient_phone": "+972540000002",
"recipient_name": "Kate Smith",
"from_me": true,
"status": "Read",
"origin": "Public API",
"has_attachment": true,
"message_type": "Note",
"data": {
"key1": "value1",
"key2": "value2"
},
"created_by": "Kate Smith",
"text": "Hello, Kate👍",
"attachment_url": "https://acme.com/logo.png",
"attachment_filename": "logo.png"
},
"group_members": [
{
"name": "John Doe",
"phone": "+972502222222",
"role": "admin",
"chat_id": 123456
}
]
}
]
}
}{
"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.
Query Parameters
filters WABA chats belonging to one of the specified WABA accounts (comma-separated internal account ids)
filters chats assigned to specific users (denoted by email address, comma-separated)
filter chats that are either closed (true) or open (false)
filter WABA chats by contact phone number
specify the page of results (each page contains up to 50 items), starting with 1. Check "has more page" response value to see if more pages are available.
when true, include the full last_message object (in addition to last_message_uid / last_message_timestamp) for each chat.
⌘I

