Rensei docs

Release the live claim on an issue for a stage.

Marks the live claim released with the given reason. Never writes the tracker - a human moved the issue, or the dispatched unit ended. 404 no_live_claim when there is nothing to release. 403 claimant_mismatch when the caller is neither the claim's own claimant, its creator, nor a project admin - or when an explicit `claimant` in the body does not match the row.

POST
/api/projects/{projectId}/issues/{issueId}/release

Authorization

headerAuthorizationBearer <WorkOS user access token>

WorkOS user access token created by the Rensei CLI. The authenticated organization is resolved from membership and may be narrowed with X-Rensei-Org.

Path Parameters

projectId*string

The project id.

issueId*string

The tracker-native issue identifier, e.g. "TEAM-123".

Request Body

application/json
  1. body
stageId*string
Length1 <= length
reason*string
Value in"human_moved_issue""unit_cancelled""manual"
claimant?string

Optional explicit assertion of which claimant/persona is being released — validated against the live row; refuses claimant_mismatch on a mismatch. Not required: the releasing caller is separately authorized as the row's own claimant, its creator, or a project admin.

Length1 <= length

Response Body

The claim was released.

application/json
  1. response
claim*
Example Request
curl -X POST 'https://app.rensei.ai/api/projects/string/issues/string/release' \  -H 'Content-Type: application/json' \  -d '{  "stageId": "string",  "reason": "human_moved_issue"}'
Example Response
{  "claim": {    "id": "string",    "organizationId": "string",    "projectId": "string",    "issueId": "string",    "stageId": "string",    "claimant": "string",    "createdBy": "string",    "observedStatus": "string",    "writtenStatus": "string",    "status": "claimed",    "claimedAt": "string",    "leaseExpiresAt": "string",    "releasedAt": "string",    "releaseReason": "string",    "createdAt": "string",    "updatedAt": "string"  }}