List domains

The domains your org has bought here, newest registration first, each carrying the name, when it was registered, when it expires, what the org paid, the registrar order id and the nameservers it points at.

GET /v1/domain/domains

Addresshttps://api.hanzo.ai/v1/domain/domains
MethodGET
Operationget_domain_domains
AuthAuthorization: Bearer $HANZO_API_KEY

The domains your org has bought here, newest registration first, each carrying the name, when it was registered, when it expires, what the org paid, the registrar order id and the nameservers it points at.

Scoped to the validated principal's org — 401 without one, and there is no parameter that reaches another org's holdings.

This is the deployment's OWN ownership record, not a query to the registrar: it lists what was bought THROUGH this surface, so a domain the org holds elsewhere is not here. The default store is in-process, so a deployment that has not swapped in a durable store answers from what this process registered.

Request

GET /v1/domain/domains takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200domain.holdingsok
defaultproblem-detailsrefused

200 body — 9 fields.

FieldInTypeAlwaysDescription
domainsbodydomain.Holding[]—Domains is the caller org's domains, newest registration first.
domains[].costCentsbodyinteger (int64)—wholesale cost
domains[].domainbodystring—the name owned
domains[].expiresAtbodystring—when the registration lapses, RFC3339
domains[].nameserversbodystring[]—the authoritative nameservers the name points at
domains[].orderbodyinteger (int64)—registrar order id
domains[].orgbodystring—the org that owns the domain
domains[].priceCentsbodyinteger (int64)—what the customer paid (sell)
domains[].registeredAtbodyinteger (int64)—unix seconds

Failure carries the platform error shape — see Errors.

Examples

hanzo domain domains
import { Configuration, DomainApi } from 'hanzoai';

const api = new DomainApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getDomainDomains();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import DomainApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = DomainApi(client).get_domain_domains()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.DomainAPI.GetDomainDomains(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, domain_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = domain_api::get_domain_domains(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.DomainApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new DomainApi(client).getDomainDomains();
curl https://api.hanzo.ai/v1/domain/domains \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches domain through the domain tool, which names its 7 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_domain_availability"
         }
       }
     }'

Domain API · All Hanzo APIs · Interactive reference

Was this page useful?