{
"id": "lol.dids.manage.register",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"domain"
],
"properties": {
"space": {
"type": "string",
"format": "at-uri",
"description": "Register the domain to a space bard is connected to rather than to the caller's public repo. The caller must be the space's authority."
},
"domain": {
"type": "string",
"maxLength": 253
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidDomain",
"description": "Not a syntactically valid, non-reserved, public-suffix-safe domain."
},
{
"name": "DomainTaken",
"description": "Registered to a different DID and still active."
},
{
"name": "DomainDenied",
"description": "On the operator denylist."
},
{
"name": "QuotaExceeded",
"description": "This DID has reached its domain limit."
},
{
"name": "AlreadyRegistered",
"description": "Already registered to this DID; use getDomain to retrieve instructions."
},
{
"name": "SpaceNotFound",
"description": "Bard is not connected to that space; call connectSpace first."
},
{
"name": "NotSpaceAuthority",
"description": "Only the space's authority may register a domain to it."
},
{
"name": "SpaceNotSynced",
"description": "Registered, but bard cannot currently read the space, so the domain will not serve until it can."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"domain",
"status",
"records",
"expiresAt"
],
"properties": {
"space": {
"type": "string",
"format": "at-uri"
},
"domain": {
"type": "string"
},
"status": {
"ref": "lol.dids.defs#domainStatus",
"type": "ref"
},
"records": {
"type": "array",
"items": {
"ref": "lol.dids.defs#dnsInstruction",
"type": "ref"
}
},
"expiresAt": {
"type": "string",
"format": "datetime",
"description": "After this time an unverified registration is released."
}
}
},
"encoding": "application/json"
},
"description": "Register a domain to the calling identity — or, with space, to a space the caller is the authority of — and obtain the DNS records needed to prove ownership and route traffic."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}