Create a new WordPress installation
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.wpengineapi.com/v1/installs"
payload := strings.NewReader("{ \"name\": \"torquemag\", \"account_id\": \"eeda3227-9a39-46ae-9e14-20958bb4e6c9\", \"site_id\": \"28c78b6d-c2da-4f09-85f5-1ad588089b2d\", \"environment\": \"staging\" }")
req, _ := http.NewRequest("POST", 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';const options = { method: 'POST', headers: {Authorization: 'Basic <credentials>', 'Content-Type': 'application/json'}, body: '{"name":"torquemag","account_id":"eeda3227-9a39-46ae-9e14-20958bb4e6c9","site_id":"28c78b6d-c2da-4f09-85f5-1ad588089b2d","environment":"staging"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.wpengineapi.com/v1/installs \ --header 'Authorization: Basic <credentials>' \ --header 'Content-Type: application/json' \ --data '{ "name": "torquemag", "account_id": "eeda3227-9a39-46ae-9e14-20958bb4e6c9", "site_id": "28c78b6d-c2da-4f09-85f5-1ad588089b2d", "environment": "staging" }'Authorizations
Section titled “Authorizations ”Request Body
Section titled “Request Body ”Properties
- name - required - The name of the install
- account_id - required - The ID of the account that the install will belong to
- site_id - required for accounts with sites enabled - The ID of the site that the install will belong to
- environment - required for accounts with sites enabled - The site environment that the install will fill
object
The name of the install
The ID of the account that the install will belong to
The ID of the site that the install will belong to
The site environment that the install will fill
Example
{ "name": "torquemag", "account_id": "eeda3227-9a39-46ae-9e14-20958bb4e6c9", "site_id": "28c78b6d-c2da-4f09-85f5-1ad588089b2d", "environment": "staging"}Responses
Section titled “ Responses ”Created
object
object
The account ID
The PHP version used to run WordPress (read-only)
object
Returns the CNAME of the install
A list of stable IPs bound to the install. This will only apply to some premium/enterprise plans
The primary domain for the install.
The date and time the install was created in UTC.
The WordPress version installed on the install. Only returned when requesting an individual install.
If set, automatic WordPress core major updates will be deferred until this date. Only returned when requesting an individual install.
Example
{ "id": "294deacc-d8b8-4005-82c4-0727ba8ddde0", "name": "torquemag", "account": { "id": "eeda3227-9a39-46ae-9e14-20958bb4e6c9" }, "php_version": "7.0", "status": "active", "site": { "id": "28c78b6d-c2da-4f09-85f5-1ad588089b2d" }, "cname": "mywebsite.wpengine.com", "stable_ips": [ "1.2.3.2", "1.1.1.2" ], "environment": "production", "primary_domain": "mywebsite.wpengine.com", "is_multisite": false, "created_at": "2025-06-12T09:56:42.386Z", "wp_version": "6.8.1", "defer_wordpress_upgrades_until": "2025-12-31T23:59:59.999Z"}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 Site: Name cannot be empty.", "errors": [ { "resource": "Site", "field": "name", "type": "invalid_value", "code": "too_long", "message": "Name is too long (maximum is 40 characters)" } ]}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"}Too many requests
Service unavailable