---
title: "Update a domain"
method: PATCH
path: "/domains/{name}"
tags: ["domain-management"]
---

# Update a domain

`PATCH /domains/{name}`

Comprehensive domain update — modify nameservers, DNSSEC, contacts, flags, and DNS records in a single operation. All fields are optional; only include the sections you want to change. Returns an operation that tracks all the resulting changes.

## Path parameters

- `name` string, required

## Query parameters

- `$preview` boolean, required

## Request body

- DomainUpdateRequestBody — Comprehensive domain update — change nameservers, DNSSEC, contacts, flags, and DNS records in a single request. All fields are optional; only include sections you want to change.
  - `nameservers` DomainUpdateNameserversConfig — Nameserver configuration. Provide `items` to switch to custom nameservers, or set `$revertToManaged` to switch back to UD-managed nameservers. These options are mutually exclusive.
    - `items` string[] — Custom nameserver hostnames.
    - `dnssec` DomainDnsSecruityCreateRequestBodyDnssec
      - `items` DomainDnsSecruityCreateRequestBodyDnssecItem[], required
        - `keyTag` number, required
        - `algorithm` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 23 | 252 | 253 | 254, required — DNSSEC algorithm identifier (RFC 8624)
        - `digestType` 1 | 2 | 3 | 4 | 5 | 6, required — DNSSEC digest type identifier (RFC 8624)
        - `digest` string, required
    - `$revertToManaged` boolean — Set to `true` to revert to UD-managed nameservers. Mutually exclusive with `items`.
  - `dnssec` DomainUpdateDnssecConfig — DNSSEC configuration for UD-managed nameservers. Enable or disable DNSSEC signing.
    - `enabled` boolean, required — Set to `true` to enable DNSSEC, `false` to disable.
    - `$forceCompatibility` boolean — Force compatibility mode when enabling DNSSEC.
  - `contacts` DomainContactUpdatesRequestBody — Update contact assignments for domain roles. Each role accepts either an existing contact ID or inline contact fields to create a new contact. Only include roles you want to update — omitted roles remain unchanged.
    - `owner` DomainOwnerContactRequestBody — Provide EITHER an existing contact `id` (format: `ct-<uuid>`) OR the full set of inline contact fields to create a new contact. When `id` is provided, all other fields are ignored. When `id` is absent, the following fields are required: firstName, lastName, countryCode, street, city, postalCode, stateProvince, phone, email. For the owner (registrant) contact, an optional `tldData` field can provide TLD-specific data (e.g., CIRA requirements for .ca domains) when creating a new contact.
      - `tldData` DomainOwnerContactTldSpecificRequestBody — TLD-specific owner contact data. Currently only `.ca` (CIRA) is supported. Include the relevant TLD key only when registering a domain under that TLD.
        - `ca` DomainContactCiraRequestBody — CIRA-specific data required for .ca domain registration. All fields are required.
          - `registrantAgreementAcknowledged` true, required — Must be `true` to acknowledge the CIRA registrant agreement. Submitting `false` will fail validation.
          - `preferredLanguageCode` 'en_US' | 'fr_CA' | 'en' | 'fr', required — CIRA preferred language code
          - `canadianPresenceRequirement` 'CCT' | 'LGR' | 'RES' | 'ABO' | 'CCO' | 'ASS' | 'PRT' | 'TDM' | 'TRD' | 'PLT' | 'TRS' | 'LAM' | 'EDU' | 'HOP' | 'GOV' | 'INB' | 'OMK' | 'MAJ', required — CIRA Canadian Presence Requirement category
      - `id` string — Existing contact ID. When provided, all other fields are ignored.
      - `firstName` string
      - `lastName` string
      - `organization` string
      - `countryCode` string — ISO 3166-1 alpha-2 country code (e.g., "US", "CA", "GB"). Required when creating a new contact.
      - `street` string
      - `city` string
      - `postalCode` string — Postal/ZIP code. Validated against the provided countryCode. Required when creating a new contact.
      - `stateProvince` string — State or province. Validated against the provided countryCode. Required when creating a new contact.
      - `phone` ContactPhoneRequestBody — Phone number with international dialing prefix.
        - `number` string, required — Phone number digits (numeric string, 6-14 characters).
        - `dialingPrefix` string, required — International dialing prefix (e.g., "+1" for US/CA, "+44" for UK).
      - `email` string, email
    - `admin` DomainContactRequestBody — Provide EITHER an existing contact `id` (format: `ct-<uuid>`) OR the full set of inline contact fields to create a new contact. When `id` is provided, all other fields are ignored. When `id` is absent, the following fields are required: firstName, lastName, countryCode, street, city, postalCode, stateProvince, phone, email.
      - `id` string — Existing contact ID. When provided, all other fields are ignored.
      - `firstName` string
      - `lastName` string
      - `organization` string
      - `countryCode` string — ISO 3166-1 alpha-2 country code (e.g., "US", "CA", "GB"). Required when creating a new contact.
      - `street` string
      - `city` string
      - `postalCode` string — Postal/ZIP code. Validated against the provided countryCode. Required when creating a new contact.
      - `stateProvince` string — State or province. Validated against the provided countryCode. Required when creating a new contact.
      - `phone` ContactPhoneRequestBody — Phone number with international dialing prefix.
        - `number` string, required — Phone number digits (numeric string, 6-14 characters).
        - `dialingPrefix` string, required — International dialing prefix (e.g., "+1" for US/CA, "+44" for UK).
      - `email` string, email
    - `tech` DomainContactRequestBody — Provide EITHER an existing contact `id` (format: `ct-<uuid>`) OR the full set of inline contact fields to create a new contact. When `id` is provided, all other fields are ignored. When `id` is absent, the following fields are required: firstName, lastName, countryCode, street, city, postalCode, stateProvince, phone, email.
      - `id` string — Existing contact ID. When provided, all other fields are ignored.
      - `firstName` string
      - `lastName` string
      - `organization` string
      - `countryCode` string — ISO 3166-1 alpha-2 country code (e.g., "US", "CA", "GB"). Required when creating a new contact.
      - `street` string
      - `city` string
      - `postalCode` string — Postal/ZIP code. Validated against the provided countryCode. Required when creating a new contact.
      - `stateProvince` string — State or province. Validated against the provided countryCode. Required when creating a new contact.
      - `phone` ContactPhoneRequestBody — Phone number with international dialing prefix.
        - `number` string, required — Phone number digits (numeric string, 6-14 characters).
        - `dialingPrefix` string, required — International dialing prefix (e.g., "+1" for US/CA, "+44" for UK).
      - `email` string, email
    - `billing` DomainContactRequestBody — Provide EITHER an existing contact `id` (format: `ct-<uuid>`) OR the full set of inline contact fields to create a new contact. When `id` is provided, all other fields are ignored. When `id` is absent, the following fields are required: firstName, lastName, countryCode, street, city, postalCode, stateProvince, phone, email.
      - `id` string — Existing contact ID. When provided, all other fields are ignored.
      - `firstName` string
      - `lastName` string
      - `organization` string
      - `countryCode` string — ISO 3166-1 alpha-2 country code (e.g., "US", "CA", "GB"). Required when creating a new contact.
      - `street` string
      - `city` string
      - `postalCode` string — Postal/ZIP code. Validated against the provided countryCode. Required when creating a new contact.
      - `stateProvince` string — State or province. Validated against the provided countryCode. Required when creating a new contact.
      - `phone` ContactPhoneRequestBody — Phone number with international dialing prefix.
        - `number` string, required — Phone number digits (numeric string, 6-14 characters).
        - `dialingPrefix` string, required — International dialing prefix (e.g., "+1" for US/CA, "+44" for UK).
      - `email` string, email
  - `flags` DomainFlagUpdateRequestBody — Update domain flag settings. Only include the flags you want to change — omitted flags remain unchanged.
    - `DNS_RESOLUTION` DomainFlagUpdateRequestBodyFlag
      - `status` 'ENABLED' | 'DISABLED', required
    - `DNS_TRANSFER_OUT` DomainFlagUpdateRequestBodyFlag
      - `status` 'ENABLED' | 'DISABLED', required
    - `DNS_DELETE` DomainFlagUpdateRequestBodyFlag
      - `status` 'ENABLED' | 'DISABLED', required
    - `DNS_UPDATE` DomainFlagUpdateRequestBodyFlag
      - `status` 'ENABLED' | 'DISABLED', required
    - `DNS_RENEW` DomainFlagUpdateRequestBodyFlag
      - `status` 'ENABLED' | 'DISABLED', required
    - `DNS_WHOIS_PROXY` DomainFlagUpdateRequestBodyFlag
      - `status` 'ENABLED' | 'DISABLED', required
  - `records` DomainUpdateRecordsConfig — Batch DNS record operations. Create, update, and/or delete records in a single request.
    - `create` DomainDnsRecordCreateRequestBody[] — Records to create.
      - `subName` string — Subdomain name (e.g., "www", "mail"). Omit or leave empty for the apex domain.
      - `type` 'A' | 'AAAA' | 'ALIAS' | 'CAA' | 'CNAME' | 'DNSKEY' | 'DS' | 'HTTPS' | 'IPSECKEY' | 'MX' | 'NAPTR' | 'NS' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'SSHFP' | 'SVCB' | 'TLSA' | 'TXT', required — DNS record type. Case-insensitive — values are uppercased automatically.
      - `values` string[], required
      - `ttl` number, required
      - `$upsert` 'REPLACE' | 'APPEND' | 'DISALLOWED' — Upsert mode for handling conflicts with existing records. Case-insensitive. REPLACE: overwrite existing record values. APPEND: add values to existing record. DISALLOWED: fail if record exists.
      - `$forceCompatibility` boolean, required
    - `update` DomainUpdateRecordItem[] — Records to update by ID.
      - `id` string, required — DNS record ID to update.
      - `values` string[] — Updated record values.
      - `ttl` number — Updated TTL in seconds.
      - `$forceCompatibility` boolean — Force compatibility mode.
    - `delete` string[] — Record IDs to delete.

## Response `200`

Update operation created

- DomainOperationResponse
  - `@type` 'unstoppabledomains.com/partner.v3.DomainOperationResult', required
  - `operation` OperationCheckResponse, required
    - `@type` 'unstoppabledomains.com/partner.v3.Operation', required
    - `id` string, required — Operation ID
    - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required
    - `type` 'ADMIN_GENERIC' | 'DOMAIN_ADMIN_UPDATE' | 'DOMAIN_RENEW' | 'ACCOUNT_UPDATE' | 'DOMAIN_DNS_RECORD_CREATE' | 'DOMAIN_DNS_RECORD_UPDATE' | 'DOMAIN_DNS_RECORD_DELETE' | 'DOMAIN_DNS_RECORD_BATCH' | 'DOMAIN_DNS_SECURITY_ENABLE' | 'DOMAIN_DNS_SECURITY_DELETE' | 'DOMAIN_DNS_NAME_SERVER_UPDATE' | 'DOMAIN_HOSTING_UPDATE' | 'DOMAIN_HOSTING_DISABLE' | 'DOMAIN_TRANSFER_OUT' | 'DOMAIN_TRANSFER_OUT_TOGGLE' | 'DOMAIN_FLAGS_UPDATE' | 'DOMAIN_CONTACTS_UPDATE' | 'CONTACT_CREATE' | 'DOMAIN_SUGGESTION_CREATE' | 'DOMAIN_SUGGESTION_REFRESH' | 'DOMAIN_ADMIN_DNS_ZONE_MIGRATE', required
    - `domain` string
    - `createdAtTimestamp` number, required
    - `lastUpdatedTimestamp` number, required
    - `validUntilTimestamp` number
    - `dependencies` PlatformOperationDependency[], required — List of platform operation dependencies that make up this operation
      - union — A platform operation dependency. Discriminated by the `type` field — each type has its own `parameters` and `result` shape.
        - PlatformOperationDomainRegister — Registers a new domain with the specified owner contact and optional role contacts
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_REGISTER', required
          - `parameters` object, required
            - `owner` ContactAssignment, required — Reference to an existing or newly created contact
              - …
            - `contacts` NonRegistrantContacts — Non-registrant contact role assignments (admin, billing, tech)
              - …
            - `period` integer — Registration period in years
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainDnsRenew — Renews a domain for the specified period
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_DNS_RENEW', required
          - `parameters` object, required
            - `period` integer, required — Renewal period in years
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDnsRecordCreate — Creates a new DNS record for the domain
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DNS_RECORD_CREATE', required
          - `parameters` object, required
            - `subName` string — Subdomain name (empty for apex domain)
            - `type` 'A' | 'AAAA' | 'ALIAS' | 'CAA' | 'CNAME' | 'DNSKEY' | 'DS' | 'HTTPS' | 'IPSECKEY' | 'MX' | 'NAPTR' | 'NS' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'SSHFP' | 'SVCB' | 'TLSA' | 'TXT', required
            - `values` string[], required
            - `ttl` integer, required — Time-to-live in seconds
          - `result` object
            - `id` string, required — ID of the created DNS record
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDnsRecordUpdate — Updates an existing DNS record
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DNS_RECORD_UPDATE', required
          - `parameters` object, required
            - `id` string, required — DNS record ID to update
            - `values` string[]
            - `ttl` integer — Time-to-live in seconds
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDnsRecordDelete — Deletes a DNS record
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DNS_RECORD_DELETE', required
          - `parameters` object, required
            - `id` string, required — DNS record ID to delete
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainSetNameServers — Sets the nameservers for a domain (external nameservers or revert to UD-managed)
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_SET_NAMESERVERS', required
          - `parameters` object, required
            - `items` string[] — Nameserver hostnames
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainDnsSecuritySetDnssec — Configures DNSSEC DS records at the registry for a domain
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_DNS_SECURITY_SET_DNSSEC', required
          - `parameters` object, required
            - `domain` string — Domain name
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainDnsSecurityDeleteDnssec — Removes DNSSEC DS records from the registry for a domain
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_DNS_SECURITY_DELETE_DNSSEC', required
          - `parameters` object, required
            - `domain` string — Domain name
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainDnsSecurityUpdateZone — Updates the DNS zone configuration for DNSSEC signing
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_DNS_SECURITY_UPDATE_ZONE', required
          - `parameters` object, required
            - `domain` string — Domain name
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainFlagLockUpdate — Updates domain flag lock settings (e.g., transfer lock, delete lock)
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_FLAG_LOCK_UPDATE', required
          - `parameters` object, required
            - `locks` DomainFlagLocks — Map of domain flag names to boolean lock values. Keys are DomainFlagType values.
            - `policyLocks` DomainFlagLocks — Map of domain flag names to boolean lock values. Keys are DomainFlagType values.
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationDomainDnsContactSet — Updates contact role assignments for the domain
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'DOMAIN_DNS_CONTACT_SET', required
          - `parameters` object, required
            - `owner` ContactAssignment — Reference to an existing or newly created contact
              - …
            - `admin` ContactAssignment — Reference to an existing or newly created contact
              - …
            - `billing` ContactAssignment — Reference to an existing or newly created contact
              - …
            - `tech` ContactAssignment — Reference to an existing or newly created contact
              - …
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationContactCreate — Creates a new contact for use in domain registration or management
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'CONTACT_CREATE', required
          - `parameters` object, required
            - `purposes` ContactPurpose[], required — Intended roles for this contact
          - `result` object
            - `id` string, required — ID of the created contact
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationWebhookCreate — Creates a webhook subscription
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'WEBHOOK_CREATE', required
          - `parameters` object, required
            - `url` string, required — Webhook callback URL
            - `type` 'OPERATION_FINISHED' | 'OPERATION_ACTION_REQUIRED' | 'OPERATION_CREATED', required
          - `result` object
            - `id` string, required — ID of the created webhook
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description
        - PlatformOperationWebhookDelete — Deletes a webhook subscription
          - `id` string, required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `status` 'PREVIEW' | 'QUEUED' | 'PROCESSING' | 'FAILED' | 'COMPLETED' | 'CANCELLED' | 'AWAITING_UPDATES', required — Status of a platform operation dependency
          - `type` 'WEBHOOK_DELETE', required
          - `parameters` object, required
            - `id` string, required — Webhook ID to delete
          - `error` OperationDependencyError — Error details for a failed operation dependency
            - `code` string, required — Error code identifying the failure type
            - `message` string, required — Human-readable error description

## Other responses

- `400` — Invalid request
- `401` — Authentication required
- `403` — Insufficient permissions
- `404` — Resource not found
- `500` — Internal server error

---

[API](https://skmtc.net/unstoppabledomains/apis/reseller-api.md) · [All operations](https://skmtc.net/unstoppabledomains/apis/reseller-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unstoppabledomains/reseller-api/revisions/e0ac88d02fe7/schema)
