Skip to content

Where a run stands

GET
/v1/projects/{id}/case-generations/{generationId}
curl --request GET \
--url https://beta-api.plune.ai/v1/projects/example/case-generations/example \
--header 'Authorization: Bearer <token>'

The run’s state (queued, running, done, failed, cancelled), what went to the model, how many proposals it produced and skipped and why, its cost, and on failed the kind. A run still queued or running 30 minutes after it was asked for reads failed as stalled. Anyone in the project, as the review queue is.

id
required
string

An id from GET /v1/projects

generationId
required
string

The id a start answered with

The run

Media type application/json

One run (ADR 0067 point 4). It never holds the text: what went to the model is counted (fetched), masked secrets are counted (redactions), and the text itself lives only in the proposals the run wrote.

object
id
required
string
state
required
string
Allowed values: queued running done failed cancelled
inputKind
required
string
Allowed values: pasted-text jira-ticket
maxCases
required
integer
language
required
string
fetched
required

Characters of each field sent to the model, after masking.

object
title
required
integer
text
required
integer
redactions
required

How many places were masked as a secret before anything was sent.

integer
produced
required

Proposals put in the review queue, each pending.

integer
skipped
required

Proposals left out: invalid broke a bound of the proposal (the field named), over_limit came past maxCases.

Array<object>
object
index
required
integer
reason
required
string
Allowed values: invalid over_limit
field
string
cost
required

Tokens null = the provider reported none; costUsd null beside tokens = the model’s price is unknown — never 0. Counted in the project’s monthly AI limit.

object
inputTokens
required
integer
nullable
outputTokens
required
integer
nullable
costUsd
required
number
nullable
provider

Where the run was sent, once it started.

string
Allowed values: anthropic openrouter custom
model
string
failureKind

Only on failed.

string
Allowed values: key_rejected provider_rate_limited provider_unavailable invalid_response address_rejected timeout ai_unavailable queue_full stalled
requestedBy
required
string
createdAt
required
string format: date-time
startedAt
required
string format: date-time
nullable
finishedAt
required
string format: date-time
nullable
Example
{
"id": "6f1c2b3a-0000-4000-8000-0000000000aa",
"state": "queued",
"inputKind": "pasted-text",
"maxCases": 6,
"language": "en",
"fetched": {
"title": 14,
"text": 214
},
"redactions": 0,
"produced": 0,
"skipped": [],
"cost": {
"inputTokens": null,
"outputTokens": null,
"costUsd": null
},
"requestedBy": "6f1c2b3a-0000-4000-8000-0000000000a2",
"createdAt": "2026-10-25T09:00:00.000Z",
"startedAt": null,
"finishedAt": null
}

No / invalid token or session

No such project among yours, or no such run in it

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}