Skip to content
Registry StackDocsDevelopment (unreleased)

Get next review task

GET
/v1/review-tasks/next
curl --request GET \
--url 'https://example.com/v1/review-tasks/next?sort=due' \
--header 'Authorization: Bearer <token>' \
--header 'registry-casework-profile: example'
traceparent
string
registry-casework-profile
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9._:-]+$/

The caller’s exact governed access profile for this protocol.

registry-source-profile
string
>= 1 characters <= 128 characters /^[A-Za-z0-9._:-]+$/

Current-source lists, open work, source context, task mutations and new notes require the human caller’s source-valid profile and credential. Retained terminal task and history reads use Casework authority. Submitted context requires no provider.

cursor
string | null format: uuid
limit
integer | null format: uint
ownership
Any of:

Select active review tasks by their current holder. Selection never grants reviewer eligibility or source authority.

string
Allowed values: assigned-to-me unclaimed
queue
string | null
reference
string | null
sort
string
default: due
Allowed values: due subject reference
subjectDigest
Any of:
string
>= 71 characters <= 71 characters /^sha256:[0-9a-f]{64}$/
subjectId
string | null
subjectSource
string | null
subjectType
string | null
subjectVersion
string | null

Success

Media typeapplication/json
Any of:
object
createdAt
required
string format: date-time
deadlineAt
required
string | null format: date-time
decidedByCaller

Whether the current caller recorded this task’s decision. Present only on a single decided-task read, so a reviewer whose decide response was lost can confirm the outcome without learning who else decided.

boolean | null
decisionReceipt
Any of:

A retained decision, interpreted under the task’s pinned policy and released through an own receipt or the explicit audited accountability read. Private reasons and structured producer result data are never included.

object
decidedAt
required
string format: date-time
decision
required
string
Allowed values: approve reject changes-requested answer
outcome
required

The policy outcome the decision selected; every decision names one.

string
outcomeLabel

The configured label from the decision’s immutable pinned policy.

string | null
policy
required
object
digest
required
string
>= 71 characters <= 71 characters /^sha256:[0-9a-f]{64}$/
id
required
string
version
required
string
displayReference
string | null
eligibleProfiles
required
Array<string>
queue
required
string
requestId
required
string format: uuid
requesterReference
required
string
revision
required
integer format: int64
staffingDiagnostic

Bounded notice about unavailable cover or too few distinct approvers.

string
Allowed values: no-cover-available insufficient-distinct-approvers
stageId
required
string
stageIndex
required
integer format: uint16
<= 65535
state
required
One of:
string
Allowed values: open decided
subject
required
object
digest
required
string
>= 71 characters <= 71 characters /^sha256:[0-9a-f]{64}$/
id
required
string
source
required
string
type
required
string
version
required
string
taskId
required
string format: uuid

Example

{
"decisionReceipt": {
"decision": "approve"
},
"staffingDiagnostic": "no-cover-available",
"state": "open"
}
traceparent
string

W3C trace context.

Problem: cursor.invalid, request.invalid, request.limit-out-of-range, source-profile.not-applicable, source-profile.required

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: authentication.refused

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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
traceparent
string

W3C trace context.

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

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: request.not-found

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: request.not-found
detail
required
Allowed value: The requested Casework route does not exist.
status
required
Allowed value: 404
title
required
Allowed value: Route not found
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/not-found

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"
}
traceparent
string

W3C trace context.

Problem: cursor.expired, review.result-expired

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: request.body-too-large

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: request.unsupported-media-type

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: request.unprocessable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: runtime.failure

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: source.bad-gateway, source.version-mismatch, source.version-unavailable

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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.

Problem: service.unavailable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
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
traceparent
string

W3C trace context.