Skip to main content
GET /v1/issuer/offers API Key Paginated

List credential offers

List all credential offers created by the issuer. Returns offers in descending
order by creation date, with pagination support.

Parameters

Name Location Type Description
page query integer Page number for pagination
per_page query integer Items per page (default: 25, max: 100)
status query string Filter by offer status
Values: pending, accepted, expired, revoked
created_after query string Filter by created_at >= this date (ISO8601). Note: uses created_at, not issued_at.
created_before query string Filter by created_at <= this date (ISO8601). Note: uses created_at, not issued_at.
expires_after query string Filter offers expiring after this date (ISO8601)
expires_before query string Filter offers expiring before this date (ISO8601)
schema query string Filter by credential schema UUID or slug
subject_identifier query string Filter by subject identifier (email or unique ID)
sort query string Sort field
Values: created_at, expires_at, subject_identifier, status
direction query string Sort direction
Values: asc, desc
X-API-Key * header string Issuer API key for authentication

* Required parameter

Response

200 List of credential offers

Content-Type: application/json

success boolean
data array[object]

Array items:

A credential offer that holders can claim via wallet apps (OID4VCI)

uuid * string (uuid)

Unique identifier for the offer

Example: e8738e4f-2867-485d-9a00-fbe913ffca20

status * string

Current status of the offer: - pending: Awaiting holder claim - accepted: Successfully claimed by holder - expired: Past expiration time - revoked: Cancelled by issuer before claim

Allowed values: "pending", "accepted", "expired", "revoked"

Example: pending

subject_identifier string nullable

Email or DID of the intended recipient

Example: [email protected]

subject_claims * object

Pre-filled claim values for the credential

Example: {"name":"Jane Doe","degree":"Bachelor of Science"}

expires_at string (date-time) nullable

When the offer expires

Example: 2025-02-15T23:59:59Z

created_at * string (date-time)

When the offer was created

Example: 2025-01-15T10:00:00Z

schema * object

The credential schema for this offer

uuid string (uuid)

Example: 7dceea59-9eef-406c-bca9-acaa0211bf8a

name string

Schema display name

Example: University Degree

slug string

URL-friendly schema identifier

Example: university-degree

offer_uri string (uri) nullable

URL where the offer can be retrieved (included on show)

Example: https://aho.com/openid4vci/offers/027b08a5-83e6-4cb3-b20e-8c5c9d517363

deep_link string nullable

Deep link for wallet apps (openid-credential-offer://...) (included on show)

Example: openid-credential-offer://?credential_offer_uri=https%3A%2F%2Faho.com%2Fopenid4vci%2Foffers%2Fcb20c0ad

meta object

Pagination metadata for list responses

current_page * integer

Current page number

Example: 1

per_page * integer

Items per page

Example: 25

total_count * integer

Total number of items

Example: 42

total_pages * integer

Total number of pages

Example: 2

Code Examples

import os
from aho_sdk import AhoSdk

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

result = client.offers.list

Try It

Log in to test this endpoint directly from the documentation.

Log in