Update a domain
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.wpengineapi.com/v1/installs/294deacc-d8b8-4005-82c4-0727ba8ddde0/domains/e41fa98f-ea80-4654-b229-a9b765d0863a"
payload := strings.NewReader("{ \"primary\": true, \"redirect_to\": \"6977805b-1f65-4a5d-8d36-6fe609a4d9f3\", \"secure_all_urls\": false }")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <credentials>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.wpengineapi.com/v1/installs/294deacc-d8b8-4005-82c4-0727ba8ddde0/domains/e41fa98f-ea80-4654-b229-a9b765d0863a';const options = { method: 'PATCH', headers: {Authorization: 'Basic <credentials>', 'Content-Type': 'application/json'}, body: '{"primary":true,"redirect_to":"6977805b-1f65-4a5d-8d36-6fe609a4d9f3","secure_all_urls":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://api.wpengineapi.com/v1/installs/294deacc-d8b8-4005-82c4-0727ba8ddde0/domains/e41fa98f-ea80-4654-b229-a9b765d0863a \ --header 'Authorization: Basic <credentials>' \ --header 'Content-Type: application/json' \ --data '{ "primary": true, "redirect_to": "6977805b-1f65-4a5d-8d36-6fe609a4d9f3", "secure_all_urls": false }'Updates a domain on the install. For domain verification, see the Adding and Verifying Domains guide.
Limitations & Warnings
- Cannot set a duplicate, wildcard, or redirected domain as the primary.
- The domain doesn’t serve traffic until its ownership is verified.
Verification status is in the
ownership_statusfield (TXT_VERIFIEDorTXT_VERIFICATION_PENDING). To verify, add a DNS TXT record using thetxt_verification_keyandtxt_verification_valuefields, then POST to/installs/{install_id}/domains/{domain_id}/verification.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The install ID
Example
294deacc-d8b8-4005-82c4-0727ba8ddde0ID of domain
Example
e41fa98f-ea80-4654-b229-a9b765d0863aRequest Bodyrequired
Section titled “Request Bodyrequired”Properties
- primary - optional - Boolean value to make the domain primary on the given install
- redirect_to - optional - The UUID of another Domain record, or “nil” to remove an existing redirect.
- secure_all_urls - optional - Boolean value to force all URLs to use HTTPS
object
Example
trueExample
6977805b-1f65-4a5d-8d36-6fe609a4d9f3Example
falseResponses
Section titled “Responses”Returns the updated Domain object.
object
The WP Engine network type configured for the domain. Possible values are ‘AN’ (Advanced Network) ‘GES’ (Global Edge Security) and ‘LEGACY’.
Details about the network configuration for the domain.
object
DNS configuration information for the domain.
object
The CNAME value to use to configure a DNS CNAME record for the domain.
IP addresses that can be used to configure a DNS A record for the domain.
object
The status of the network configuration for the domain.
SSL configuration status
object
object
The time when the TXT record was verified
The domain that the TXT record was verified for
The TXT record verification key. Null if the domain is already verified.
The TXT record verification value. Null if the domain is already verified.
Ownership verification status of the domain.
- TXT_VERIFIED indicates the domain ownership has been verified.
- TXT_VERIFICATION_PENDING indicates the domain ownership still requires verification using TXT record.
NOTE: To verify the domain, a DNS TXT record must be added to your domain registry using the txt_verification_key
and txt_verification_value fields provided with the domain. After the TXT record is in place, POST to
/installs/{install_id}/domains/{domain_id}/verification to complete verification.
Example
{ "name": "torquemag.io", "duplicate": true, "primary": true, "id": "e41fa98f-ea80-4654-b229-a9b765d0863a", "network_type": "AN", "network_details": { "dns_config_info": { "cname": "wp.wpenginepowered.com", "a_records": [ "127.0.0.1" ] }, "network_info": { "status": "ACTIVE", "ssl": { "status": "active" } } }, "redirects_to": [ { "id": "e41fa98f-ea80-4006-b229-a9b765d0863a", "name": "redirect.com" } ], "secure_all_urls": false, "txt_verified_time": "2026-04-20T16:00:00.007Z", "txt_verified_domain": "example.com", "txt_verification_key": "_wpe_verification", "ownership_status": "TXT_VERIFIED"}Bad Request
object
A message regarding the error that occurred on the server
(Optional) A URL where documentation regarding this specific error can be found
An array of error objects describing specific errors that arose when servicing the request
object
The name of the resource that was being processed when the error occurred
(Optional) The specific field associated with the error
(Optional) A type associated with the error. invalid_value, access_error, value_unavailable
(Optional) A machine code relating to the error that occurred with the field and resource
(Optional) A human-readable message relating to the error that occurred with the field and resource
Example
{ "message": "Invalid request.", "errors": [ { "resource": "Resource", "field": "field_name", "type": "invalid_value", "code": "invalid", "message": "The value is invalid." } ]}Authentication Error
object
A message regarding the error that occurred on the server
(Optional) A URL where documentation regarding this specific error can be found
Example
{ "message": "Bad Credentials"}Not authorized
object
A message regarding the error that occurred on the server
(Optional) A URL where documentation regarding this specific error can be found
Example
{ "message": "You don't have permission to perform that action"}Not found
object
A message regarding the error that occurred on the server
(Optional) A URL where documentation regarding this specific error can be found
Example
{ "message": "Not Found"}Too many requests
Internal Server Error
object
A message regarding the error that occurred on the server
Example
{ "message": "An unexpected error occurred, please try again in a few minutes"}Service unavailable