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 multiple request items inline
const url = 'https://example.com/v1/batch-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","items":[{"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"}}],"purpose":"example"}'};
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/batch-evaluations \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: <X-Api-Key>' \ --data '{ "claims": [ { "id": "example", "version": "example" } ], "disclosure": "example", "format": "example", "items": [ { "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" } } ], "purpose": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Required for every registry-backed batch. The value is caller-bound and may contain 1 to 256 bytes.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Claim reference. Wire requests may also use a plain string claim id.
object
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
Examplegenerated
{ "claims": [ { "id": "example", "version": "example" } ], "disclosure": "example", "format": "example", "items": [ { "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" } } ], "purpose": "example"}Responses
Section titled “Responses”Per-item claim evaluation results
object
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 value. The runtime may return any JSON value.
object
object
object
object
Example
{ "batch_id": "01HX7Y4N6S7ZK0R2T8Q9V1M3PA", "claims": [ "farmer-under-4ha" ], "items": [ { "claim_results": [ { "claim_id": "farmer-under-4ha", "claim_version": "2026-05", "disclosure": "predicate", "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 } }, "result_id": "01HX7Y5F31M8BZWQ2HY7P6J9FA", "satisfied": true, "value": true, "value_type": "boolean" } ], "errors": [], "evaluation_id": "01HX7Y5F2WAJ7ZP0Q4M5K9E8NC", "input_index": 0, "requester_ref": { "handle": "rnref:v1:example-requester-ref", "identifier_schemes": [ "agency_id" ], "profile": "benefits", "type": "Agency" }, "status": "succeeded", "target_ref": { "handle": "rnref:v1:example-target-ref", "identifier_schemes": [ "national_id" ], "profile": "resident", "type": "Person" } } ], "status": "completed", "summary": { "failed": 0, "succeeded": 1 }}Invalid request, including a registry-backed batch without a valid Idempotency-Key or an item that fails whole-batch preflight
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": "claim.disclosure_not_allowed", "detail": "the requested disclosure profile is not allowed", "request_id": "01J00000000000000000000000", "status": 403, "title": "Disclosure not allowed", "type": "https://id.registrystack.org/problems/registry-notary/claim/disclosure_not_allowed"}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"}Idempotency key conflicts with another request body
object
Example
{ "code": "request.conflict", "detail": "the request conflicts with existing state", "request_id": "01J00000000000000000000000", "status": 409, "title": "Request conflict", "type": "https://id.registrystack.org/problems/registry-notary/request/conflict"}The request exceeds the hard 100-member ceiling or a lower configured batch limit. Rejection occurs before quota, idempotency, Relay, source, or retained-state side effects.
object
Example
{ "code": "batch.too_large", "detail": "the batch exceeds the platform or configured member limit", "request_id": "01J00000000000000000000000", "status": 413, "title": "Batch too large", "type": "https://id.registrystack.org/problems/registry-notary/batch/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"}