Released docs. You are viewing the documentation published with v0.34.0. Development docs are available at Latest.
Record an absence
const url = 'https://casework.example.test/v1/directory/absences';const options = { method: 'POST', headers: { 'Registry-Casework-Profile': 'example', 'If-Match': 'example', 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"cover":{"issuer":"example","subject":"example"},"from":"2026-04-15T12:00:00Z","person":{"issuer":"example","subject":"example"},"until":"2026-04-15T12:00:00Z"}'};
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://casework.example.test/v1/directory/absences \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --header 'If-Match: example' \ --header 'Registry-Casework-Profile: example' \ --data '{ "cover": { "issuer": "example", "subject": "example" }, "from": "2026-04-15T12:00:00Z", "person": { "issuer": "example", "subject": "example" }, "until": "2026-04-15T12:00:00Z" }'Uses the directory revision in If-Match. Staff can manage their own absence with cover from the same team; Supervisors can manage currently supervised staff; Administrators can manage any directory staff. The period is start-inclusive and end-exclusive.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters”Optional W3C trace context continued in the response.
Explicit Casework access profile. It never selects BReg authority.
Quoted nonnegative signed 64-bit Casework item or directory revision.
Caller-selected ASCII graphic key bound to this exact mutation.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
Examplegenerated
{ "cover": { "issuer": "example", "subject": "example" }, "from": "2026-04-15T12:00:00Z", "person": { "issuer": "example", "subject": "example" }, "until": "2026-04-15T12:00:00Z"}Responses
Section titled “ Responses ”Success
object
object
object
Examplegenerated
{ "absenceId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "cover": { "issuer": "example", "subject": "example" }, "from": "2026-04-15T12:00:00Z", "person": { "issuer": "example", "subject": "example" }, "revision": 1, "until": "2026-04-15T12:00:00Z"}Headers
Section titled “Headers”W3C trace context for the request and response.
Problem response: request.invalid
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 for the request and response.
Problem response: 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”Bearer authentication challenge.
W3C trace context for the request and response.
Problem response: operation.not-authorized, profile.not-authorized, profile.not-human
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 for the request and response.
Problem response: request.method-not-allowed
object
Example
{ "code": "request.method-not-allowed", "detail": "This route does not accept that HTTP method.", "status": 405, "title": "Method not allowed", "type": "https://id.registrystack.org/problems/registry-casework/request/method-not-allowed"}Headers
Section titled “Headers”W3C trace context for the request and response.
Problem response: idempotency.key-reused
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 for the request and response.
Problem response: 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 for the request and response.
Problem response: 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 for the request and response.
Problem response: 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 for the request and response.
Problem response: absence.cover-cycle, absence.invalid-period, absence.overlap, absence.self-cover, request.unprocessable
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 for the request and response.
Problem response: 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 for the request and response.
Problem response: 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 for the request and response.
Problem response: 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”Seconds before retrying the unavailable dependency.
W3C trace context for the request and response.