Skip to main content
POST /v1/verifier/presentations/verify Public

Verify a presentation

Verify a credential presentation. This is a public endpoint that can be called by anyone
with the presentation UUID or token. Returns the disclosed claims if the presentation is valid.

Request Body

application/json

Parameters for verifying a presentation

token * string

The SD-JWT presentation token to verify

Example: eyJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlLmNvbSJ9.signature~disclosure1~disclosure2~

Response

200 Presentation not found

Content-Type: application/json

Response from verifying a holder's selective disclosure presentation. Contains verification status, disclosed claims, and credential/presentation metadata.

success * boolean

Whether the API call succeeded

Example: true

data * object

Verification result data

verified * boolean

Whether the presentation is valid

Example: true

error string nullable

Error message if verification failed

disclosed_claims object nullable

The claims disclosed in this presentation (dynamic, schema-dependent)

Example: {"name":"Jane Smith","over_21":true}

credential object nullable

Source credential information

uuid string (uuid)

Example: a373791a-3acd-410a-b236-d314ea4f0b8b

schema string

Example: AgeVerificationCredential

issuer object
name string

Example: State DMV

did string

Example: did:web:dmv.state.gov

issued_at string (date-time)

Example: 2025-01-01T00:00:00Z

expires_at string (date-time) nullable

Example: 2030-01-01T00:00:00Z

presentation object nullable

Presentation metadata

uuid string (uuid)

Example: 7b676070-3e1d-409e-aaeb-8978b3edeace

created_at string (date-time)

Example: 2025-03-15T14:30:00Z

expires_at string (date-time) nullable

Example: 2027-03-15T15:30:00Z

verification_count integer

Example: 1

Code Examples

import os
from aho_sdk import AhoSdk

client = AhoSdk.verifier(api_key=os.environ["AHO_API_KEY"])

result = client.presentations.verify(
    body={
        "token": "eyJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlLmNvbSJ9.signature~disclosure1~disclosure2~"
    }
)

Try It

Log in to test this endpoint directly from the documentation.

Log in