Skip to content
Registry StackDocsLatest

Issue a credential from a stored evaluation

POST
/v1/credentials
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" }'
Media typeapplication/json
object
claims
Array<string> | null
credential_profile
string | null
disclosure
string | null
evaluation_id
required
string
format
string | null
holder
One of:
null
purpose
string | null
Examplegenerated
{
"claims": [
"example"
],
"credential_profile": "example",
"disclosure": "example",
"evaluation_id": "example",
"format": "example",
"holder": {
"binding": "example",
"id": "example",
"proof": "example"
},
"purpose": "example"
}

Issued credential

Media typeapplication/json
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

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": "credential.holder_proof_required",
"detail": "holder proof of possession is required",
"status": 400,
"title": "Holder proof required",
"type": "https://docs.registry-notary.dev/problems/credential/holder_proof_required"
}

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",
"status": 401,
"title": "Missing credential",
"type": "https://docs.registry-notary.dev/problems/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",
"status": 404,
"title": "Evaluation not found",
"type": "https://docs.registry-notary.dev/problems/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",
"status": 406,
"title": "Claim format not supported",
"type": "https://docs.registry-notary.dev/problems/format/unsupported"
}

Holder proof replay or source ambiguity conflict

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.conflict",
"detail": "the request conflicts with existing state",
"status": 409,
"title": "Request conflict",
"type": "https://docs.registry-notary.dev/problems/request/conflict"
}

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",
"status": 413,
"title": "Request too large",
"type": "https://docs.registry-notary.dev/problems/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": "self_attestation.rate_limited",
"detail": "self-attestation request is rate limited",
"status": 429,
"title": "Self-attestation rate limited",
"type": "https://docs.registry-notary.dev/problems/self_attestation/rate_limited"
}

Source service 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": "source.unavailable",
"detail": "the evidence source is unavailable",
"status": 503,
"title": "Source unavailable",
"type": "https://docs.registry-notary.dev/problems/source/unavailable"
}