Archived docs.You are viewing v0.13.0. For current guidance, useLatest. Report archive issues onGitHub.
Issue a credential from a stored evaluation
const url = 'https://example.com/v1/credentials';const options = { method: 'POST', headers: {'X-Api-Key': '<X-Api-Key>', 'Content-Type': 'application/json'}, body: '{"claims":["example"],"credential_profile":"example","disclosure":"example","evaluation_id":"example","format":"example","holder":{"binding":"example","id":"example","proof":"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/credentials \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: <X-Api-Key>' \ --data '{ "claims": [ "example" ], "credential_profile": "example", "disclosure": "example", "evaluation_id": "example", "format": "example", "holder": { "binding": "example", "id": "example", "proof": "example" }, "purpose": "example" }'Issues only when a fresh non-delegated registry-backed evaluation has exact compiler pins and normalized unique Relay executions for every selected root’s dependency closure, matching the active configuration and public evaluation result. Source-free, delegated, and legacy evaluations remain renderable but are not issuable.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Examplegenerated
{ "claims": [ "example" ], "credential_profile": "example", "disclosure": "example", "evaluation_id": "example", "format": "example", "holder": { "binding": "example", "id": "example", "proof": "example" }, "purpose": "example"}Responses
Section titled “Responses”Issued credential
Example
{ "credential": "eyJhbGciOiJFZERTQSIsInR5cCI6ImRjK3NkLWp3dCIsImtpZCI6ImRpZDp3ZWI6YWdyaWN1bHR1cmUuZGVtby5leGFtcGxlLmdvdiNyZWdpc3RyeS13aXRuZXNzLWRlbW8ta2V5LTEifQ.eyJpc3MiOiJkaWQ6d2ViOmFncmljdWx0dXJlLmRlbW8uZXhhbXBsZS5nb3YiLCJzdWIiOiJkaWQ6andrOmV5SnJkSGtpT2lKUFMxQWlMQ0pqY25ZaU9pSkZaREkxTlRFNUlpd2llQ0k2SWpFeGNWbEJXVXQ0UTNKbVZsTmZNMWhFWWxoS1F6SkJaMWxKTlRkeFdIcGpVemRRTUZjMVdUbG1ORmtpZlEiLCJpYXQiOjE3Nzk2MjQwMDAsImV4cCI6MTc3OTcxMDQwMCwidmN0IjoiaHR0cHM6Ly9kZW1vLmV4YW1wbGUuZ292L2NyZWRlbnRpYWxzL3NtYWxsaG9sZGVyLWZhcm1lci92MSIsImp0aSI6InVybjpyZWdpc3RyeS13aXRuZXNzOmNyZWRlbnRpYWw6MDFIWDdZNUYyV0FKN1pQMFE0TTVLOUU4TkMiLCJpZCI6InVybjpyZWdpc3RyeS13aXRuZXNzOmNyZWRlbnRpYWw6MDFIWDdZNUYyV0FKN1pQMFE0TTVLOUU4TkMiLCJfc2QiOlsia0ZxYXpKcDdleVhjS1ZIX0tiMzNnQ1lwMGM3dzFDLWd0WjVORkJxbDdYcyJdLCJjbmYiOnsia2lkIjoiZGlkOmp3azpleUpyZEhraU9pSlBTMUFpTENKamNuWWlPaUpGWkRJMU5URTVJaXdpZUNJNklqRXhjVmxCV1V0NFEzSm1WbE5mTTFoRVlsaEtRekpCWjFsSk5UZHhXSHBqVXpkUU1GYzFXVGxtTkZraWZRIiwiandrIjp7Imt0eSI6Ik9LUCIsImNydiI6IkVkMjU1MTkiLCJ4IjoiMTFxWUFZS3hDcmZWU18zWERiWEpDMkFnWUk1N3FYemNTN1AwVzVZOWY0WSJ9fX0.c2lnbmF0dXJl~ZGlzY2xvc3VyZQ~", "credential_id": "urn:registry-notary:credential:01HX7Y5F2WAJ7ZP0Q4M5K9E8NC", "credential_profile": "climate_smart_input_voucher_sd_jwt", "disclosures": [ "ZGlzY2xvc3VyZQ" ], "expires_at": "2026-05-25T12:00:00Z", "format": "application/dc+sd-jwt", "issuer": "did:web:agriculture.demo.example.gov", "issuer_signed_jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6ImRjK3NkLWp3dCIsImtpZCI6ImRpZDp3ZWI6YWdyaWN1bHR1cmUuZGVtby5leGFtcGxlLmdvdiNyZWdpc3RyeS13aXRuZXNzLWRlbW8ta2V5LTEifQ.eyJpc3MiOiJkaWQ6d2ViOmFncmljdWx0dXJlLmRlbW8uZXhhbXBsZS5nb3YiLCJzdWIiOiJkaWQ6andrOmV5SnJkSGtpT2lKUFMxQWlMQ0pqY25ZaU9pSkZaREkxTlRFNUlpd2llQ0k2SWpFeGNWbEJXVXQ0UTNKbVZsTmZNMWhFWWxoS1F6SkJaMWxKTlRkeFdIcGpVemRRTUZjMVdUbG1ORmtpZlEiLCJpYXQiOjE3Nzk2MjQwMDAsImV4cCI6MTc3OTcxMDQwMCwidmN0IjoiaHR0cHM6Ly9kZW1vLmV4YW1wbGUuZ292L2NyZWRlbnRpYWxzL3NtYWxsaG9sZGVyLWZhcm1lci92MSIsImp0aSI6InVybjpyZWdpc3RyeS13aXRuZXNzOmNyZWRlbnRpYWw6MDFIWDdZNUYyV0FKN1pQMFE0TTVLOUU4TkMiLCJpZCI6InVybjpyZWdpc3RyeS13aXRuZXNzOmNyZWRlbnRpYWw6MDFIWDdZNUYyV0FKN1pQMFE0TTVLOUU4TkMiLCJfc2QiOlsia0ZxYXpKcDdleVhjS1ZIX0tiMzNnQ1lwMGM3dzFDLWd0WjVORkJxbDdYcyJdLCJjbmYiOnsia2lkIjoiZGlkOmp3azpleUpyZEhraU9pSlBTMUFpTENKamNuWWlPaUpGWkRJMU5URTVJaXdpZUNJNklqRXhjVmxCV1V0NFEzSm1WbE5mTTFoRVlsaEtRekpCWjFsSk5UZHhXSHBqVXpkUU1GYzFXVGxtTkZraWZRIiwiandrIjp7Imt0eSI6Ik9LUCIsImNydiI6IkVkMjU1MTkiLCJ4IjoiMTFxWUFZS3hDcmZWU18zWERiWEpDMkFnWUk1N3FYemNTN1AwVzVZOWY0WSJ9fX0.c2lnbmF0dXJl"}Invalid request or disclosure widening attempt
object
Example
{ "code": "credential.holder_proof_required", "detail": "holder proof of possession is required", "request_id": "01J00000000000000000000000", "status": 400, "title": "Holder proof required", "type": "https://id.registrystack.org/problems/registry-notary/credential/holder_proof_required"}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"}Evaluation not found
object
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
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"}Holder proof replay or Relay ambiguity conflict
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"}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
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"}