The project’s quotas and what is left
const url = 'https://beta-api.plune.ai/v1/quotas';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/quotas \ --header 'Authorization: Bearer <token>'Each ceiling of the project with limit, used, remaining and resetsAt — the numbers a write is judged by, so a refusal is never a surprise. The run quota is a rolling 24 hours (resetsAt is when its oldest run ages out); the case and review-queue quotas are working sets that only an action shrinks (resetsAt is null). A reader of the project may call it: a project over a quota can still see why.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”The quotas
object
object
object
The ceiling. A write that would take used past it is refused with 429.
What the project holds now, counted by the same query that refuses a write.
limit - used, never below 0.
When the oldest counted run ages out of the rolling 24 hours and a slot frees on its own. null for the two quotas only an action frees (delete cases, decide queue items), and for a run quota with no runs in the window.
object
The ceiling. A write that would take used past it is refused with 429.
What the project holds now, counted by the same query that refuses a write.
limit - used, never below 0.
When the oldest counted run ages out of the rolling 24 hours and a slot frees on its own. null for the two quotas only an action frees (delete cases, decide queue items), and for a run quota with no runs in the window.
object
The ceiling. A write that would take used past it is refused with 429.
What the project holds now, counted by the same query that refuses a write.
limit - used, never below 0.
When the oldest counted run ages out of the rolling 24 hours and a slot frees on its own. null for the two quotas only an action frees (delete cases, decide queue items), and for a run quota with no runs in the window.
object
The ceiling. A write that would take used past it is refused with 429.
What the project holds now, counted by the same query that refuses a write.
limit - used, never below 0.
When the oldest counted run ages out of the rolling 24 hours and a slot frees on its own. null for the two quotas only an action frees (delete cases, decide queue items), and for a run quota with no runs in the window.
Example generated
{ "quotas": { "runsPerDay": { "limit": 1, "used": 1, "remaining": 1, "resetsAt": "2026-04-15T12:00:00Z" }, "testCasesPerProject": { "limit": 1, "used": 1, "remaining": 1, "resetsAt": "2026-04-15T12:00:00Z" }, "bugsPerProject": { "limit": 1, "used": 1, "remaining": 1, "resetsAt": "2026-04-15T12:00:00Z" }, "pendingReviewItems": { "limit": 1, "used": 1, "remaining": 1, "resetsAt": "2026-04-15T12:00:00Z" } }}No / invalid token or session