API Reference
All Hono API routes available at /api — protected routes require an API key
Authentication
Protected routes require a valid API key in the Authorization header:
Authorization: Bearer sk_live_<your-api-key>
Generate API keys in Settings → API Keys.
CRM contacts per organisation
/api/v1/clientsAPI key required- GET
/api/v1/clients/List clients (paginated, filterable)
- POST
/api/v1/clients/Create a client
- GET
/api/v1/clients/:publicIdGet a client by ID
- PUT
/api/v1/clients/:publicIdUpdate a client
- DELETE
/api/v1/clients/:publicIdDelete a client
Service orders and state machine transitions
/api/v1/ordersAPI key required- GET
/api/v1/orders/List orders
- POST
/api/v1/orders/Create an order
- GET
/api/v1/orders/:publicIdGet an order
- PUT
/api/v1/orders/:publicIdUpdate an order
- DELETE
/api/v1/orders/:publicIdDelete an order
Service catalog — name, price, delivery days
/api/v1/servicesAPI key required- GET
/api/v1/services/List services
- POST
/api/v1/services/Create a service
- GET
/api/v1/services/:publicIdGet a service
- PUT
/api/v1/services/:publicIdUpdate a service
- DELETE
/api/v1/services/:publicIdDelete a service
Invoice records and line items
/api/v1/invoicesAPI key required- GET
/api/v1/invoices/List invoices
- POST
/api/v1/invoices/Create an invoice
- GET
/api/v1/invoices/:publicIdGet an invoice
- PUT
/api/v1/invoices/:publicIdUpdate an invoice
- DELETE
/api/v1/invoices/:publicIdDelete an invoice
Help desk tickets and replies
/api/v1/ticketsAPI key required- GET
/api/v1/tickets/List tickets
- POST
/api/v1/tickets/Create a ticket
- GET
/api/v1/tickets/:publicIdGet a ticket
- PUT
/api/v1/tickets/:publicIdUpdate a ticket
Order message threads
/api/v1/messagesAPI key required- GET
/api/v1/messages/List messages
- POST
/api/v1/messages/Send a message
Reusable AI agent blueprints
/api/v1/agents/definitionsAPI key required- GET
/api/v1/agents/definitions/List agent definitions
- POST
/api/v1/agents/definitions/Create an agent definition
- GET
/api/v1/agents/definitions/:publicIdGet an agent definition
- PUT
/api/v1/agents/definitions/:publicIdUpdate an agent definition
- DELETE
/api/v1/agents/definitions/:publicIdDelete an agent definition
Agent job executions and status tracking
/api/v1/agent-jobsAPI key required- GET
/api/v1/agent-jobs/List agent jobs
- POST
/api/v1/agent-jobs/Queue an agent job
- GET
/api/v1/agent-jobs/:publicIdGet a job
Client subscription records
/api/v1/subscriptionsAPI key required- GET
/api/v1/subscriptions/List subscriptions
- POST
/api/v1/subscriptions/Create a subscription
- GET
/api/v1/subscriptions/:publicIdGet a subscription
- DELETE
/api/v1/subscriptions/:publicIdCancel a subscription
Form schemas and submissions
/api/v1/formsAPI key required- GET
/api/v1/forms/List form schemas
- POST
/api/v1/forms/Create a form schema
- GET
/api/v1/forms/:publicIdGet a form schema
- GET
/api/v1/forms/:publicId/submissionsList submissions
Generated reports per org
/api/v1/reportsAPI key required- GET
/api/v1/reports/List reports
- POST
/api/v1/reports/Generate a report
- GET
/api/v1/reports/:publicIdGet a report
Outgoing webhook endpoint management
/api/v1/...API key required- GET
/api/v1/.../webhooksList webhook endpoints
- POST
/api/v1/.../webhooksCreate a webhook endpoint
- DELETE
/api/v1/.../webhooks/:publicIdDelete a webhook endpoint
Programmatic API key management
/api/v1/api-keysAPI key required- GET
/api/v1/api-keys/List API keys
- POST
/api/v1/api-keys/Create an API key (returns raw key once)
- POST
/api/v1/api-keys/:publicId/revokeRevoke an API key
- DELETE
/api/v1/api-keys/:publicIdDelete an API key
Organisation-level key/value settings
/api/v1/org-settingsAPI key required- GET
/api/v1/org-settings/Get all org settings
- PUT
/api/v1/org-settings/Update org settings
Immutable record of key org actions
/api/v1/audit-logsAPI key required- GET
/api/v1/audit-logs/List audit logs (paginated)
Public form submission endpoint — no auth required
/api/formsPublic- POST
/api/forms/:formPublicId/submitSubmit a public intake form
System health check
/apiPublic- GET
/api/healthReturns { status: "ok" }