/api/v1. The action is the last path segment, not the HTTP verb.
client.tickets.create().
Send JSON. Every body includes workspaceId. List routes also accept limit, cursor, and direction.
Reads
List and info responses wrap the entity:Mutations
Creates and updates return a public mutation payload:{ "success": true, "entityId": "…" }.
Idempotency
On create and send message, send an optional header so retries are safe:IDEMPOTENCY_CONFLICT).