Comment on an item
Append a comment to a queue item's thread. The body is markdown (mentions like @teammate notify that person; @shipeasy asks Jarvis, the AI agent, to reply).…
Append a comment to a queue item's thread. The body is markdown (mentions
like @teammate notify that person; @shipeasy asks Jarvis, the AI agent,
to reply). Pass parentId to reply under an existing top-level comment
(one level of threading — a reply to a reply attaches to the same parent).
Create-only and append-only, so it is safe for restricted ops keys — the same channel the ops loop and Jarvis use to leave a note on an item.
Authorization
bearerSdkKey Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".
In: header
Path Parameters
Per-project item number (e.g. 7) or the full ops item id.
1 <= length <= 128Header Parameters
Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://shipeasy.ai/api/admin/ops/string/comments" \ -H "Content-Type: application/json" \ -d '{ "body": "Repro\'d on iOS Safari 17 — the button overflows its container. cc @alice" }'{
"id": "cm_01j7w8a1b2c3d4e5f6g7h8i9j0"
}{
"error": "Malformed request (bad JSON, missing project scope).",
"code": "BAD_REQUEST"
}{
"error": "Missing or invalid admin SDK key.",
"code": "UNAUTHORIZED"
}{
"error": "Key is valid but not allowed to act on this project.",
"code": "FORBIDDEN"
}{
"error": "The resource does not exist or is not visible to the caller.",
"code": "NOT_FOUND"
}{
"error": "The request body failed structural (schema) validation.",
"code": "VALIDATION"
}