Say something about this case
const url = 'https://beta-api.plune.ai/v1/test-cases/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/comments';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"body":"Step 3 is stale since the checkout redesign — the coupon field moved into the order summary."}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://beta-api.plune.ai/v1/test-cases/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/comments \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "body": "Step 3 is stale since the checkout redesign — the coupon field moved into the order summary." }'B8-team T5 (api.ts → addComment, the «Write a comment…» form). Plain text with its line breaks; trimmed, never empty, at most 8192 bytes. No edit afterwards — a changed mind is a second comment — and no Markdown (OQ-2). Audited on the case as test_case/comment, the text in the diff. A reader is refused at the boundary with 403 read-only member.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Header Parameters
Section titled “Header Parameters ”Which of your projects to act in — an id from GET /v1/projects. Absent, your default project. A project you are not a member of answers 404, the same as one that does not exist. Ignored under a bearer token, which is bound to the project it was minted in.
Request Body required
Section titled “Request Body required ”object
Trimmed; at most 8192 bytes (not characters) — the same cap the column enforces. Whitespace alone is refused.
Example
{ "body": "Step 3 is stale since the checkout redesign — the coupon field moved into the order summary."}Responses
Section titled “ Responses ”Written
What somebody said about a case (B8-team T5): plain text with its line breaks, no Markdown, no edit — a changed mind is a second comment. The author is a userId; the dashboard names them from GET /v1/members.
object
Example
{ "id": "6f1c2b3a-0000-4000-8000-0000000000a4", "authorId": "6f1c2b3a-0000-4000-8000-0000000000a2", "body": "Step 3 is stale since the checkout redesign — the coupon field moved into the order summary."}Empty, or over the byte cap
object
Example
{ "error": "validation failed — body: a comment needs some text"}No / invalid token or session
A reader asked
object
Example
{ "error": "read-only member"}No such case in this project, or it is in the bin
object
Example generated
{ "error": "example"}Rate-limited: either the per-route throttle or a tenant quota. Retry-After carries the seconds until the window rolls over.
object
Example generated
{ "error": "example"}Headers
Section titled “Headers ”Seconds until the window rolls over