Unreleased documentation. These pages follow the main branch and can change before the next release. For supported guidance, use v0.43.0.
Create or recover review request
const url = 'https://example.com/v1/review-requests';const options = { method: 'POST', headers: { 'registry-review-profile': 'example', 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"context":{"mode":"submitted","snapshot":{}},"initiator":{"issuer":"example","subject":"example"},"policy":{"digest":"example","id":"example","version":"example"},"requesterReference":"example","resultConstraints":{},"subject":{"digest":"example","id":"example","source":"example","type":"example","version":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/review-requests \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --header 'registry-review-profile: example' \ --data '{ "context": { "mode": "submitted", "snapshot": {} }, "initiator": { "issuer": "example", "subject": "example" }, "policy": { "digest": "example", "id": "example", "version": "example" }, "requesterReference": "example", "resultConstraints": {}, "subject": { "digest": "example", "id": "example", "source": "example", "type": "example", "version": "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”Header Parameters
Section titled “Header Parameters”The caller’s exact governed access profile for this protocol.
Retain this exact key and request bytes for explicit recovery.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Select the trusted provider’s current policy, or require one exact binding. The selector stays in the submission identity; acceptance records the concrete binding.
object
object
object
Responses
Section titled “Responses”Success
object
object
object
Example generated
{ "policy": { "digest": "example", "id": "example", "version": "example" }, "requestId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "subject": { "digest": "example", "id": "example", "source": "example", "type": "example", "version": "example" }, "submissionDigest": "example"}Headers
Section titled “Headers”Authenticated trusted producer identity for this acceptance or exact recovery. Optional for compatibility with older providers; never a substitute for the submission digest.
W3C trace context.
Success
object
object
object
Example generated
{ "policy": { "digest": "example", "id": "example", "version": "example" }, "requestId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "subject": { "digest": "example", "id": "example", "source": "example", "type": "example", "version": "example" }, "submissionDigest": "example"}Headers
Section titled “Headers”Authenticated trusted producer identity for this acceptance or exact recovery. Optional for compatibility with older providers; never a substitute for the submission digest.
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”Bounded value-free JSON path; present together with the validation reason.
Closed value-free validation category; present together with the validation path.
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.