# Helpdesk API

> List, create and update tickets and add comments.

Canonical page: https://aozo.in/docs/api/helpdesk-api
Last updated: 2026-11-12
Product: Open API
Section: Reference

Helpdesk endpoints are under /api/helpdesk. They need the Authorization and X-Organization-Id headers.

| Method and path | What it does |
| --- | --- |
| GET /api/helpdesk/tickets | List tickets, newest first |
| POST /api/helpdesk/tickets | Create a ticket |
| GET /api/helpdesk/tickets/:id | Get one ticket |
| PUT /api/helpdesk/tickets/:id | Update a ticket |
| DELETE /api/helpdesk/tickets/:id | Delete a ticket |
| GET /api/helpdesk/tickets/:id/comments | List a ticket’s comments |
| POST /api/helpdesk/tickets/:id/comments | Add a comment |

## List tickets

| Query | Meaning |
| --- | --- |
| status | Filter by status. Values are OPEN, PENDING, RESOLVED and CLOSED |
| spam | Set to true to list tickets marked as spam |
| projectId | Only tickets linked to a project |

**Request**

```bash
curl "https://api.aozo.in/api/helpdesk/tickets?status=OPEN" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Organization-Id: $ORG"
```

Each ticket includes its creator, agent and customer, and a count of comments. Non-admin users see the tickets they created or are assigned.

## Create a ticket

| Field | Type | Notes |
| --- | --- | --- |
| subject | string | Required |
| description | string | What the customer needs |
| priority | string | LOW, MEDIUM (default), HIGH or URGENT |
| customerId | number | An existing customer |
| contactName, accountName, email, phone | string | Who raised it |
| classification, productName, additionalInfo | string | Extra detail |
| dueDate, language, channel, projectId | various | Optional |

**Request**

```bash
curl -X POST https://api.aozo.in/api/helpdesk/tickets \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Organization-Id: $ORG" \
  -H "Content-Type: application/json" \
  -d '{ "subject": "Delivery address change", "description": "Please update the address on order 2047.", "priority": "HIGH", "email": "orders@example.com" }'
```

> **Note:** Ticket creation returns 403 if your plan’s ticket limit is reached. A ticket from a blocked sender, or a duplicate of one in the last 7 days, is marked as spam.

## Add a comment

**Body for POST /api/helpdesk/tickets/:id/comments**

```json
{ "content": "We have updated the address and will ship today.", "isInternal": false }
```

Set isInternal to true for a note only your team can see.
