Skip to content
Registry StackDocsDocumentation preview

Render a stored evaluation

POST
/v1/evaluations/{evaluation_id}/render
curl --request POST \
--url https://example.com/v1/evaluations/example/render \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <X-Api-Key>' \
--data '{ "claims": [ "example" ], "disclosure": "example", "format": "example", "purpose": "example" }'
evaluation_id
required
string
Media typeapplication/json
object
claims
Array<string> | null
disclosure
string | null
format
required
string
purpose
string | null
Examplegenerated
{
"claims": [
"example"
],
"disclosure": "example",
"format": "example",
"purpose": "example"
}

Rendered evidence artifact

Media typeapplication/json
object
results
required
Array<object>
object
claim_id
required
string
claim_version
required
string
disclosure
required
string
evaluation_id
required
string
expires_at
required
string | null format: date-time
format
required
string
issued_at
required
string format: date-time
provenance
required

Versioned claim provenance (registry-notary-claim-provenance/v2). PROV-mappable but not PROV-O. Requester-side identity (client, actor, subject) is deliberately absent; it lives in restricted audit only.

object
derived_from
required

Upstream provenance records this result was derived from. Always empty in v1; reserved for additive cross-evaluation linking.

Array<object>
object
generated_by
required
object
claim_id
required
string
claim_version
required
string
evaluation_id
required
string
policy_hash

Sha256: digest of the evaluation policy. Public in v1: a hash revealing no policy content, used to correlate the result with a policy evidence-pack.

string
policy_id

Evaluation policy identifier under which this result was produced. Present for flows evaluated under a named policy, such as subject-access, and omitted for machine-client flows with no evaluation policy.

string
policy_version
string
service_id
required

Identifier of the service that produced the result. Replaces the dropped computed_by field; the CCCEV renderer maps its provider agent from here.

string
type
required
string
Allowed values: claim_evaluation
schema_version
required
string
Allowed values: registry-notary-claim-provenance/v2
used
required
object
relay_consultation_count
required
integer
redacted_fields

Claim or top-level field names redacted from the public result. Omitted when no redaction was applied.

Array<string>
requester_ref
object
handle
required
string
identifier_schemes
Array<string>
profile
string
type
required
string
satisfied
required
boolean | null
subject_type
required
string
target_ref
required
object
handle
required
string
identifier_schemes
Array<string>
profile
string
type
string
value
required

Claim value. The runtime may return any JSON value.

object | array | string | number | integer | boolean | null
Example
{
"results": [
{
"claim_id": "farmer-under-4ha",
"claim_version": "2026-05",
"disclosure": "predicate",
"evaluation_id": "01HX7Y5F2WAJ7ZP0Q4M5K9E8NC",
"expires_at": "2026-05-25T12:00:00Z",
"format": "application/vnd.registry-notary.claim-result+json",
"issued_at": "2026-05-24T12:00:00Z",
"provenance": {
"derived_from": [],
"generated_by": {
"claim_id": "person_is_alive",
"claim_version": "1",
"evaluation_id": "01HX7Y5F2WAJ7ZP0Q4M5K9E8NC",
"policy_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"policy_id": "subject-access",
"policy_version": "v1",
"service_id": "demo.registry-notary",
"type": "claim_evaluation"
},
"schema_version": "registry-notary-claim-provenance/v2",
"used": {
"relay_consultation_count": 1
}
},
"requester_ref": {
"handle": "rnref:v1:example-requester-ref",
"identifier_schemes": [
"agency_id"
],
"profile": "benefits",
"type": "Agency"
},
"satisfied": true,
"subject_type": "person",
"target_ref": {
"handle": "rnref:v1:example-target-ref",
"identifier_schemes": [
"national_id"
],
"profile": "resident",
"type": "Person"
},
"value": true
}
]
}

Invalid request or disclosure widening attempt

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "request.invalid",
"detail": "the evidence request is invalid",
"request_id": "01J00000000000000000000000",
"status": 400,
"title": "Invalid evidence request",
"type": "https://id.registrystack.org/problems/registry-notary/request/invalid"
}

Missing or invalid credential

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "auth.missing_credential",
"detail": "missing authentication credential",
"request_id": "01J00000000000000000000000",
"status": 401,
"title": "Missing credential",
"type": "https://id.registrystack.org/problems/registry-notary/auth/missing_credential"
}

Evaluation not found

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "evaluation.not_found",
"detail": "the evaluation id is unknown or expired",
"request_id": "01J00000000000000000000000",
"status": 404,
"title": "Evaluation not found",
"type": "https://id.registrystack.org/problems/registry-notary/evaluation/not_found"
}

Requested format is not acceptable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "format.unsupported",
"detail": "the requested claim format is not supported",
"request_id": "01J00000000000000000000000",
"status": 406,
"title": "Claim format not supported",
"type": "https://id.registrystack.org/problems/registry-notary/format/unsupported"
}

Request body is too large

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "request.too_large",
"detail": "the request body or batch is too large",
"request_id": "01J00000000000000000000000",
"status": 413,
"title": "Request too large",
"type": "https://id.registrystack.org/problems/registry-notary/request/too_large"
}

Self-attestation request is rate limited

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "subject_access.rate_limited",
"detail": "subject-access request is rate limited",
"request_id": "01J00000000000000000000000",
"status": 429,
"title": "Self-attestation rate limited",
"type": "https://id.registrystack.org/problems/registry-notary/subject_access/rate_limited"
}

Required Relay consultation or operational dependency is unavailable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "evidence.not_available",
"detail": "the required evidence or operational dependency is unavailable",
"request_id": "01J00000000000000000000000",
"status": 503,
"title": "Evidence not available",
"type": "https://id.registrystack.org/problems/registry-notary/evidence/not_available"
}