Для разработчиков
История обращений
Все тикеты одного контакта — например, чтобы показать клиенту его обращения в личном кабинете или подсказать оператору прошлые запросы. К каждому тикету всегда добавлены last_message_preview и message_count, так что список «как в почте» строится без запроса за каждым тикетом.
GET
/api/v1/contacts/{contact_id}/ticketsТикеты контакта
Новые сверху. last_message_preview — первые 100 символов последнего сообщения, message_count — число сообщений; внутренние заметки в обоих не учитываются. Для несуществующего контакта приходит пустой список, а не 404.
Query-параметры:
status—new,open,in_progress,pending,resolved,closed; другое значение — 422page(по умолчанию 1),page_size(по умолчанию 20, максимум 100)
curl
curl "https://api.support.forestsnet.com/api/v1/contacts/44e1.../tickets?status=closed&page=1" \
-H "Authorization: Bearer sk_xxx"200 OK (часть полей тикета опущена)
{
"items": [
{
"id": "8a3f...",
"contact_id": "44e1...",
"subject": "Не работает оплата",
"status": "closed",
"priority": "high",
"rating": 5,
"created_at": "2026-03-20T10:00:00",
"closed_at": "2026-03-20T12:30:00",
...,
"last_message_preview": "Спасибо, всё заработало!",
"message_count": 7
}
],
"total": 12,
"page": 1,
"page_size": 20
}Python SDK
# Закрытые обращения контакта
tickets = client.tickets.history("CONTACT_ID", status="closed")
for t in tickets.items:
print(t.subject, t.last_message_preview, t.message_count, t.rating)В SDK у
tickets.history() по умолчанию status="closed". Чтобы получить тикеты во всех статусах, передайте status=None.Была ли страница полезной?

