Documentation preview. These pages target Registryctl v0.15.0, which is not published yet. Public download commands will not work until that release exists. For runnable released instructions, use v0.13.0.
Evaluate claims for one target
const url = 'https://example.com/v1/evaluations';const options = { method: 'POST', headers: {'X-Api-Key': '<X-Api-Key>', 'Content-Type': 'application/json'}, body: '{"claims":[{"id":"example","version":"example"}],"disclosure":"example","format":"example","on_behalf_of":{"actor":{"assurance":"example","id_hash":"example","type":"example"},"delegation_ref":"example"},"purpose":"example","relationship":{"attributes":{},"type":"example"},"requester":{"assurance":{"evidence":[{}],"issuer":"example","level":"example","level_scheme":"example","method":"example","verified_at":"2026-04-15T12:00:00Z"},"attributes":{},"id":"example","identifiers":[{"country":"example","issuer":"example","scheme":"example","value":"example"}],"profile":"example","type":"example"},"target":{"assurance":{"evidence":[{}],"issuer":"example","level":"example","level_scheme":"example","method":"example","verified_at":"2026-04-15T12:00:00Z"},"attributes":{},"id":"example","identifiers":[{"country":"example","issuer":"example","scheme":"example","value":"example"}],"profile":"example","type":"example"},"variables":{"additionalProperty":"2026-04-15"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/evaluations \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: <X-Api-Key>' \ --data '{ "claims": [ { "id": "example", "version": "example" } ], "disclosure": "example", "format": "example", "on_behalf_of": { "actor": { "assurance": "example", "id_hash": "example", "type": "example" }, "delegation_ref": "example" }, "purpose": "example", "relationship": { "attributes": {}, "type": "example" }, "requester": { "assurance": { "evidence": [ {} ], "issuer": "example", "level": "example", "level_scheme": "example", "method": "example", "verified_at": "2026-04-15T12:00:00Z" }, "attributes": {}, "id": "example", "identifiers": [ { "country": "example", "issuer": "example", "scheme": "example", "value": "example" } ], "profile": "example", "type": "example" }, "target": { "assurance": { "evidence": [ {} ], "issuer": "example", "level": "example", "level_scheme": "example", "method": "example", "verified_at": "2026-04-15T12:00:00Z" }, "attributes": {}, "id": "example", "identifiers": [ { "country": "example", "issuer": "example", "scheme": "example", "value": "example" } ], "profile": "example", "type": "example" }, "variables": { "additionalProperty": "2026-04-15" } }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Claim reference. Wire requests may also use a plain string claim id.
object
Frozen minimal actor/delegation envelope. Replaces the previous free-form object; free-form payloads are rejected. Simple deployments omit on_behalf_of entirely. Production-grade delegation (OAuth token exchange / RAR / CIBA) arrives post-1.0 as an additive profile that maps the actor onto OAuth act-claim semantics via the opaque delegation_ref; the shape does not bake in a single-actor assumption.
object
object
Optional assurance level of the actor (for example an acr value).
Keyed-hash identifier of the actor in hmac-sha256:
Opaque reference to an out-of-band delegation record. Not interpreted by the envelope; the indirection point through which a later OAuth profile resolves an actor chain.
object
object
object
object
object
object
object
object
object
object
object
object
object
Examplegenerated
{ "claims": [ { "id": "example", "version": "example" } ], "disclosure": "example", "format": "example", "on_behalf_of": { "actor": { "assurance": "example", "id_hash": "example", "type": "example" }, "delegation_ref": "example" }, "purpose": "example", "relationship": { "attributes": {}, "type": "example" }, "requester": { "assurance": { "evidence": [ {} ], "issuer": "example", "level": "example", "level_scheme": "example", "method": "example", "verified_at": "2026-04-15T12:00:00Z" }, "attributes": {}, "id": "example", "identifiers": [ { "country": "example", "issuer": "example", "scheme": "example", "value": "example" } ], "profile": "example", "type": "example" }, "target": { "assurance": { "evidence": [ {} ], "issuer": "example", "level": "example", "level_scheme": "example", "method": "example", "verified_at": "2026-04-15T12:00:00Z" }, "attributes": {}, "id": "example", "identifiers": [ { "country": "example", "issuer": "example", "scheme": "example", "value": "example" } ], "profile": "example", "type": "example" }, "variables": { "additionalProperty": "2026-04-15" }}Responses
Section titled “Responses”Claim evaluation result
object
object
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
Upstream provenance records this result was derived from. Always empty in v1; reserved for additive cross-evaluation linking.
object
object
Sha256:
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.
Identifier of the service that produced the result. Replaces the dropped computed_by field; the CCCEV renderer maps its provider agent from here.
object
Claim or top-level field names redacted from the public result. Omitted when no redaction was applied.
object
object
Claim value. The runtime may return any JSON value.
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
object
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
object
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"}Not authorized for requested claim, purpose, disclosure, or format
object
Example
{ "code": "auth.scope_denied", "detail": "missing required scope", "request_id": "01J00000000000000000000000", "status": 403, "title": "Scope denied", "type": "https://id.registrystack.org/problems/registry-notary/auth/scope_denied"}Requested format is not acceptable
object
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
object
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, or the machine evaluation quota was exceeded
object
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
object
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"}