# Update domain contacts Update the contacts associated with the specified domain. You can update any combination of owner, admin, tech, and billing contacts. Use $preview=true to validate without applying changes. Endpoint: PATCH /domains/{name}/dns/contacts Version: 1.0.0 Security: bearer ## Path parameters: - `name` (string, required) ## Query parameters: - `$preview` (boolean, required) ## Request fields (application/json): - `owner` (object) Provide EITHER an existing contact id (format: ct-) 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. - `owner.tldData` (object) TLD-specific data required for certain TLDs (e.g., CIRA requirements for .ca). Only applicable when creating a new contact (id is absent). - `owner.tldData.ca` (object) CIRA-specific data required for .ca domain registration. All fields are required. - `owner.tldData.ca.registrantAgreementAcknowledged` (boolean, required) Must be true to acknowledge the CIRA registrant agreement. Submitting false will fail validation. Enum: true - `owner.tldData.ca.preferredLanguageCode` (string, required) Enum: "en_US", "fr_CA", "en", "fr" - `owner.tldData.ca.canadianPresenceRequirement` (string, required) Enum: "CCT", "LGR", "RES", "ABO", "CCO", "ASS", "PRT", "TDM", "TRD", "PLT", "TRS", "LAM", "EDU", "HOP", "GOV", "INB", "OMK", "MAJ" - `owner.id` (string) Existing contact ID. When provided, all other fields are ignored. Example: "ct-a1b2c3d4-e5f6-7890-abcd-ef1234567890" - `owner.firstName` (string) - `owner.lastName` (string) - `owner.organization` (string) - `owner.countryCode` (string) ISO 3166-1 alpha-2 country code (e.g., "US", "CA", "GB"). Required when creating a new contact. - `owner.street` (string) - `owner.city` (string) - `owner.postalCode` (string) Postal/ZIP code. Validated against the provided countryCode. Required when creating a new contact. - `owner.stateProvince` (string) State or province. Validated against the provided countryCode. Required when creating a new contact. - `owner.phone` (object) Phone number with international dialing prefix. - `owner.phone.number` (string, required) Phone number digits (numeric string, 6-14 characters). - `owner.phone.dialingPrefix` (string, required) International dialing prefix (e.g., "+1" for US/CA, "+44" for UK). Example: "+1" - `owner.email` (string) - `admin` (object) Provide EITHER an existing contact id (format: ct-) 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. - `tech` (object) Provide EITHER an existing contact id (format: ct-) 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. - `billing` (object) Provide EITHER an existing contact id (format: ct-) 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. ## Response 200 fields (application/json): - `@type` (string, required) Enum: "unstoppabledomains.com/partner.v3.DomainContactOperationResult" - `operation` (object, required) - `operation.id` (string, required) Operation ID Example: "op-a1b2c3d4-e5f6-7890-abcd-ef1234567890" - `operation.status` (string, required) Enum: "PREVIEW", "QUEUED", "PROCESSING", "FAILED", "COMPLETED", "CANCELLED", "AWAITING_UPDATES" - `operation.type` (string, required) Enum: "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" - `operation.domain` (string) - `operation.createdAtTimestamp` (number, required) - `operation.lastUpdatedTimestamp` (number, required) - `operation.validUntilTimestamp` (number) - `operation.dependencies` (array, required) List of platform operation dependencies that make up this operation