/v1/schemas
Public
Paginated
Browse public credential schemas
List all available credential schemas in the public catalog. This is a public endpoint
that does not require authentication. Supports filtering by category, tag, search query,
and pagination.
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
category
|
query | string | Filter schemas by category. Common categories include education, employment, identity, and professional. |
tag
|
query | string | Filter schemas by tag. Tags are keywords associated with schemas for easier discovery. |
q
|
query | string | Search query to filter schemas by name or description. Performs a case-insensitive partial match. |
page
|
query | integer | Page number for pagination (default: 1) |
per_page
|
query | integer | Items per page (default: 25, max: 100) |
* Required parameter
Response
Content-Type: application/json
success
boolean
data
array[object]
Array items:
A template defining the structure of a credential
slug
string
URL-friendly identifier (lowercase, hyphenated)
Example: university-degree
name
string
Human-readable name of the schema
Example: University Degree
description
string
Detailed description of what this credential type represents
Example: A credential representing an academic degree from a university
credential_type
string
Credential type identifier (e.g., PascalCase or standard like mDL)
Example: UniversityDegreeCredential
category
string
Category for organizing schemas
Example: education
visibility
string
Schema visibility: - public: Listed in the public schema catalog for anyone to use - private: Only visible to the owning issuer organization
Allowed values: "public", "private"
Example: public
claims
array[object]
List of claim fields defined in this schema
Array items:
name
string
Claim field name
Example: degree
type
string
Data type of the claim: - string: Text value - integer: Whole number - boolean: True/false value - date: Date only (YYYY-MM-DD) - datetime: Date and time (ISO 8601)
Allowed values: "string", "integer", "boolean", "date", "datetime"
Example: string
required
boolean
Whether this claim is required when issuing
Example: true
tags
array[string]
Tags for filtering and discovery
Example: ["degree","academic","diploma"]
Array items:
url
string (uri)
URL to the schema documentation page
context_url
string (uri)
URL to the JSON-LD context document
Example: https://aho.com/contexts/university-degree
external_url
string (uri)
nullable
URL to external schema definition (e.g., schema.org)
Example: https://schema.org/EducationalOccupationalCredential
source
string
nullable
Source of the schema (e.g., 'schema_org', 'custom')
Example: custom
subject_schema
object
nullable
JSON Schema defining the credential subject structure
json_ld_context
array[string]
nullable
JSON-LD context URLs for this schema
Example: ["https://www.w3.org/2018/credentials/v1"]
Array items:
svg_template_key
string
nullable
Key identifying the SVG template used for rendering
Example: university_diploma
meta
object
current_page
integer
per_page
integer
total_count
integer
total_pages
integer
categories
array[string]
Available categories for filtering
Array items:
tags
object
Available tags with counts
Code Examples
import os
from aho_sdk import AhoSdk
client = AhoSdk.unauthenticated(api_key=os.environ["AHO_API_KEY"])
result = client.schemas.list
client = AhoSdk.unauthenticated(api_key: ENV["AHO_API_KEY"])
result = client.schemas.list
import { AhoSdk } from '@aho/sdk';
const client = AhoSdk.unauthenticated({ apiKey: process.env.AHO_API_KEY });
const result = await client.schemas.list;
curl -X GET 'https://api.aho.com/v1/schemas'
Try It
Log in to test this endpoint directly from the documentation.
Log in