Tickets
Overview
Work items attached to a contact or conversation, for issues that outlive a single chat session. Notes on a ticket are internal — they are never delivered to the customer.
5 endpoints. Requires tickets.view or tickets.manage or ticket_notes.manage on the token.
| Method | Path | What it does |
|---|---|---|
GET | /tickets | List tickets |
POST | /tickets | Create a ticket |
GET | /tickets/{id} | Get ticket details |
PUT | /tickets/{id} | Update a ticket |
POST | /tickets/{id}/notes | Add a ticket note |
Endpoints
GET /tickets
List tickets
List tickets with pagination and optional filtering. Requires `tickets.view` permission.
Requires the tickets.view permission.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | optional | Page number Defaults to 1. |
limit | query | integer | optional | Items per page Defaults to 20. |
status | query | OPEN · IN_PROGRESS · RESOLVED · CLOSED | optional | Filter by status |
assigneeId | query | string | optional | Filter by agent ID |
contactId | query | string | optional | Filter by contact ID |
Example
curl -X GET "https://orqestra.id/api/v2/tickets" \
-H "Authorization: Bearer $ORQESTRA_TOKEN"
Responds with 200 · 401 · 403. Try it in the playground →
POST /tickets
Create a ticket
Create a support ticket. Contact is resolved by contactId, contactWaId (phone number), or contactIgId (Instagram ID). Requires `tickets.manage` permission.
Requires the tickets.manage permission.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
contactWaId | string | optional | Contact WhatsApp ID (phone number) |
contactIgId | string | optional | Contact Instagram ID |
contactId | string | optional | Contact ID (alternative to contactWaId/contactIgId) |
title | string | required | Ticket title |
priority | object | optional | Ticket priority |
status | object | optional | Initial status |
assigneeId | string | optional | Agent ID to assign |
description | string | optional | Initial note body |
chatId | string | optional | Link to existing chat |
Example
curl -X POST "https://orqestra.id/api/v2/tickets" \
-H "Authorization: Bearer $ORQESTRA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Example"
}'
Responds with 200 · 400 · 401 · 403 · 429. Try it in the playground →
GET /tickets/{id}
Get ticket details
Get full ticket details including notes. Requires `tickets.view` permission.
Requires the tickets.view permission.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | required | Ticket ID or Ticket Number |
Example
curl -X GET "https://orqestra.id/api/v2/tickets/$id" \
-H "Authorization: Bearer $ORQESTRA_TOKEN"
Responds with 200 · 401 · 403 · 404. Try it in the playground →
PUT /tickets/{id}
Update a ticket
Update ticket status, priority, or assignee. Requires `tickets.manage` permission.
Requires the tickets.manage permission.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | required | Ticket ID or Ticket Number |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
status | OPEN · IN_PROGRESS · RESOLVED · CLOSED | optional | New ticket status |
priority | LOW · MEDIUM · HIGH · URGENT | optional | New priority |
assigneeId | string | optional | Agent ID to reassign |
Example
curl -X PUT "https://orqestra.id/api/v2/tickets/$id" \
-H "Authorization: Bearer $ORQESTRA_TOKEN"
Responds with 200 · 400 · 401 · 403 · 404 · 429. Try it in the playground →
POST /tickets/{id}/notes
Add a ticket note
Add an internal note to a ticket. Requires `tickets.manage` permission.
Requires the ticket_notes.manage permission.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | required | Ticket ID or Ticket Number |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
body | string | required | Note content |
authorId | string | optional | Optional author user ID |
Example
curl -X POST "https://orqestra.id/api/v2/tickets/$id/notes" \
-H "Authorization: Bearer $ORQESTRA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"body": "Hello from Orqestra"
}'
Responds with 200 · 401 · 403 · 404 · 429. Try it in the playground →