Tickets
REST reference

Tickets API

Support tickets and help-desk teams.

List tickets

GET/v1/tickets

Cursor-paginated tickets, newest first.

Required scope: tickets:read.

Parameters
limitinteger

Page size (1–100).

starting_afterstring

Cursor: the `id` of the last item from the previous page.

statusstring
prioritystring
typestring
customer_idstring
assignee_idstring
Request
cURL
curl "https://api.asks.app/v1/tickets" \
  -H "Authorization: Bearer $ASKS_API_KEY"
Response 200
JSON
{
  "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
curl "https://api.asks.app/v1/tickets/<id>" \
  -H "Authorization: Bearer $ASKS_API_KEY"
Response 200
JSON
{
  "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
statusstring

One of: open, in_progress, closed.

prioritystring

One of: low, normal, high, urgent.

assignee_idstringnull
team_idstring
Request
cURL
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
JSON
{
  "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/teams

Active help-desk teams a ticket can be routed to (unpaginated).

Required scope: tickets:read.

Request
cURL
curl "https://api.asks.app/v1/teams" \
  -H "Authorization: Bearer $ASKS_API_KEY"
Response 200
JSON
{
  "object": "list",
  "data": [
    {
      "object": "team",
      "id": "string",
      "name": "string",
      "description": {},
      "member_count": 1,
      "created_at": {}
    }
  ],
  "has_more": true,
  "next_cursor": {}
}
Chat on WhatsApp