Documentation
Aozo Helpdesk API
Tickets, customers, knowledge base and support analytics — the REST surface behind helpdesk.aozo.in.
⚠️ Different header convention from CRM/Accounting
Helpdesk does not read an aozo_-prefixed key from the Authorization header. Instead it expects two separate headers: x-api-key and x-workspace-id. A plain Bearer JWT still works for user-session requests.
Tickets
| Method | Path | Description |
| GET | /tickets | List tickets |
| POST | /tickets | Create a ticket (seat/ticket-limit checked) |
| GET | /tickets/:id | Ticket details |
| PUT | /tickets/:id | Update — status, priority, agentId |
| DELETE | /tickets/:id | Delete a ticket |
| GET | /tickets/:id/comments | List comments on a ticket |
| POST | /tickets/:id/comments | Add a comment |
curl -X POST https://helpdesk.aozo.in/api/tickets \
-H "x-api-key: aozo_your_key" \
-H "x-workspace-id: YOUR_ORG_ID" \
-H "Content-Type: application/json" \
-d '{
"subject": "Invoice not received",
"description": "Customer says the GST invoice email never arrived.",
"priority": "high",
"email": "customer@example.com",
"channel": "email"
}'
Customers
| Method | Path | Description |
| GET | /customers | List customers |
| POST | /customers | Create a customer |
| GET | /customers/:id | Customer details |
| PUT | /customers/:id | Update a customer |
| DELETE | /customers/:id | Delete a customer |
| GET | /customers/:id/tickets | Tickets raised by this customer |
| GET | /customers/:id/interactions | Interaction history |
| GET | /customers/:id/activity | Activity feed |
| GET | /customers/:id/time-entries | Billable time logged against this customer |
| POST | /customers/:id/time-entries | Log a time entry (minutes, description, ticketId) |
Knowledge Base
Two surfaces: an authenticated one for managing content, and a public one that powers your help-center pages — no login required for readers.
| Method | Path | Description |
| GET | /knowledge-base/categories | List categories (auth) |
| POST | /knowledge-base/categories | Create a category (auth) |
| GET | /knowledge-base/articles | List articles (auth) |
| POST | /knowledge-base/articles | Create an article (auth) |
| GET | /public/kb/:workspaceId/categories | Public — list categories, no auth |
| GET | /public/kb/:workspaceId/search | Public — full-text article search |
| GET | /public/kb/:workspaceId/articles/:slug | Public — read one article |
Notifications
| Method | Path | Description |
| GET | /notifications/vapidPublicKey | Public — web-push VAPID public key |
| GET | /notifications | List notifications (auth) |
| POST | /notifications/read | Mark one or all as read (auth) |
| POST | /notifications/subscribe | Register a push subscription (auth) |
Analytics
| Method | Path | Description |
| GET | /analytics/dashboard | Ticket counts by status/priority, 7-day created-vs-resolved trend |
Billing
Subscription changes go through Razorpay and require workspace ADMIN/OWNER.
| Method | Path | Description |
| POST | /payments/create-order | Create a Razorpay subscription — ADMIN/OWNER |
| POST | /payments/downgrade | Cancel/downgrade a plan — ADMIN/OWNER |