Skip to content
Registry StackDocsv0.20.0

Produce ordered evidence outcomes for several subjects

POST
/v1/evidence/batch
curl --request POST \
--url https://example.com/v1/evidence/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "items": [ { "requestNonce": "example", "subjects": [ { "role": "example", "selector": { "profile": "example", "values": { "additionalProperty": "example" } } } ] } ], "purpose": "example", "requirement": "https://example.com" }'

The exact application/vnd.registrystack.evidence.request-batch+json Accept value selects this signed-JWS-only operation. The request carries one common requirement and purpose and between one and sixteen ordered subject items. The authenticated token supplies the common audience. Every item is validated and authorized before source access, and rate admission costs the complete item count atomically. Singular unavailable outcomes appear positionally inside a 200 response. Any other failure aborts the complete request. The serialized response is limited to 1048576 bytes and is released only after one durable terminal audit event.

Media typeapplication/json
Evidence multi-subject request batch Version 1
object
items
required
Array<object>
>= 1 items <= 16 items
object
requestNonce
required
string
/^[A-Za-z0-9_-]{43}$/
subjects
required
Array<object>
>= 1 items <= 8 items
object
role
required
string
/^[a-z][a-z0-9._-]{0,63}$/
selector
required
object
profile
required
string
/^[a-z][a-z0-9._-]{0,127}$/
values
object
>= 1 properties <= 16 properties
key
additional properties
One of:
string
>= 1 characters <= 512 characters
purpose
required
string
/^[a-z][a-z0-9._:-]{0,127}$/
requirement
required
string format: uri
>= 1 characters <= 512 characters
Examplegenerated
{
"items": [
{
"requestNonce": "example",
"subjects": [
{
"role": "example",
"selector": {
"profile": "example",
"values": {
"additionalProperty": "example"
}
}
}
]
}
],
"purpose": "example",
"requirement": "https://example.com"
}

One ordered signed-evidence or evidence-not-available result per request item

Media typeapplication/vnd.registrystack.evidence.request-batch+json
Evidence multi-subject request batch response Version 1
object
items
required
Array
>= 1 items <= 16 items
One of:
object
evidence
required
Evidence flattened JWS response Version 1
object
payload
required
string
>= 1 characters /^[A-Za-z0-9_-]+$/
protected
required
string
>= 1 characters /^[A-Za-z0-9_-]+$/
signature
required
string
/^[A-Za-z0-9_-]{86}$/
result
required
string
Allowed values: evidence
schema
required
string
Allowed values: registry.evidence-request-batch/v1
type
required
string
Allowed values: EvidenceRequestBatchResponse
Example
{
"items": [
{
"result": "evidence"
}
],
"schema": "registry.evidence-request-batch/v1",
"type": "EvidenceRequestBatchResponse"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.

Malformed batch request or invalid selector

Media typeapplication/problem+json
One of:
object
One of:
Evidence public problem Version 1
object
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
traceId
required
string
/^(?!0{32}$)[0-9a-f]{32}$/
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
Example
{
"code": "evidence.invalid_request",
"detail": "the Evidence request is invalid",
"status": 400,
"title": "Evidence request is invalid",
"type": "https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.

Authentication failed

Media typeapplication/problem+json
object
One of:
Evidence public problem Version 1
object
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
traceId
required
string
/^(?!0{32}$)[0-9a-f]{32}$/
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
code
required
string
Allowed values: auth.invalid_credential
detail
required
string
Allowed values: bearer access token validation failed
status
required
integer
Allowed values: 401
title
required
string
Allowed values: Bearer access token is invalid
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/auth/invalid_credential
Example
{
"code": "auth.invalid_credential",
"detail": "bearer access token validation failed",
"status": 401,
"title": "Bearer access token is invalid",
"type": "https://id.registrystack.org/problems/registry-evidence/auth/invalid_credential"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

WWW-Authenticate
string
Allowed values: Bearer realm="registry-evidence"
traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.

At least one batch item is not authorized for signed audience-scoped evidence

Media typeapplication/problem+json
object
One of:
Evidence public problem Version 1
object
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
traceId
required
string
/^(?!0{32}$)[0-9a-f]{32}$/
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
code
required
string
Allowed values: evidence.denied
detail
required
string
Allowed values: the Evidence request is not permitted
status
required
integer
Allowed values: 403
title
required
string
Allowed values: Evidence request is not permitted
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/denied
Example
{
"code": "evidence.denied",
"detail": "the Evidence request is not permitted",
"status": 403,
"title": "Evidence request is not permitted",
"type": "https://id.registrystack.org/problems/registry-evidence/evidence/denied"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.

The exact request-batch response media type was not selected

Media typeapplication/problem+json
object
One of:
Evidence public problem Version 1
object
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
traceId
required
string
/^(?!0{32}$)[0-9a-f]{32}$/
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
code
required
string
Allowed values: format.unsupported
detail
required
string
Allowed values: the requested format is not supported
status
required
integer
Allowed values: 406
title
required
string
Allowed values: Requested format is not supported
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/format/unsupported
Example
{
"code": "format.unsupported",
"detail": "the requested format is not supported",
"status": 406,
"title": "Requested format is not supported",
"type": "https://id.registrystack.org/problems/registry-evidence/format/unsupported"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.

Atomic item-count rate admission was refused

Media typeapplication/problem+json
object
One of:
Evidence public problem Version 1
object
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
traceId
required
string
/^(?!0{32}$)[0-9a-f]{32}$/
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
code
required
string
Allowed values: evidence.rate_limited
detail
required
string
Allowed values: the Evidence request rate is exhausted
status
required
integer
Allowed values: 429
title
required
string
Allowed values: Evidence request rate is exhausted
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/rate_limited
Example
{
"code": "evidence.rate_limited",
"detail": "the Evidence request rate is exhausted",
"status": 429,
"title": "Evidence request rate is exhausted",
"type": "https://id.registrystack.org/problems/registry-evidence/evidence/rate_limited"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Retry-After
string
Allowed values: 1
Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.

A dependency, protocol, signing, serialization, or audit failure aborted the complete request

Media typeapplication/problem+json
One of:
object
One of:
Evidence public problem Version 1
object
code
required
string
Allowed values: evidence.invalid_request
detail
required
string
Allowed values: the Evidence request is invalid
status
required
integer
Allowed values: 400
title
required
string
Allowed values: Evidence request is invalid
traceId
required
string
/^(?!0{32}$)[0-9a-f]{32}$/
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request
code
required
string
Allowed values: source.unavailable
detail
required
string
Allowed values: the authoritative source is unavailable
status
required
integer
Allowed values: 503
title
required
string
Allowed values: Authoritative source is unavailable
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-evidence/source/unavailable
Example
{
"code": "source.unavailable",
"detail": "the authoritative source is unavailable",
"status": 503,
"title": "Authoritative source is unavailable",
"type": "https://id.registrystack.org/problems/registry-evidence/source/unavailable"
}
Cache-Control
string
Allowed values: no-store

Evidence responses are never cacheable.

Vary
string
Allowed values: Accept

The response format is negotiated through the exact Accept matrix.

traceparent
string
/^00-(?!0{32}-)[0-9a-f]{32}-(?!0{16}-)[0-9a-f]{16}-[0-9a-f]{2}$/

Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.