Released docs. You are viewing the documentation published with v0.34.0. Development docs are available at Latest.
List authorized absence records
const url = 'https://casework.example.test/v1/directory/absences?limit=1000';const options = { method: 'GET', headers: {'Registry-Casework-Profile': 'example', Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://casework.example.test/v1/directory/absences?limit=1000' \ --header 'Authorization: Bearer <token>' \ --header 'Registry-Casework-Profile: example'Staff see their own absences, Supervisors see absences for staff they currently supervise, and Administrators see all absence records. The response carries the current global directoryRevision required in If-Match for a following absence write. Its items contain at most 1000 caller-authorized records ordered by start time and absenceId. The serialized page is bounded to 2 MiB and may contain fewer records than limit to fit that bound. Follow nextCursor until it is absent to enumerate every record.
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.
Query Parameters
Section titled “Query Parameters”Opaque 15-minute cursor bound to the caller, selected profile, role, page size, and directory revision. On cursor.expired or a changed directory revision (cursor.invalid), restart without the cursor. Authority is checked again on every page.
Page size from 1 through 1000; defaults to 1000. Values outside that range are request.invalid.
Responses
Section titled “ Responses ”Success
object
object
object
object
Examplegenerated
{ "directoryRevision": 1, "items": [ { "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" } ], "nextCursor": "example"}Headers
Section titled “Headers”W3C trace context for the request and response.
Problem response: cursor.invalid, request.invalid, source-profile.not-applicable
object
object
object
Example
{ "code": "cursor.invalid", "detail": "The cursor is invalid for this request.", "status": 400, "title": "Cursor invalid", "type": "https://id.registrystack.org/problems/registry-casework/cursor/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: cursor.expired
object
Example
{ "code": "cursor.expired", "detail": "This cursor has expired. Start again without a cursor and deduplicate entries by eventId.", "status": 410, "title": "Cursor expired", "type": "https://id.registrystack.org/problems/registry-casework/cursor/expired"}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: 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.