Unreleased documentation. These pages follow the main branch and can change before the next release. For supported guidance, use v0.43.0.
Save review decision draft
const url = 'https://example.com/v1/review-tasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/draft';const options = { method: 'PUT', headers: { 'registry-casework-profile': 'example', 'If-Match': 'example', 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"body":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/v1/review-tasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/draft \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --header 'If-Match: example' \ --header 'registry-casework-profile: example' \ --data '{ "body": "example" }'Recovery repeats the exact request and caller-supplied idempotency key. Clients do not retry mutations implicitly.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”The caller’s exact governed access profile for this protocol.
Current-source lists, open work, source context, task mutations and new notes require the human caller’s source-valid profile and credential. Retained terminal task and history reads use Casework authority. Submitted context requires no provider.
Quoted current revision.
Retain this exact key and request bytes for explicit recovery.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Example generated
{ "body": "example"}Responses
Section titled “Responses”Success
object
A person is qualified by the issuer that authenticated the subject.
object
Example generated
{ "author": { "issuer": "example", "subject": "example" }, "body": "example", "revision": 1, "taskId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "updatedAt": "2026-04-15T12:00:00Z"}Headers
Section titled “Headers”W3C trace context.
Problem: request.invalid, source-profile.not-applicable, source-profile.required
object
object
object
Example
{ "code": "request.invalid", "detail": "The Casework request is invalid.", "status": 400, "title": "Invalid request", "type": "https://id.registrystack.org/problems/registry-casework/request/invalid"}Headers
Section titled “Headers”W3C trace context.
Problem: authentication.refused
object
Example
{ "code": "authentication.refused", "detail": "The bearer credential is missing, invalid, or expired. Sign in again.", "status": 401, "title": "Authentication refused", "type": "https://id.registrystack.org/problems/registry-casework/authentication/refused"}Headers
Section titled “Headers”W3C trace context.
Problem: operation.not-authorized, profile.not-authorized, profile.not-human, review.distinct-approver-required, review.initiator-excluded
object
object
object
object
object
Example
{ "code": "operation.not-authorized", "detail": "Your current Casework authority does not allow this operation.", "status": 403, "title": "Operation not authorized", "type": "https://id.registrystack.org/problems/registry-casework/operation/not-authorized"}Headers
Section titled “Headers”W3C trace context.
Problem: request.not-found
object
Example
{ "code": "request.not-found", "detail": "The requested Casework route does not exist.", "status": 404, "title": "Route not found", "type": "https://id.registrystack.org/problems/registry-casework/request/not-found"}Headers
Section titled “Headers”W3C trace context.
Problem: idempotency.key-reused, review.policy-mismatch, review.submission-conflict, review.task-not-held
object
object
object
object
Example
{ "code": "idempotency.key-reused", "detail": "This idempotency key was used for a different request.", "status": 409, "title": "Idempotency key reused", "type": "https://id.registrystack.org/problems/registry-casework/idempotency/key-reused"}Headers
Section titled “Headers”W3C trace context.
Problem: idempotency.expired, review.result-expired
object
object
Example
{ "code": "idempotency.expired", "detail": "The stored response for this idempotency key has expired. Reconcile the original operation before choosing a new key.", "status": 410, "title": "Idempotency window expired", "type": "https://id.registrystack.org/problems/registry-casework/idempotency/expired"}Headers
Section titled “Headers”W3C trace context.
Problem: precondition.failed
object
Example
{ "code": "precondition.failed", "detail": "The item or directory changed since you loaded it. Reload and try again.", "status": 412, "title": "Precondition failed", "type": "https://id.registrystack.org/problems/registry-casework/precondition/failed"}Headers
Section titled “Headers”W3C trace context.
Problem: request.body-too-large
object
Example
{ "code": "request.body-too-large", "detail": "The request body exceeds the one MiB limit.", "status": 413, "title": "Request body too large", "type": "https://id.registrystack.org/problems/registry-casework/request/body-too-large"}Headers
Section titled “Headers”W3C trace context.
Problem: request.unsupported-media-type
object
Example
{ "code": "request.unsupported-media-type", "detail": "Send a JSON request body with Content-Type application/json.", "status": 415, "title": "Unsupported media type", "type": "https://id.registrystack.org/problems/registry-casework/request/unsupported-media-type"}Headers
Section titled “Headers”W3C trace context.
Problem: absence.cover-cycle, absence.invalid-period, absence.overlap, absence.self-cover, request.unprocessable, review.initiator-required
object
object
object
object
object
object
Example
{ "code": "absence.cover-cycle", "detail": "Choose cover assignments that do not return to an earlier person during a shared period.", "status": 422, "title": "Absence cover cycle", "type": "https://id.registrystack.org/problems/registry-casework/absence/cover-cycle"}Headers
Section titled “Headers”W3C trace context.
Problem: precondition.required
object
Example
{ "code": "precondition.required", "detail": "This mutation requires the revision that you loaded.", "status": 428, "title": "Precondition required", "type": "https://id.registrystack.org/problems/registry-casework/precondition/required"}Headers
Section titled “Headers”W3C trace context.
Problem: runtime.failure
object
Example
{ "code": "runtime.failure", "detail": "Casework could not complete the request.", "status": 500, "title": "Casework runtime failure", "type": "https://id.registrystack.org/problems/registry-casework/runtime/failure"}Headers
Section titled “Headers”W3C trace context.
Problem: source.bad-gateway, source.version-mismatch, source.version-unavailable
object
object
object
Example
{ "code": "source.bad-gateway", "detail": "The source returned a response that does not match its registered contract.", "status": 502, "title": "Invalid source response", "type": "https://id.registrystack.org/problems/registry-casework/source/bad-gateway"}Headers
Section titled “Headers”W3C trace context.
Problem: service.unavailable
object
Example
{ "code": "service.unavailable", "detail": "Casework storage is unavailable. Try again after the service recovers.", "status": 503, "title": "Casework service unavailable", "type": "https://id.registrystack.org/problems/registry-casework/service/unavailable"}Headers
Section titled “Headers”W3C trace context.