curl -X GET "https://api.sayvy.ai/api/v1/inbox/tickets?status=open&limit=25&offset=0" \
-H "Authorization: Bearer <token>"
import requests
url = "https://api.sayvy.ai/api/v1/inbox/tickets"
headers = {
"Authorization": "Bearer <token>"
}
params = {
"status": "open",
"limit": 25,
"offset": 0
}
response = requests.get(url, headers=headers, params=params)
print(response.status_code)
print(response.json())
const response = await fetch("https://api.sayvy.ai/api/v1/inbox/tickets?status=open&limit=25&offset=0", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();
console.log(data);
{
"total": 1,
"page": 1,
"size": 25,
"inboxes": [
{
"id": "e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b",
"organization_id": "e0b973dc-13a8-4c9f-861a-03e5b4b1a8d9",
"contact_id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"whatsapp_phone_number_id": "11a22b33-44c5-5d6e-7f8a-9b0c1d2e3f4a",
"status": "open",
"created_at": "2026-09-07T15:30:00Z",
"updated_at": "2026-09-07T15:35:00Z",
"contact": {
"id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"name": "Sarah Connor",
"phone_number": "+14155552671",
"tags": ["vip", "enterprise"],
"notes": "Key account representative",
"custom_fields": {
"tier": "enterprise"
}
}
}
]
}
{
"detail": "Status filter must be either 'open' or 'closed'"
}
Inbox
List tickets
Retrieve a paginated list of conversation tickets filtered by status or contact ID
GET
/
api
/
v1
/
inbox
/
tickets
curl -X GET "https://api.sayvy.ai/api/v1/inbox/tickets?status=open&limit=25&offset=0" \
-H "Authorization: Bearer <token>"
import requests
url = "https://api.sayvy.ai/api/v1/inbox/tickets"
headers = {
"Authorization": "Bearer <token>"
}
params = {
"status": "open",
"limit": 25,
"offset": 0
}
response = requests.get(url, headers=headers, params=params)
print(response.status_code)
print(response.json())
const response = await fetch("https://api.sayvy.ai/api/v1/inbox/tickets?status=open&limit=25&offset=0", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();
console.log(data);
{
"total": 1,
"page": 1,
"size": 25,
"inboxes": [
{
"id": "e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b",
"organization_id": "e0b973dc-13a8-4c9f-861a-03e5b4b1a8d9",
"contact_id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"whatsapp_phone_number_id": "11a22b33-44c5-5d6e-7f8a-9b0c1d2e3f4a",
"status": "open",
"created_at": "2026-09-07T15:30:00Z",
"updated_at": "2026-09-07T15:35:00Z",
"contact": {
"id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"name": "Sarah Connor",
"phone_number": "+14155552671",
"tags": ["vip", "enterprise"],
"notes": "Key account representative",
"custom_fields": {
"tier": "enterprise"
}
}
}
]
}
{
"detail": "Status filter must be either 'open' or 'closed'"
}
Retrieve conversation tickets for your active organization. Results can be filtered by ticket status (
open or closed) or restricted to a specific contact ID.
Authentication
This endpoint requires Bearer token authentication.Authorization: Bearer <token>
| Header | Type | Required | Description | Format |
|---|---|---|---|---|
Authorization | string | Yes | Scoped organization API key or Bearer JWT token | Bearer <token> |
Query Parameters
string
required
Bearer token for authentication. Format:
Bearer <token>.string
Filter tickets by state. Allowed values:
open, closed.string
Filter tickets associated with a specific contact UUID.
integer
default:"50"
Maximum number of tickets to retrieve (1 to 100).
integer
default:"0"
Number of tickets to skip for pagination (minimum
0).Response Fields
integer
Total number of tickets matching query criteria.
integer
Computed page number based on offset and limit.
integer
Batch size returned.
object[]
Array of ticket objects.
Show InboxResponse Fields
Show InboxResponse Fields
string
UUID of the inbox ticket.
string
UUID of the owning organization.
string
UUID of the contact.
string
UUID of the assigned WhatsApp phone number, or
null.string
Ticket state (
open or closed).string
ISO 8601 creation timestamp.
string
ISO 8601 last update timestamp.
object
Contact profile brief (name, phone number, tags).
curl -X GET "https://api.sayvy.ai/api/v1/inbox/tickets?status=open&limit=25&offset=0" \
-H "Authorization: Bearer <token>"
import requests
url = "https://api.sayvy.ai/api/v1/inbox/tickets"
headers = {
"Authorization": "Bearer <token>"
}
params = {
"status": "open",
"limit": 25,
"offset": 0
}
response = requests.get(url, headers=headers, params=params)
print(response.status_code)
print(response.json())
const response = await fetch("https://api.sayvy.ai/api/v1/inbox/tickets?status=open&limit=25&offset=0", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();
console.log(data);
{
"total": 1,
"page": 1,
"size": 25,
"inboxes": [
{
"id": "e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b",
"organization_id": "e0b973dc-13a8-4c9f-861a-03e5b4b1a8d9",
"contact_id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"whatsapp_phone_number_id": "11a22b33-44c5-5d6e-7f8a-9b0c1d2e3f4a",
"status": "open",
"created_at": "2026-09-07T15:30:00Z",
"updated_at": "2026-09-07T15:35:00Z",
"contact": {
"id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"name": "Sarah Connor",
"phone_number": "+14155552671",
"tags": ["vip", "enterprise"],
"notes": "Key account representative",
"custom_fields": {
"tier": "enterprise"
}
}
}
]
}
{
"detail": "Status filter must be either 'open' or 'closed'"
}
Was this page helpful?