Verify Attestation
https://sandbox-api.truthlocks.com/v1/verifyPerforms a comprehensive multi-step verification of an attestation. The pipeline resolves the attestation, checks document integrity, validates status (revoked, superseded, expired), resolves issuer governance metadata, verifies the cryptographic signature against the issuer's public key, checks the transparency log inclusion proof, and evaluates platform policies. Returns a single verdict with detailed reasons, transparency log data, and full issuer governance context including both current and snapshot-at-mint values. This endpoint is publicly accessible and does not require authentication.
Body Parameters
attestation_idstringrequiredThe UUID of the attestation to verify. This is the unique identifier returned when the attestation was originally minted.
Defaults to 660e8400-e29b-41d4-a716-446655440001
payload_b64urlstringBase64url-encoded payload for signature verification. If provided, the system verifies that the SHA-256 hash of this payload matches the stored payload_hash. Use this to confirm you hold the exact original content that was attested.
document_hash_hexstringSHA-256 hex hash of the original document for integrity verification. If provided, compared against the stored document_hash. Use this when you want to verify a file's integrity without sending the full payload over the wire.
Responses
{
"verdict": "VALID",
"reasons": [
"signature_ok",
"status_current",
"transparency_proof_ok",
"governance_ok"
],
"attestation_id": "660e8400-e29b-41d4-a716-446655440001",
"issuer_id": "550e8400-e29b-41d4-a716-446655440000",
"kid": "ed-key-1",
"alg": "Ed25519",
"payload_hash": "dGhpc19pc19hX3NhbXBsZV9oYXNo",
"document_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"log": {
"log_id": "truthlock-prod-log-v1",
"leaf_index": 1056,
"proof_checked": true
},
"governance": {
"issuer_status": "ACTIVE",
"issuer_trust_tier": "VERIFIED",
"issuer_risk_rating": "LOW",
"issuer_jurisdiction": "US",
"issuer_display_name": "Acme University",
"primary_color": "#1e40af",
"accent_color": "#3b82f6",
"logo_url": "https://cdn.truthlocks.com/logos/acme-university.png",
"snapshot_status": "ACTIVE",
"snapshot_trust_tier": "VERIFIED",
"snapshot_risk_rating": "LOW",
"snapshot_jurisdiction": "US"
}
}{
"verdict": "ALTERED",
"reasons": [
"document_hash_mismatch"
],
"attestation_id": "660e8400-e29b-41d4-a716-446655440001",
"issuer_id": "550e8400-e29b-41d4-a716-446655440000",
"kid": "ed-key-1",
"alg": "Ed25519",
"payload_hash": "dGhpc19pc19hX3NhbXBsZV9oYXNo",
"document_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"log": {
"log_id": "truthlock-prod-log-v1",
"leaf_index": 1056,
"proof_checked": false
},
"governance": {
"issuer_status": "ACTIVE",
"issuer_trust_tier": "VERIFIED",
"issuer_risk_rating": "LOW",
"issuer_jurisdiction": "US",
"issuer_display_name": "Acme University",
"primary_color": "#1e40af",
"accent_color": "#3b82f6",
"logo_url": "https://cdn.truthlocks.com/logos/acme-university.png",
"snapshot_status": "ACTIVE",
"snapshot_trust_tier": "VERIFIED",
"snapshot_risk_rating": "LOW",
"snapshot_jurisdiction": "US"
}
}{
"verdict": "REVOKED",
"reasons": [
"attestation_revoked"
],
"attestation_id": "660e8400-e29b-41d4-a716-446655440001",
"issuer_id": "550e8400-e29b-41d4-a716-446655440000",
"kid": "ed-key-1",
"alg": "Ed25519",
"payload_hash": "dGhpc19pc19hX3NhbXBsZV9oYXNo",
"document_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"log": {
"log_id": "truthlock-prod-log-v1",
"leaf_index": 1056,
"proof_checked": false
},
"governance": {
"issuer_status": "ACTIVE",
"issuer_trust_tier": "VERIFIED",
"issuer_risk_rating": "LOW",
"issuer_jurisdiction": "US",
"issuer_display_name": "Acme University",
"primary_color": "#1e40af",
"accent_color": "#3b82f6",
"logo_url": "https://cdn.truthlocks.com/logos/acme-university.png",
"snapshot_status": "ACTIVE",
"snapshot_trust_tier": "VERIFIED",
"snapshot_risk_rating": "LOW",
"snapshot_jurisdiction": "US"
}
}{
"verdict": "NOT_FOUND",
"reasons": [
"attestation_not_found"
],
"attestation_id": "99999999-0000-0000-0000-000000000000",
"issuer_id": "",
"kid": "",
"alg": "",
"payload_hash": "",
"document_hash": "",
"log": null,
"governance": null
}Verdict Reference
Every verification request returns exactly one verdict value. The verdict represents the final outcome of the multi-step verification pipeline. All verdicts are returned with HTTP 200 — use the verdict field, not the HTTP status code, to determine the result.
Verification Flow
When you call POST /v1/verify, the platform executes an 8-step verification pipeline. Each step can short-circuit with a verdict if a check fails. Only if all steps pass does the final verdict resolve to VALID.
REVOKED. This means the reasons array only contains codes for checks that were actually executed.Governance Metadata
The governance object in the verification response provides rich context about the issuer. It contains both current values (the issuer's state right now) and snapshot values (the issuer's state when the attestation was originally minted).
Governance Object Fields
Trust Tiers
Risk Ratings
Billing & Rate Limits
API verification requests are metered against your organization's billing plan. The consumer portal at verify.truthlocks.com provides unlimited free verification for end-users.
BILLING_LIMIT error code. Upgrade the issuer's plan or wait for the quota to reset at the start of the next billing cycle./v1/verifyClick Try It! to send a real request, or view sample responses: