Browse schemas
curl --request GET \
--url https://credential-testnet.api.sandbox.air3.com/catalog/schemasimport requests
url = "https://credential-testnet.api.sandbox.air3.com/catalog/schemas"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://credential-testnet.api.sandbox.air3.com/catalog/schemas', 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",
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"
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")
.asString();require 'uri'
require 'net/http'
url = URI("https://credential-testnet.api.sandbox.air3.com/catalog/schemas")
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": {
"current": 1,
"pages": 5,
"size": 10,
"total": 47,
"records": [
{
"schemaId": "sch_01HX",
"title": "KYC Identity",
"description": "Basic identity verification schema",
"credentialCount": 5,
"providerCount": 3
}
]
},
"timestamp": 1772530828000
}Catalog
Browse schemas
Returns a paginated list of credential schemas with their credential count and number of distinct issuers (providers). Only schemas marked as discoverable and enabled are included. Results are sortable by created_at, credential_count, provider_count, or title (default created_at).
GET
/
catalog
/
schemas
Browse schemas
curl --request GET \
--url https://credential-testnet.api.sandbox.air3.com/catalog/schemasimport requests
url = "https://credential-testnet.api.sandbox.air3.com/catalog/schemas"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://credential-testnet.api.sandbox.air3.com/catalog/schemas', 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",
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"
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")
.asString();require 'uri'
require 'net/http'
url = URI("https://credential-testnet.api.sandbox.air3.com/catalog/schemas")
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": {
"current": 1,
"pages": 5,
"size": 10,
"total": 47,
"records": [
{
"schemaId": "sch_01HX",
"title": "KYC Identity",
"description": "Basic identity verification schema",
"credentialCount": 5,
"providerCount": 3
}
]
},
"timestamp": 1772530828000
}Pilot API — Available on Sandbox only at this stage. Endpoint is under active development and may change without notice. Not yet available in production.
Query Parameters
Page number (starts from 1).
Required range:
x >= 1Results per page (max 100).
Required range:
1 <= x <= 100Field to sort by.
Sort direction.
Available options:
ASC, DESC Response
200 - application/json
Paginated list of schemas.
Standard API response envelope used by all Catalog endpoints.
Was this page helpful?