Tickets
REST reference
Tickets API
Support tickets and help-desk teams.
List tickets
GET
/v1/ticketsCursor-paginated tickets, newest first.
Required scope: tickets:read.
Parameters
limitintegerPage size (1–100).
starting_afterstringCursor: the `id` of the last item from the previous page.
statusstringprioritystringtypestringcustomer_idstringassignee_idstringRequest
curl "https://api.asks.app/v1/tickets" \
-H "Authorization: Bearer $ASKS_API_KEY"Response 200
{
"object": "list",
"data": [
{
"object": "ticket",
"id": "string",
"number": 1,
"type": "string",
"subject": "string",
"description": {},
"status": "string",
"priority": "string",
"tags": [
"string"
],
"assignee_id": {},
"team_id": {},
"customer_id": {},
"category_id": {},
"source_conversation_id": {},
"sla_status": {},
"sla_policy_id": {},
"first_response_at": {},
"sla_first_response_due_at": {},
"sla_next_response_due_at": {},
"sla_resolution_due_at": {},
"summary": {},
"resolved_at": {},
"closed_at": {},
"created_at": {},
"updated_at": {}
}
],
"has_more": true,
"next_cursor": {}
}Retrieve a ticket
GET
/v1/tickets/{id}Required scope: tickets:read.
Request
curl "https://api.asks.app/v1/tickets/<id>" \
-H "Authorization: Bearer $ASKS_API_KEY"Response 200
{
"object": "ticket",
"id": "string",
"number": 1,
"type": "string",
"subject": "string",
"description": {},
"status": "string",
"priority": "string",
"tags": [
"string"
],
"assignee_id": {},
"team_id": {},
"customer_id": {},
"category_id": {},
"source_conversation_id": {},
"sla_status": {},
"sla_policy_id": {},
"first_response_at": {},
"sla_first_response_due_at": {},
"sla_next_response_due_at": {},
"sla_resolution_due_at": {},
"summary": {},
"resolved_at": {},
"closed_at": {},
"created_at": {},
"updated_at": {}
}Update a ticket
PATCH
/v1/tickets/{id}Change status, priority or assignment through the dashboard's paths. status: closed closes the linked conversation, writes the lifecycle note, emails the customer and emits the close webhooks. assignee_id assigns a member (null unassigns); team_id routes to a team queue. Set one of assignee_id / team_id, not both.
Required scope: tickets:write.
Request body
statusstringOne of: open, in_progress, closed.
prioritystringOne of: low, normal, high, urgent.
assignee_idstringnullteam_idstringRequest
curl -X PATCH "https://api.asks.app/v1/tickets/<id>" \
-H "Authorization: Bearer $ASKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "open",
"priority": "low",
"assignee_id": {},
"team_id": "string"
}'Response 200
{
"object": "ticket",
"id": "string",
"number": 1,
"type": "string",
"subject": "string",
"description": {},
"status": "string",
"priority": "string",
"tags": [
"string"
],
"assignee_id": {},
"team_id": {},
"customer_id": {},
"category_id": {},
"source_conversation_id": {},
"sla_status": {},
"sla_policy_id": {},
"first_response_at": {},
"sla_first_response_due_at": {},
"sla_next_response_due_at": {},
"sla_resolution_due_at": {},
"summary": {},
"resolved_at": {},
"closed_at": {},
"created_at": {},
"updated_at": {}
}List teams
GET
/v1/teamsActive help-desk teams a ticket can be routed to (unpaginated).
Required scope: tickets:read.
Request
curl "https://api.asks.app/v1/teams" \
-H "Authorization: Bearer $ASKS_API_KEY"Response 200
{
"object": "list",
"data": [
{
"object": "team",
"id": "string",
"name": "string",
"description": {},
"member_count": 1,
"created_at": {}
}
],
"has_more": true,
"next_cursor": {}
}