Skip to content
Registry StackDocsDevelopment (unreleased)

Preview a caller-visible caseload move

POST
/v1/directory/caseload/preview
curl --request POST \
--url https://casework.example.test/v1/directory/caseload/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Registry-Casework-Profile: example' \
--data '{ "from": { "issuer": "example", "subject": "example" }, "queueId": "example", "reason": "example", "to": { "issuer": "example", "subject": "example" } }'

Supervisor-only preview for currently served queues. The from and to principals must differ. Candidates are held by movement.from and optionally restricted to queueId. Concealed, denied, or missing candidates are omitted without disclosing their count. Without Registry-Source-Profile only hosted candidates are visible; source-backed candidates require it.

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.

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

Explicit source profile used for the caller-scoped BReg read or action.

cursor
string

Opaque 15-minute cursor bound to the human principal, selected Casework profile, optional source profile, and exact movement. Malformed or context-mismatched values are cursor.invalid; expired values are cursor.expired.

limit
integer
>= 1 <= 100

Page size from 1 through 100; values outside that range are request.invalid.

Media typeapplication/json
object
from
required
object
issuer
required
string
subject
required
string
queueId
Any of:
string
reason
required
string
>= 1 characters <= 2000 characters
to
required
object
issuer
required
string
subject
required
string
Examplegenerated
{
"from": {
"issuer": "example",
"subject": "example"
},
"queueId": "example",
"reason": "example",
"to": {
"issuer": "example",
"subject": "example"
}
}

Success

Media typeapplication/json
object
items
required
Array<object>
object
actions
required
Array<object>
object
href
required
string
ifMatch
required
string
operation
required
string
assignment
Any of:
object
absenceIds
required
Array<string>
assignedBy
Any of:
object
issuer
required
string
subject
required
string
owner
Any of:
object
issuer
required
string
subject
required
string
staffingDiagnostic
Any of:
string
Allowed values: no_cover_available
binding
required
object
generation
required
string
integrity
Any of:
string
sourceRevision
required
string
version
required
string
bindingReference
required
string
clockOccurrences
Array<object>
object
anchorAt
Any of:
string format: date-time
atRiskAt
Any of:
string format: date-time
calculationGeneration
required
integer format: int64
clockId
required
string
clockOccurrenceId
required
string format: uuid
completedAt
Any of:
string format: date-time
dueAt
Any of:
string format: date-time
nextEffect
Any of:
One of:
object
at
required
string format: date-time
id
required
string
kind
required
Allowed value: reminder
policyDigest
required
string
>= 71 characters <= 71 characters /^sha256:[0-9a-f]{64}$/
recomputeGeneration
required
integer format: int64
startedAt
Any of:
string format: date-time
state
required
string
Allowed values: running paused completed cancelled verification_pending source_facts_missing
subject
required
object
id
required
string
kind
required
string
sourceId
required
string
upcomingEffects

For running or verification-pending clocks, the earliest unapplied reminder and earliest unapplied reassignment, ordered by time, effect kind, and identifier. Omitted when no firing instant can be promised, including while paused. These are pinned authored instants, not scheduler retry times.

Array
<= 2 items
One of:
object
at
required
string format: date-time
id
required
string
kind
required
Allowed value: reminder
displayReference

Human-facing source reference disclosed by the source to the current caller. Present only for source-backed items whose request policy explicitly names a reference field and whose current caller read discloses that field.

string
>= 1 characters <= 512 characters /^[^\u0000-\u001F\u007F-\u009F]+$/
firstObservedAt
required
string format: date-time
heldSince
string format: date-time
holder
Any of:
object
issuer
required
string
subject
required
string
hosted
Any of:
object
display
required
object
key
additional properties
any
kind
required
string
kindPolicyDigest
required
string
>= 71 characters <= 71 characters /^sha256:[0-9a-f]{64}$/
outcomes
required
Array<object>
object
id
required
string
label
required
string
reasonRequired
required
boolean
requesterReference
required
string
version
required
string
itemId
required
string format: uuid
liveAttempt
object
attemptId
required
string format: uuid
createdAt
required
string format: date-time
itemId
required
string format: uuid
itemRevision
required
integer format: int64
operation
required
string
<= 64 characters /^[a-z][a-z0-9_]{0,63}$/
receipt
Any of:
object
actorReference
Any of:
string
binding
required
object
generation
required
string
integrity
Any of:
string
sourceRevision
required
string
version
required
string
metadata
required
object
key
additional properties
any
resultingState
required
string
sourceRevision
required
string
state
required
string
Allowed values: pending uncertain completed refused
occurrenceKind
required
string
Allowed values: review application hosted
passiveDueAt
Any of:
string format: date-time
queueId
required
string
revision
required
integer format: int64
routing
Any of:
object
because
Any of:
string
policyDigest
Any of:
string
>= 71 characters <= 71 characters /^sha256:[0-9a-f]{64}$/
ruleId
Any of:
string
routingCopy
Any of:
object
flaggedFields
required
Array<string>
reason
Any of:
string
sourceBinding
required
object
generation
required
string
integrity
Any of:
string
sourceRevision
required
string
version
required
string
stage
Any of:
string
state
required
string
Allowed values: open claimed waiting_applicant waiting_application synchronizing completed superseded cancelled
subject
required
object
id
required
string
kind
required
string
sourceId
required
string
updatedAt
required
string format: date-time
nextCursor
Any of:
string
status
required
string
Allowed values: complete budget_exhausted source_unavailable
Example
{
"items": [
{
"assignment": {
"staffingDiagnostic": "no_cover_available"
},
"clockOccurrences": [
{
"nextEffect": {
"kind": "reminder"
},
"state": "running",
"upcomingEffects": [
{
"kind": "reminder"
}
]
}
],
"liveAttempt": {
"state": "pending"
},
"occurrenceKind": "review",
"state": "open"
}
],
"status": "complete"
}
traceparent
string

W3C trace context for the request and response.

Problem response: cursor.invalid, request.invalid

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: request.unsupported-media-type

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.unsupported-media-type
detail
required
Allowed value: Send a JSON request body with Content-Type application/json.
status
required
Allowed value: 415
title
required
Allowed value: Unsupported media type
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/unsupported-media-type
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: request.unprocessable

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.unprocessable
detail
required
Allowed value: The request body does not match the Casework contract.
status
required
Allowed value: 422
title
required
Allowed value: Request could not be processed
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/unprocessable
Example
{
"code": "request.unprocessable",
"detail": "The request body does not match the Casework contract.",
"status": 422,
"title": "Request could not be processed",
"type": "https://id.registrystack.org/problems/registry-casework/request/unprocessable"
}
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: source.bad-gateway

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: source.bad-gateway
detail
required
Allowed value: The source returned a response that does not match its registered contract.
status
required
Allowed value: 502
title
required
Allowed value: Invalid source response
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/source/bad-gateway
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"
}
traceparent
string

W3C trace context for the request and response.

Problem response: service.unavailable, work-item.source-unavailable

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: 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.