Schema detail
curl --request GET \
--url https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}import requests
url = "https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"code": 80000000,
"msg": "success",
"data": {
"schemaId": "sch_01HX",
"title": "KYC Identity",
"description": "Basic identity verification schema",
"credentials": [
{
"credentialId": "c21s70g0i54sn0023172Cv",
"name": "Age Verification",
"category": "identity",
"issuer": {
"issuerId": "iss_01",
"name": "Acme Corp"
},
"traction": {
"holderCount": 120,
"issuanceCount": 200,
"demandCount": 50
},
"createdAt": "2026-01-15T10:30:00Z"
}
]
},
"timestamp": 1772530828000
}{
"error": 404,
"message": "Schema not found"
}Catalog
Schema detail
Returns a single schema together with every discoverable credential built on it. Each credential includes issuer info and traction metrics (holder count, issuance count, and demand count — the number of verification programs that accept it).
GET
/
catalog
/
schemas
/
{id}
Schema detail
curl --request GET \
--url https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}import requests
url = "https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://credential-testnet.api.sandbox.air3.com/catalog/schemas/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"code": 80000000,
"msg": "success",
"data": {
"schemaId": "sch_01HX",
"title": "KYC Identity",
"description": "Basic identity verification schema",
"credentials": [
{
"credentialId": "c21s70g0i54sn0023172Cv",
"name": "Age Verification",
"category": "identity",
"issuer": {
"issuerId": "iss_01",
"name": "Acme Corp"
},
"traction": {
"holderCount": 120,
"issuanceCount": 200,
"demandCount": 50
},
"createdAt": "2026-01-15T10:30:00Z"
}
]
},
"timestamp": 1772530828000
}{
"error": 404,
"message": "Schema not found"
}Pilot API — Available on Sandbox only at this stage. Endpoint is under active development and may change without notice. Not yet available in production.
Path Parameters
Schema ID.
Response
Schema with credentials.
Standard API response envelope used by all Catalog endpoints.
Was this page helpful?
⌘I