Tickets
Тикет — основная сущность службы поддержки. Через API можно создавать тикеты, менять статус и приоритет, закрывать и переоткрывать, читать историю.
/api/v1/ticketsСписок тикетов
Возвращает постранично все тикеты workspace, отсортированные по дате создания (новые сверху).
Query параметры:
status—open,pending,resolved,closedpriority—low,normal,high,urgentsince— ISO 8601 datetime, фильтр по дате созданияcontact_id— UUID контакта, вернуть только его тикетыinclude_history—true, чтобы обогатить каждый элемент полямиlast_message_previewиmessage_countpage(default 1),page_size(default 20, max 100)
curl "https://api.support.forestsnet.com/api/v1/tickets?status=open&page_size=10" \
-H "Authorization: Bearer sk_xxx"{
"items": [
{
"id": "8a3f...",
"workspace_id": "1c2b...",
"contact_id": "44e1...",
"channel_id": null,
"channel_type": "api",
"assigned_to": null,
"department_id": null,
"subject": "Не приходит код подтверждения",
"status": "open",
"priority": "normal",
"tags": ["billing"],
"first_response_at": null,
"resolved_at": null,
"closed_at": null,
"rating": null,
"created_at": "2026-04-06T10:12:33.123456",
"updated_at": "2026-04-06T10:12:33.123456",
"last_message_preview": "Здравствуйте, не приходит код",
"message_count": 4
}
],
"total": 137,
"page": 1,
"page_size": 10
}/api/v1/tickets/{ticket_id}Получить тикет с историей сообщений
Возвращает тикет, последние сообщения и контакт.
Query параметры:
last_messages— сколько сообщений вернуть (1–200, default 20)
curl https://api.support.forestsnet.com/api/v1/tickets/8a3f.../?last_messages=50 \
-H "Authorization: Bearer sk_xxx"{
"ticket": { "id": "8a3f...", "status": "open", ... },
"messages": [ { "id": "...", "content": "Здравствуйте", ... } ],
"contact": { "id": "44e1...", "full_name": "Иван", "email": "i@x.ru", ... }
}/api/v1/ticketsСоздать тикет
Создаёт новый тикет. Контакт ищется (или создаётся) по email илиtelegram_id — хотя бы одно из этих полей в contact обязательно. Поддерживаются также name / full_name для имени контакта (любое из двух работает).
{
"subject": "Не работает оплата",
"priority": "high",
"tags": ["billing", "vip"],
"contact": {
"email": "ivan@example.com",
"name": "Иван Петров"
},
"message": "Пытаюсь оплатить тариф, ошибка 500."
}curl -X POST https://api.support.forestsnet.com/api/v1/tickets \
-H "Authorization: Bearer sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"priority":"high",
"contact":{"email":"ivan@example.com","name":"Иван"},
"message":"Не приходит код"
}'Ответ — JSON тикета (формат как в списке), статус 201.
/api/v1/tickets/{ticket_id}Изменить тикет
Можно менять status, priority, tags, subject. Передавайте только те поля, которые хотите обновить.
{ "priority": "urgent", "tags": ["vip", "p1"] }/api/v1/tickets/{ticket_id}/closeЗакрыть тикет
Переводит тикет в статус closed и проставляет closed_at.
/api/v1/tickets/{ticket_id}/reopenПереоткрыть тикет
Возвращает закрытый тикет в работу.