Skip to content
Registry StackDocsDevelopment (unreleased)

List authorized absence records

GET
/v1/directory/absences
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.

traceparent
string

Optional W3C trace context continued in the response.

Registry-Casework-Profile
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9_.:-]+$/

Explicit Casework access profile. It never selects BReg authority.

cursor
string

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.

limit
integer
default: 1000 >= 1 <= 1000

Page size from 1 through 1000; defaults to 1000. Values outside that range are request.invalid.

Success

Media typeapplication/json
object
directoryRevision
required
integer format: int64
items
required
Array<object>
<= 1000 items
object
absenceId
required
string format: uuid
cover
required
object
issuer
required
string
subject
required
string
from
required
string format: date-time
person
required
object
issuer
required
string
subject
required
string
revision
required
integer format: int64
until
required
string format: date-time
nextCursor
Any of:
string
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: cursor.invalid, request.invalid, source-profile.not-applicable

Media typeapplication/problem+json
One of:
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: cursor.invalid
detail
required
Allowed value: The cursor is invalid for this request.
status
required
Allowed value: 400
title
required
Allowed value: Cursor invalid
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/cursor/invalid
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: authentication.refused

Media typeapplication/problem+json
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: authentication.refused
detail
required
Allowed value: The bearer credential is missing, invalid, or expired. Sign in again.
status
required
Allowed value: 401
title
required
Allowed value: Authentication refused
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/authentication/refused
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"
}
WWW-Authenticate
Allowed value: Bearer

Bearer authentication challenge.

traceparent
string

W3C trace context for the request and response.

Problem response: operation.not-authorized, profile.not-authorized, profile.not-human

Media typeapplication/problem+json
One of:
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: operation.not-authorized
detail
required
Allowed value: Your current Casework authority does not allow this operation.
status
required
Allowed value: 403
title
required
Allowed value: Operation not authorized
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/operation/not-authorized
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: request.method-not-allowed

Media typeapplication/problem+json
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.method-not-allowed
detail
required
Allowed value: This route does not accept that HTTP method.
status
required
Allowed value: 405
title
required
Allowed value: Method not allowed
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/method-not-allowed
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: cursor.expired

Media typeapplication/problem+json
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: cursor.expired
detail
required
Allowed value: This cursor has expired. Start again without a cursor and deduplicate entries by eventId.
status
required
Allowed value: 410
title
required
Allowed value: Cursor expired
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/cursor/expired
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: request.body-too-large

Media typeapplication/problem+json
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.body-too-large
detail
required
Allowed value: The request body exceeds the one MiB limit.
status
required
Allowed value: 413
title
required
Allowed value: Request body too large
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/body-too-large
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: runtime.failure

Media typeapplication/problem+json
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: runtime.failure
detail
required
Allowed value: Casework could not complete the request.
status
required
Allowed value: 500
title
required
Allowed value: Casework runtime failure
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/runtime/failure
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: service.unavailable

Media typeapplication/problem+json
object
code
required
string
Allowed values: absence.cover-cycle absence.invalid-period absence.overlap absence.self-cover authentication.refused clock.recompute-preview-expired cursor.expired cursor.invalid idempotency.expired idempotency.key-reused operation.not-authorized precondition.failed precondition.required profile.not-authorized profile.not-human request.body-too-large request.invalid request.method-not-allowed request.not-found request.reason-unsupported request.source-rejected request.unprocessable request.unsupported-media-type runtime.failure service.unavailable source-profile.not-applicable source-profile.required source.bad-gateway source.not-found source.record-missing source.reviewer-not-authorized source.signature-invalid work-item.already-claimed work-item.not-holder work-item.not-offered work-item.not-visible work-item.proposal-changed work-item.recovery-pending work-item.source-unavailable work-item.superseded
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: service.unavailable
detail
required
Allowed value: Casework storage is unavailable. Try again after the service recovers.
status
required
Allowed value: 503
title
required
Allowed value: Casework service unavailable
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/service/unavailable
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"
}
Retry-After
integer

Seconds before retrying the unavailable dependency.

traceparent
string

W3C trace context for the request and response.