The project’s bugs
const url = 'https://beta-api.plune.ai/v1/bugs?state=open&sort=newest&deleted=true&canBeClosed=true&limit=50&offset=0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://beta-api.plune.ai/v1/bugs?state=open&sort=newest&deleted=true&canBeClosed=true&limit=50&offset=0' \ --header 'Authorization: Bearer <token>'The live bugs of the project, newest first by default. ?state= (open, closed, all - the default), ?caseId= (bugs linked to that case), ?createdBy= (a user id), ?q= (a bug number - BUG-12, bug-12 or 12 - or a part of the title, case-insensitive) narrow; ?sort= is newest, oldest or updated (the last change first). ?canBeClosed=true keeps the bugs that can be closed - open, with a live case, every live case with N green runs in a row, not put off for this series by «Wait more» (streak.canBeClosed) - and false every other one (#2163). ?deleted=true lists what is in the Bin instead, for the owner who brings a bug back (403 for anyone else). ?limit= (1 to 200, default 50) and ?offset= page it; total counts every match. Anyone in the project reads the live ones, a reader too. A project that has not turned the section on lists none of them (what is in the Bin is listed regardless).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query 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.
Responses
Section titled “ Responses ”The bugs
object
object
The bug’s name for people (BUG-12): the project’s own number, handed out in order, never reused and never changed.
Whose truth the row is. plune is a bug of the project’s own; jira (a mirror of a Jira ticket, #1069) is not written by this version.
The author’s user id, to be named from GET /v1/members; null when the account is gone.
The live cases linked to the bug.
«Passed X of N» (#1067, ADR 0057 §4). A linked case counts its green runs in a row while the bug is open: passed adds one, failed or broken resets, blocked, skipped and a muted result neither add nor reset; a run is one verdict, as the run itself counts the case - its latest result in each combination (a retry that passed is a pass), then the worst of the combinations; green counts once every combination of the run has a result, red at once (a failure in any combination); only a run newer than the one last counted and made after the case was linked counts, and with an environment in the rule only a run on it.
object
The smallest streak among the live linked cases; 0 with none.
N of the project rule (bugs.close.n of the settings).
The bug is open, has a live case, and every live case has N in a row - and nobody put it off for this series (POST /v1/bugs/{id}/wait, #2163). Under the rule after_n the bug then closes itself, unless flaky.
A live linked case is flaky: the streak is weak proof, and the rule after_n only tells, it does not close.
Closed by its streak (the rule after_n), not by a person (#1067). A person’s close or reopen sets it back to false.
Open again because a linked case failed after its streak closed it - the list’s badge of a regression (#2163). A person’s move clears it.
Every bug the filters match, not the page.
Example
{ "bugs": [ { "id": "6f1c2b3a-0000-4000-8000-0000000000f6", "key": "BUG-12", "number": 12, "source": "plune", "title": "The cart loses an item after a coupon is applied", "state": "open", "createdBy": "6f1c2b3a-0000-4000-8000-0000000000a2", "caseCount": 1, "commentCount": 2, "createdAt": "2026-09-16T09:12:04.151Z", "updatedAt": "2026-09-16T09:12:04.151Z", "streak": { "passed": 2, "n": 3, "canBeClosed": false, "flaky": false }, "autoClosed": false, "reopenedByRegression": false } ], "total": 1}A state, sort, deleted or canBeClosed outside its words
object
Example generated
{ "error": "example"}No / invalid token or session
?deleted=true asked by someone who is not an owner of the project