Skip to content

Working with tickets

Discover the board first

bash
curl https://api.stoneity.com/public/v1/boards -H "Authorization: Bearer $KEY"
curl https://api.stoneity.com/public/v1/boards/65fef78fa23b4d12ab34cd56 -H "Authorization: Bearer $KEY"

The board response lists every field (fields[].id, type, isRequired, options[] for dropdowns) and every state (states[].id, name, isFirst, isLast). Use these ids in ticket calls.

Create

POST /tickets needs boardId and subject. Optional: description, priority, requesterUserId or requesterEmail, assigneeUserId, assigneeGroupId, and fields[] for custom fields. Mandatory board fields must be present; otherwise you get 400 with the field name in the message.

Read

  • GET /tickets/{id} accepts the ticket id or the ticket number (e.g. INC-1042).
  • GET /tickets?boardId=… supports stateId, assigneeUserId, requesterUserId, createdSince, createdUntil (ISO 8601), q and order=asc|desc.

Update

OperationEndpoint
Change custom fieldsPATCH /tickets/{id} with fields[]
Change statePOST /tickets/{id}/state with stateId (board transition rules and approvals apply)
AssignPOST /tickets/{id}/assignee with userId and/or groupId; both empty unassigns
CommentPOST /tickets/{id}/comments with body and isInternal
Attach a filePOST /tickets/{id}/attachments as multipart/form-data (file, optional fieldId, isInternal)
DownloadGET /tickets/{id}/attachments/{key}

Every mutation returns the updated ticket representation.

Ticket representation

json
{
  "id": "65fef78fa23b4d12ab34cd56",
  "number": "INC-1042",
  "boardId": "…",
  "subject": "VPN access issue",
  "description": "…",
  "state": { "id": "…", "name": "Open", "group": "Open", "isFirst": true, "isLast": false },
  "assignee": { "userId": 17, "groupId": null },
  "requester": { "userId": null, "email": "jane@example.com" },
  "priority": "High",
  "channel": "api",
  "createdBy": 418,
  "createdAt": "2026-09-07T12:00:00Z",
  "updatedAt": "2026-09-07T12:05:00Z",
  "resolvedAt": null,
  "isWaitingApproval": false,
  "commentCount": 1,
  "attachmentCount": 0,
  "fields": [ { "fieldId": "…", "name": "Source system", "type": "Text", "value": "Shop" } ]
}

Stoneity Public API v1