{
"id": "at.marque.partner.checkAvailability",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"ref": "#result",
"type": "ref"
}
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"domains"
],
"properties": {
"domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253
},
"maxLength": 500,
"minLength": 1,
"description": "Fully qualified domain names to check, e.g. example.com."
}
}
},
"description": "Check up to 500 domains at once. Call it proxied through the user's PDS (atproto-proxy: did:web:marque.at:api#marque_registrar) with an at.marque.partnerApi-scoped token. Each result carries its own error field, so a single bad domain does not fail the batch. Prices are in whole US dollars and are indicative; the binding amount is set when createCheckout builds the Stripe session. Premium domains are flagged with isPremium and priced via premiumPrice."
},
"result": {
"type": "object",
"required": [
"domain",
"available"
],
"properties": {
"error": {
"type": "string",
"description": "Per-domain error, e.g. invalid format or unsupported TLD."
},
"price": {
"type": "integer",
"description": "Registration price per year, in whole US dollars."
},
"domain": {
"type": "string",
"maxLength": 253
},
"status": {
"type": "string",
"description": "Registry status when not available, e.g. active.",
"knownValues": [
"active",
"free",
"premium"
]
},
"available": {
"type": "boolean",
"description": "Whether the domain is available to register."
},
"isPremium": {
"type": "boolean"
},
"maxPeriod": {
"type": "integer",
"description": "Maximum registration period in years."
},
"minPeriod": {
"type": "integer",
"description": "Minimum registration period in years."
},
"renewPrice": {
"type": "integer",
"description": "Renewal price per year, in whole US dollars."
},
"premiumPrice": {
"type": "integer",
"description": "Premium registration price, in whole US dollars, when isPremium is true."
},
"transferPrice": {
"type": "integer",
"description": "Transfer price, in whole US dollars."
},
"transferAddsYear": {
"type": "boolean"
},
"whoisPrivacyAllowed": {
"type": "boolean"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "Check availability and pricing for a batch of domains, for partner integrations."
}