Properties
| Name | Type | Description |
|---|---|---|
| domain | string | |
| status | string | |
| auto_renew | boolean | Whether auto-renew is enabled |
| purchased_at | string | |
| expires_at | string | |
| days_until_expiry | integer | Days until domain expiry |
| renewal_price | numbernull | What one year of renewal costs in USD at the registrar that holds the domain; renewing N years costs N times this. Null when domani cannot renew the domain or its price is unknown. |
| payment_method | string | How the domain was paid for |
| payment_tx | stringnull | On-chain tx hash (USDC payments) |
| registrant | string | Who the registry lists as the domain's registrant. `customer`: your own contact details (from set_contact). `domani`: Domani's default contact, holding the domain on your behalf until you add yours wi |
| transfer_out | object | Moving the domain to another registrar. `mode` `api`: get_auth_code returns the code. `manual`: the registrar has no API for it, so Domani's team gets it by hand within 1 business day. null: not avail |
| registrar_status | string | Whether live registrar data was refreshed or is managed externally |
| registrar_checked_at | string | When the registrar refresh was attempted |
| registrar | objectnull | Domain registration details (null if unavailable) |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/domani-run/json-schema/domani-run-domain-detail-schema.json",
"title": "DomainDetail",
"description": "Detailed domain information",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/domani-run-openapi.json#/components/schemas/DomainDetail",
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"expired",
"pending"
]
},
"auto_renew": {
"type": "boolean",
"description": "Whether auto-renew is enabled"
},
"purchased_at": {
"type": "string",
"format": "date-time"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"days_until_expiry": {
"type": "integer",
"description": "Days until domain expiry"
},
"renewal_price": {
"type": [
"number",
"null"
],
"description": "What one year of renewal costs in USD at the registrar that holds the domain; renewing N years costs N times this. Null when domani cannot renew the domain or its price is unknown."
},
"payment_method": {
"type": "string",
"enum": [
"card",
"x402",
"crypto"
],
"description": "How the domain was paid for"
},
"payment_tx": {
"type": [
"string",
"null"
],
"description": "On-chain tx hash (USDC payments)"
},
"registrant": {
"type": "string",
"enum": [
"customer",
"domani",
"unknown"
],
"description": "Who the registry lists as the domain's registrant. `customer`: your own contact details (from set_contact). `domani`: Domani's default contact, holding the domain on your behalf until you add yours with set_contact, which makes you the registrant. `unknown`: not checked yet. WHOIS privacy hides the details either way."
},
"transfer_out": {
"type": "object",
"description": "Moving the domain to another registrar. `mode` `api`: get_auth_code returns the code. `manual`: the registrar has no API for it, so Domani's team gets it by hand within 1 business day. null: not available for this domain.",
"properties": {
"mode": {
"type": [
"string",
"null"
],
"enum": [
"api",
"manual"
]
},
"locked_until": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "Until when get_auth_code answers TRANSFER_LOCKED (ICANN's 60-day lock after a registration or transfer-in; manual mode)"
},
"request": {
"type": [
"object",
"null"
],
"description": "The latest transfer code request (manual mode)",
"properties": {
"status": {
"type": "string",
"enum": [
"requested",
"ready",
"cancelled"
],
"description": "`requested`: Domani's team is getting the code. `ready`: get_auth_code returns it. `cancelled`: the registrar refused; `note` says why."
},
"requested_at": {
"type": "string",
"format": "date-time"
},
"expected_by": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "When the code will be ready at the latest (status requested)"
},
"ready_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"note": {
"type": [
"string",
"null"
],
"description": "Why the request was cancelled"
}
},
"required": [
"status",
"requested_at",
"expected_by",
"ready_at",
"note"
]
}
},
"required": [
"mode",
"locked_until",
"request"
]
},
"registrar_status": {
"type": "string",
"enum": [
"connected",
"unavailable",
"external"
],
"description": "Whether live registrar data was refreshed or is managed externally"
},
"registrar_checked_at": {
"type": "string",
"format": "date-time",
"description": "When the registrar refresh was attempted"
},
"registrar": {
"type": [
"object",
"null"
],
"description": "Domain registration details (null if unavailable)",
"properties": {
"security_lock": {
"type": "boolean",
"description": "Whether the domain is locked against transfers"
},
"whois_privacy": {
"type": "boolean",
"description": "Whether WHOIS privacy is enabled"
},
"auto_renew": {
"type": "boolean",
"description": "Auto-renew status"
},
"create_date": {
"type": "string",
"description": "Domain creation date"
},
"expire_date": {
"type": "string",
"description": "Domain expiration date"
}
}
}
},
"required": [
"domain",
"status",
"auto_renew",
"purchased_at",
"expires_at",
"days_until_expiry",
"renewal_price",
"payment_method",
"registrant",
"transfer_out",
"registrar_status",
"registrar_checked_at"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/domani-run-domain-detail"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.