{
    "openapi": "3.0.3",
    "info": {
        "title": "Atom Registrar API",
        "version": "1.0.0",
        "description": "Domain registration, DNS, nameservers, contacts, transfers, TLD pricing, registrar lock, and renewal.\n\nAuthenticate with a Registrar API Bearer token from https://www.atom.com/dashboard/seller/api-access\n\nPricing: GET /domains/check/{domain_name} returns domain_price (what Atom charges to register that label, including premium) when the domain is available. GET /tld-pricing returns standard register / renew / transfer prices per TLD.\n\nRenewal: POST /domains/{domain_name}/renew renews a domain you already hold at Atom.\n\nTransfer in: POST /domains/transfer with domain_name + authcode. Optional nameservers, WHOIS privacy, auto-renew, contacts, and dns_records can be sent in the same request.\n\nTransfer out is not available via API. Unlocking a domain and retrieving an EPP / auth code must be done in the Atom dashboard. GET /domains/{domain_name}/lock still reports registrar lock and the ICANN 60-day lock expiry so you can tell a customer when a transfer-out will be possible in the dashboard.\n\nTransfer lock: GET/PUT /domains/{domain_name}/lock is the customer-controlled registrar lock. GET also returns icann_transfer_lock and icann_transfer_lock_expires_at for the automatic 60-day ICANN lock after registration or inbound transfer.\n\nContacts: GET /contacts lists handles (filter with search, name, or email). GET /contacts/{handle} returns one contact. POST creates, PUT updates.",
        "contact": {
            "email": "service@atom.com",
            "url": "https://www.atom.com"
        },
        "termsOfService": "https://www.atom.com/terms"
    },
    "servers": [
        {
            "url": "https://www.atom.com/api/registrar/v1",
            "description": "Production"
        }
    ],
    "tags": [
        {
            "name": "Domains",
            "description": "List, inspect, register, and renew domains"
        },
        {
            "name": "Availability",
            "description": "Check whether Atom can register a domain and the price Atom would charge"
        },
        {
            "name": "Transfers",
            "description": "Transfer domains into Atom (POST /domains/transfer). Transfer-out (unlock + EPP code) is dashboard-only and is not exposed on this API. GET/PUT /domains/{domain_name}/lock reports and sets the registrar lock, including ICANN 60-day lock expiry."
        },
        {
            "name": "DNS",
            "description": "DNS records and DNSSEC (requires Atom nameservers)"
        },
        {
            "name": "Nameservers",
            "description": "Get and set nameservers"
        },
        {
            "name": "Locking & Privacy",
            "description": "Registrar lock, ICANN 60-day lock, WHOIS privacy, auto-renew"
        },
        {
            "name": "URL Forwards",
            "description": "HTTP redirects for a domain"
        },
        {
            "name": "Contacts",
            "description": "List, search, get, create, and update registrant / admin / billing / tech contact handles"
        }
    ],
    "externalDocs": {
        "description": "Atom API docs",
        "url": "https://www.atom.com/api-docs"
    },
    "paths": {
        "/domains": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "List domains",
                "description": "Paginated list of domains in the authenticated Atom registrar account. Each row includes transfer_locked, icann_transfer_lock, icann_transfer_lock_expires_at, and can_transfer_out.",
                "operationId": "listRegistrarDomains",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 20,
                            "minimum": 1,
                            "maximum": 100
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by domain name"
                    },
                    {
                        "name": "extension",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "example": "com"
                        },
                        "description": "Filter by TLD"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/RegistrarDomain"
                                            }
                                        },
                                        "pagination": {
                                            "$ref": "#/components/schemas/Pagination"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/tld-pricing": {
            "get": {
                "tags": [
                    "Availability"
                ],
                "summary": "Get TLD pricing",
                "description": "Atom register, renew, and transfer prices for every supported TLD (USD). Use this for catalog-level quotes. For a specific label (including premium registry pricing), call GET /domains/check/{domain_name} and read data.domain_price.",
                "operationId": "getTldPricing",
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "currency": {
                                            "type": "string",
                                            "example": "USD"
                                        },
                                        "pricing": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "$ref": "#/components/schemas/TldPrice"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/check/{domain_name}": {
            "get": {
                "tags": [
                    "Availability"
                ],
                "summary": "Check domain availability and Atom price",
                "description": "Returns whether Atom can register the domain and, when available, data.domain_price — the amount Atom would charge (unit_price, renewal_price, ICANN fee, VAT, total). Premium labels are reflected in is_premium and unit_price. If status is unavailable, Atom cannot register it; inbound transfer pricing for that TLD is on GET /tld-pricing (pricing.{tld}.transfer). Optional years query (1–10) quotes a multi-year registration; .ai defaults to 2.",
                "operationId": "checkDomain",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    },
                    {
                        "name": "years",
                        "in": "query",
                        "required": false,
                        "description": "Registration length to quote (1–10). Defaults to 1, or 2 for .ai.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "domain": {
                                                    "type": "string"
                                                },
                                                "availability": {
                                                    "type": "integer",
                                                    "description": "1 available, 0 unavailable, -1 unknown"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "available",
                                                        "unavailable",
                                                        "unknown"
                                                    ]
                                                },
                                                "domain_price": {
                                                    "$ref": "#/components/schemas/DomainPrice"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/check-bulk": {
            "post": {
                "tags": [
                    "Availability"
                ],
                "summary": "Bulk domain availability",
                "description": "Check up to 50 domains per request. Available domains include domain_price (what Atom would charge to register each one).",
                "operationId": "checkDomainBulk",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "domains"
                                ],
                                "properties": {
                                    "domains": {
                                        "type": "array",
                                        "maxItems": 50,
                                        "items": {
                                            "type": "string",
                                            "example": "example.com"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/register": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Register a domain",
                "description": "Register a domain for 1–10 years (.ai requires an even length). Requires account balance or a saved payment method. After a successful registration you may set nameservers, WHOIS privacy, auto-renew, contact handles, and DNS records in this same request; they are applied immediately. DNS records require Atom nameservers (omit nameservers, or set type atom/parking).",
                "operationId": "registerDomain",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "domain_name"
                                ],
                                "properties": {
                                    "domain_name": {
                                        "type": "string",
                                        "example": "example.com"
                                    },
                                    "registration_length": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 10,
                                        "default": 1
                                    },
                                    "nameservers": {
                                        "description": "Set nameservers in the same request. Pass an array of hostnames (treated as custom) or {type, nameservers}. type: atom (ns1/ns2.atom.com), parking (ns1/ns2.atomregistrar.com), or custom. DNS records only apply when the domain stays on Atom nameservers (atom or parking).",
                                        "oneOf": [
                                            {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                },
                                                "example": [
                                                    "ns1.custom-dns.com",
                                                    "ns2.custom-dns.com"
                                                ]
                                            },
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "type": {
                                                        "type": "string",
                                                        "enum": [
                                                            "atom",
                                                            "parking",
                                                            "custom"
                                                        ]
                                                    },
                                                    "nameservers": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        ]
                                    },
                                    "privacy_protect": {
                                        "type": "boolean",
                                        "description": "WHOIS privacy / RDDS redaction. Alias: whois_privacy. Not available for .io."
                                    },
                                    "whois_privacy": {
                                        "type": "boolean",
                                        "description": "Alias for privacy_protect"
                                    },
                                    "auto_renew": {
                                        "type": "boolean",
                                        "description": "Enable or disable auto-renew."
                                    },
                                    "contacts": {
                                        "type": "object",
                                        "description": "Existing contact handles owned by this account (from GET /contacts). Any combination of roles.",
                                        "properties": {
                                            "registrant": {
                                                "type": "string"
                                            },
                                            "admin": {
                                                "type": "string"
                                            },
                                            "billing": {
                                                "type": "string"
                                            },
                                            "tech": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "dns_records": {
                                        "type": "array",
                                        "description": "DNS records to create after the domain is on Atom nameservers. Max 50. Same fields as POST /domains/{domain_name}/records. Skipped if nameservers are custom.",
                                        "maxItems": 50,
                                        "items": {
                                            "$ref": "#/components/schemas/DnsRecordInput"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "Domain already registered to this account",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/transfer": {
            "post": {
                "tags": [
                    "Transfers",
                    "Domains"
                ],
                "summary": "Transfer a domain into Atom",
                "description": "Initiate an inbound transfer. Required: domain_name and authcode (EPP code from the losing registrar). Optional nameservers, privacy_protect, auto_renew, contacts, and dns_records may be sent in the same request. Contacts and WHOIS privacy are submitted with the transfer; nameservers, auto-renew, and DNS records are applied when the transfer completes (typically 5–7 days). This is transfer-in only. Transfer-out of Atom is not available via API — use the Atom dashboard.",
                "operationId": "transferDomain",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "domain_name",
                                    "authcode"
                                ],
                                "properties": {
                                    "domain_name": {
                                        "type": "string",
                                        "example": "example.com"
                                    },
                                    "authcode": {
                                        "type": "string",
                                        "description": "EPP / auth code from the losing registrar"
                                    },
                                    "nameservers": {
                                        "description": "Set nameservers in the same request. Pass an array of hostnames (treated as custom) or {type, nameservers}. type: atom (ns1/ns2.atom.com), parking (ns1/ns2.atomregistrar.com), or custom. DNS records only apply when the domain stays on Atom nameservers (atom or parking).",
                                        "oneOf": [
                                            {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                },
                                                "example": [
                                                    "ns1.custom-dns.com",
                                                    "ns2.custom-dns.com"
                                                ]
                                            },
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "type": {
                                                        "type": "string",
                                                        "enum": [
                                                            "atom",
                                                            "parking",
                                                            "custom"
                                                        ]
                                                    },
                                                    "nameservers": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        ]
                                    },
                                    "privacy_protect": {
                                        "type": "boolean",
                                        "description": "WHOIS privacy / RDDS redaction. Alias: whois_privacy. Not available for .io."
                                    },
                                    "whois_privacy": {
                                        "type": "boolean",
                                        "description": "Alias for privacy_protect"
                                    },
                                    "auto_renew": {
                                        "type": "boolean",
                                        "description": "Enable or disable auto-renew."
                                    },
                                    "contacts": {
                                        "type": "object",
                                        "description": "Existing contact handles owned by this account (from GET /contacts). Any combination of roles.",
                                        "properties": {
                                            "registrant": {
                                                "type": "string"
                                            },
                                            "admin": {
                                                "type": "string"
                                            },
                                            "billing": {
                                                "type": "string"
                                            },
                                            "tech": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "dns_records": {
                                        "type": "array",
                                        "description": "DNS records to create after the domain is on Atom nameservers. Max 50. Same fields as POST /domains/{domain_name}/records. Skipped if nameservers are custom.",
                                        "maxItems": 50,
                                        "items": {
                                            "$ref": "#/components/schemas/DnsRecordInput"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/transfer-bulk": {
            "post": {
                "tags": [
                    "Transfers",
                    "Domains"
                ],
                "summary": "Bulk transfer domains into Atom",
                "description": "Transfer up to 10 domains per request. Each item requires domain_name and authcode. This is inbound only.",
                "operationId": "transferDomainBulk",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "domains"
                                ],
                                "properties": {
                                    "domains": {
                                        "type": "array",
                                        "maxItems": 10,
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "domain_name",
                                                "authcode"
                                            ],
                                            "properties": {
                                                "domain_name": {
                                                    "type": "string"
                                                },
                                                "authcode": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "Get domain details",
                "description": "Full record for a domain in this account, including nameservers, contacts, transfer_locked, icann_transfer_lock, icann_transfer_lock_expires_at, and can_transfer_out. Use the ICANN expiry date to tell a customer when the 60-day transfer restriction lifts. Transfer-out is dashboard-only.",
                "operationId": "getRegistrarDomain",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/RegistrarDomain"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/renew": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Renew a domain",
                "description": "Renew a domain already registered at Atom for 1–10 years (.ai must be even). Charges account balance or a saved card. Returns the new expiry date and price_breakdown. This is the domain renewal endpoint.",
                "operationId": "renewDomain",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "renewal_length": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 10,
                                        "default": 1,
                                        "description": ".ai must be even years"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/lock": {
            "get": {
                "tags": [
                    "Transfers",
                    "Locking & Privacy"
                ],
                "summary": "Get transfer lock (registrar + ICANN 60-day)",
                "description": "Returns the customer-controlled registrar lock (locked / transfer_locked) and the automatic ICANN 60-day transfer restriction (icann_transfer_lock, icann_transfer_lock_expires_at). Use icann_transfer_lock_expires_at to tell a customer when the 60-day lock expires. can_transfer_out is true only when both are off; transferring out is done in the Atom dashboard, not via this API.",
                "operationId": "getRegistrarLock",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "locked": {
                                            "type": "boolean",
                                            "description": "Customer-controlled registrar lock"
                                        },
                                        "status": {
                                            "type": "string",
                                            "enum": [
                                                "locked",
                                                "unlocked"
                                            ]
                                        },
                                        "transfer_locked": {
                                            "type": "boolean"
                                        },
                                        "icann_transfer_lock": {
                                            "type": "boolean"
                                        },
                                        "icann_transfer_lock_expires_at": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "can_transfer_out": {
                                            "type": "boolean"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Transfers",
                    "Locking & Privacy"
                ],
                "summary": "Set registrar transfer lock",
                "description": "Lock a domain (CLIENT_TRANSFER_PROHIBITED). Unlocking and retrieving an EPP code are transfer-out actions and are only available in the Atom dashboard. This does not lift the ICANN 60-day lock.",
                "operationId": "saveRegistrarLock",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "locked"
                                ],
                                "properties": {
                                    "locked": {
                                        "type": "boolean",
                                        "description": "Must be true. Unlocking via API is not supported."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/nameservers": {
            "get": {
                "tags": [
                    "Nameservers"
                ],
                "summary": "Get nameservers",
                "operationId": "getNameservers",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Nameservers"
                ],
                "summary": "Update nameservers",
                "description": "Set type to atom (Atom marketplace NS), parking (Atom default NS), or custom. Custom requires a nameservers array. DNS record APIs only work when the domain is on atom or parking nameservers.",
                "operationId": "updateNameservers",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "atom",
                                            "parking",
                                            "custom"
                                        ],
                                        "default": "custom"
                                    },
                                    "nameservers": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "example": [
                                            "ns1.custom-dns.com",
                                            "ns2.custom-dns.com"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/privacy": {
            "put": {
                "tags": [
                    "Locking & Privacy"
                ],
                "summary": "Set WHOIS privacy",
                "description": "Enable or disable WHOIS / RDDS privacy for a domain you hold at Atom. Not available for .io. Can also be set at register or transfer time via privacy_protect.",
                "operationId": "updatePrivacy",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "enabled"
                                ],
                                "properties": {
                                    "enabled": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/auto-renew": {
            "put": {
                "tags": [
                    "Locking & Privacy"
                ],
                "summary": "Set auto-renew",
                "description": "Enable or disable auto-renewal for a domain you hold at Atom. Can also be set at register or transfer time via auto_renew.",
                "operationId": "updateAutoRenew",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "enabled": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/url-forwards": {
            "get": {
                "tags": [
                    "URL Forwards"
                ],
                "summary": "List URL forwards",
                "operationId": "getUrlForwards",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "URL Forwards"
                ],
                "summary": "Create URL forward",
                "operationId": "createUrlForward",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "source",
                                    "destination"
                                ],
                                "properties": {
                                    "source": {
                                        "type": "string",
                                        "example": "www.example.com"
                                    },
                                    "destination": {
                                        "type": "string",
                                        "example": "https://example.net"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "temporary",
                                            "permanent"
                                        ],
                                        "default": "temporary"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/url-forwards/{forward_id}": {
            "delete": {
                "tags": [
                    "URL Forwards"
                ],
                "summary": "Delete URL forward",
                "operationId": "deleteUrlForward",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    },
                    {
                        "name": "forward_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/records": {
            "get": {
                "tags": [
                    "DNS"
                ],
                "summary": "List DNS records",
                "operationId": "listDnsRecords",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/DnsRecord"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "DNS"
                ],
                "summary": "Create DNS record",
                "operationId": "createDnsRecord",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "type",
                                    "content"
                                ],
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "A",
                                            "AAAA",
                                            "CNAME",
                                            "MX",
                                            "TXT",
                                            "NS",
                                            "SRV",
                                            "CAA",
                                            "PTR"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "www"
                                    },
                                    "content": {
                                        "type": "string",
                                        "example": "192.168.1.1"
                                    },
                                    "ttl": {
                                        "type": "integer",
                                        "default": 3600
                                    },
                                    "comment": {
                                        "type": "string"
                                    },
                                    "priority": {
                                        "type": "integer",
                                        "description": "Required for MX; also used for SRV"
                                    },
                                    "service": {
                                        "type": "string",
                                        "description": "SRV only"
                                    },
                                    "protocol": {
                                        "type": "string",
                                        "description": "SRV only"
                                    },
                                    "weight": {
                                        "type": "integer",
                                        "description": "SRV only"
                                    },
                                    "port": {
                                        "type": "integer",
                                        "description": "SRV only"
                                    },
                                    "target": {
                                        "type": "string",
                                        "description": "SRV only"
                                    },
                                    "flags": {
                                        "type": "integer",
                                        "description": "CAA only"
                                    },
                                    "tag": {
                                        "type": "string",
                                        "description": "CAA only"
                                    },
                                    "value": {
                                        "type": "string",
                                        "description": "CAA only"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/records/{record_id}": {
            "put": {
                "tags": [
                    "DNS"
                ],
                "summary": "Update DNS record",
                "operationId": "updateDnsRecord",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    },
                    {
                        "name": "record_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "content": {
                                        "type": "string"
                                    },
                                    "ttl": {
                                        "type": "integer"
                                    },
                                    "comment": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "DNS"
                ],
                "summary": "Delete DNS record",
                "operationId": "deleteDnsRecord",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    },
                    {
                        "name": "record_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/dns/bulk-delete": {
            "delete": {
                "tags": [
                    "DNS"
                ],
                "summary": "Bulk delete DNS records",
                "operationId": "bulkDeleteDnsRecords",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Record type to delete (A, MX, …)"
                    },
                    {
                        "name": "subdomain",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional hostname; use @ for apex"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/dnssec": {
            "get": {
                "tags": [
                    "DNS"
                ],
                "summary": "Get DNSSEC status",
                "operationId": "getDnssec",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/dnssec/enable": {
            "post": {
                "tags": [
                    "DNS"
                ],
                "summary": "Enable DNSSEC",
                "operationId": "enableDnssec",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/dnssec/disable": {
            "post": {
                "tags": [
                    "DNS"
                ],
                "summary": "Disable DNSSEC",
                "operationId": "disableDnssec",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/contacts": {
            "get": {
                "tags": [
                    "Contacts"
                ],
                "summary": "List or search contacts",
                "description": "Returns every contact handle on the account. Filter with search (matches handle, name, email, label, organization), name, and/or email to find a handle from a person's name or email address.",
                "operationId": "listContacts",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Case-insensitive match against handle, name, email, label, or organization"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by contact name"
                    },
                    {
                        "name": "email",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by contact email"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Contact"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Create contact",
                "description": "Create a new contact handle. The returned data.handle is what you pass as registrant/admin/billing/tech on register, transfer, or PUT /domains/{domain_name}/contacts.",
                "operationId": "createContact",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "email",
                                    "phone",
                                    "city",
                                    "zip",
                                    "country"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "first_name": {
                                        "type": "string"
                                    },
                                    "last_name": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "phone": {
                                        "type": "string"
                                    },
                                    "address": {
                                        "description": "String or array of address lines"
                                    },
                                    "address_1": {
                                        "type": "string"
                                    },
                                    "address_2": {
                                        "type": "string"
                                    },
                                    "city": {
                                        "type": "string"
                                    },
                                    "state": {
                                        "type": "string"
                                    },
                                    "zip": {
                                        "type": "string"
                                    },
                                    "country": {
                                        "type": "string",
                                        "example": "US"
                                    },
                                    "fax": {
                                        "type": "string"
                                    },
                                    "organization": {
                                        "type": "string"
                                    },
                                    "label": {
                                        "type": "string"
                                    },
                                    "disclosed_fields": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/contacts/{handle}": {
            "get": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Get contact",
                "description": "Retrieve a single contact by handle. Use GET /contacts?email= or ?name= first if you only have a name or email.",
                "operationId": "getContact",
                "parameters": [
                    {
                        "name": "handle",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Contact"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Update contact",
                "description": "Update an existing contact handle owned by this account.",
                "operationId": "updateContact",
                "parameters": [
                    {
                        "name": "handle",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string"
                                    },
                                    "phone": {
                                        "type": "string"
                                    },
                                    "address": {
                                        "type": "string"
                                    },
                                    "city": {
                                        "type": "string"
                                    },
                                    "state": {
                                        "type": "string"
                                    },
                                    "zip": {
                                        "type": "string"
                                    },
                                    "country": {
                                        "type": "string"
                                    },
                                    "organization": {
                                        "type": "string"
                                    },
                                    "label": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/domains/{domain_name}/contacts": {
            "get": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Get domain contact handles",
                "description": "Returns the current registrant, admin, billing, and tech handles for the domain plus full contact records when the handles belong to this account.",
                "operationId": "getDomainContacts",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Assign domain contact handles",
                "description": "Provide at least one of registrant, admin, billing, or tech (existing contact handles from GET /contacts).",
                "operationId": "updateDomainContacts",
                "parameters": [
                    {
                        "name": "domain_name",
                        "in": "path",
                        "required": true,
                        "description": "Fully qualified domain name",
                        "schema": {
                            "type": "string",
                            "example": "example.com"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "registrant": {
                                        "type": "string"
                                    },
                                    "admin": {
                                        "type": "string"
                                    },
                                    "billing": {
                                        "type": "string"
                                    },
                                    "tech": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid Bearer token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for this domain",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Domain not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "API Token",
                "description": "Registrar API token from https://www.atom.com/dashboard/seller/api-access"
            }
        },
        "schemas": {
            "ErrorResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean",
                        "example": false
                    },
                    "error": {
                        "type": "string"
                    },
                    "message": {
                        "type": "string"
                    }
                }
            },
            "DomainPrice": {
                "type": "object",
                "description": "What Atom charges to register this specific domain, including premium pricing when applicable. unit_price is per year; total includes VAT.",
                "properties": {
                    "unit_price": {
                        "type": "number",
                        "description": "Registration price per year in USD (includes ICANN fee in the charged total separately)"
                    },
                    "renewal_price": {
                        "type": "number",
                        "description": "Renewal price per year in USD"
                    },
                    "icann_fee": {
                        "type": "number"
                    },
                    "is_premium": {
                        "type": "boolean",
                        "description": "True when the registry prices this label as premium"
                    },
                    "registration_length": {
                        "type": "integer",
                        "description": "Years used for this quote"
                    },
                    "subtotal": {
                        "type": "number"
                    },
                    "vat_rate": {
                        "type": "number"
                    },
                    "vat_amount": {
                        "type": "number"
                    },
                    "total": {
                        "type": "number",
                        "description": "Amount Atom would charge for this registration (subtotal + VAT)"
                    }
                }
            },
            "RegistrarDomain": {
                "type": "object",
                "properties": {
                    "domain_name": {
                        "type": "string",
                        "example": "example.com"
                    },
                    "status": {
                        "type": "string"
                    },
                    "extension": {
                        "type": "string",
                        "example": "com"
                    },
                    "created_date": {
                        "type": "string"
                    },
                    "updated_date": {
                        "type": "string"
                    },
                    "expiry_date": {
                        "type": "string"
                    },
                    "auto_renew": {
                        "type": "boolean"
                    },
                    "privacy_protect": {
                        "type": "boolean"
                    },
                    "transfer_locked": {
                        "type": "boolean",
                        "description": "Customer-controlled registrar lock (CLIENT_TRANSFER_PROHIBITED). When true the domain cannot be transferred out until unlocked."
                    },
                    "icann_transfer_lock": {
                        "type": "boolean",
                        "description": "ICANN-required 60-day transfer restriction after a new registration or inbound transfer. Independent of transfer_locked."
                    },
                    "icann_transfer_lock_expires_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "When the ICANN 60-day lock expires (YYYY-MM-DD HH:MM:SS). Null when the lock is not active."
                    },
                    "can_transfer_out": {
                        "type": "boolean",
                        "description": "True only when both the registrar lock and the ICANN 60-day lock are off. Informational: transfer-out itself is performed in the Atom dashboard, not via this API."
                    },
                    "dnssec_enabled": {
                        "type": "boolean"
                    },
                    "nameservers": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "registrant_handle": {
                        "type": "string"
                    },
                    "admin_handle": {
                        "type": "string",
                        "nullable": true
                    },
                    "tech_handle": {
                        "type": "string",
                        "nullable": true
                    },
                    "billing_handle": {
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "Contact": {
                "type": "object",
                "properties": {
                    "handle": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "registrant_user",
                            "contact_handle"
                        ]
                    },
                    "label": {
                        "type": "string",
                        "nullable": true
                    },
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "phone": {
                        "type": "string"
                    },
                    "fax": {
                        "type": "string",
                        "nullable": true
                    },
                    "organization": {
                        "type": "string",
                        "nullable": true
                    },
                    "address": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "city": {
                        "type": "string"
                    },
                    "state": {
                        "type": "string",
                        "nullable": true
                    },
                    "zip": {
                        "type": "string"
                    },
                    "country": {
                        "type": "string",
                        "example": "US"
                    },
                    "disclosed_fields": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "verified": {
                        "type": "boolean"
                    }
                }
            },
            "DnsRecord": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "type": {
                        "type": "string",
                        "example": "A"
                    },
                    "name": {
                        "type": "string"
                    },
                    "content": {
                        "type": "string"
                    },
                    "ttl": {
                        "type": "integer",
                        "example": 3600
                    },
                    "comment": {
                        "type": "string"
                    }
                }
            },
            "DnsRecordInput": {
                "type": "object",
                "required": [
                    "type",
                    "content"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "A",
                            "AAAA",
                            "CNAME",
                            "MX",
                            "TXT",
                            "NS",
                            "SRV",
                            "CAA",
                            "PTR"
                        ]
                    },
                    "name": {
                        "type": "string",
                        "example": "www"
                    },
                    "content": {
                        "type": "string",
                        "example": "192.168.1.1"
                    },
                    "ttl": {
                        "type": "integer",
                        "default": 3600
                    },
                    "comment": {
                        "type": "string"
                    },
                    "priority": {
                        "type": "integer",
                        "description": "MX and SRV"
                    },
                    "service": {
                        "type": "string",
                        "description": "SRV only"
                    },
                    "protocol": {
                        "type": "string",
                        "description": "SRV only"
                    },
                    "weight": {
                        "type": "integer",
                        "description": "SRV only"
                    },
                    "port": {
                        "type": "integer",
                        "description": "SRV only"
                    },
                    "target": {
                        "type": "string",
                        "description": "SRV only"
                    },
                    "flags": {
                        "type": "integer",
                        "description": "CAA only"
                    },
                    "tag": {
                        "type": "string",
                        "description": "CAA only"
                    },
                    "value": {
                        "type": "string",
                        "description": "CAA only"
                    }
                }
            },
            "Pagination": {
                "type": "object",
                "properties": {
                    "current_page": {
                        "type": "integer"
                    },
                    "total_pages": {
                        "type": "integer"
                    },
                    "per_page": {
                        "type": "integer"
                    },
                    "total_records": {
                        "type": "integer"
                    }
                }
            },
            "TldPrice": {
                "type": "object",
                "properties": {
                    "register": {
                        "type": "number"
                    },
                    "renew": {
                        "type": "number"
                    },
                    "transfer": {
                        "type": "number"
                    },
                    "icann_fee": {
                        "type": "number"
                    },
                    "renewal_length": {
                        "type": "integer"
                    }
                }
            }
        }
    }
}