Skip to content
WP Engine Documentation

Initiate a site transfer

POST
/sites/{site_id}/site_transfers

Description

Requests a transfer of the given site to a destination account. The transfer is accepted asynchronously and will initially have a pending or scheduled status.

Requires Owner or Full with Billing access on both the origin and destination accounts.

Constraints
  • Origin and destination accounts must be different
  • Sandbox sites cannot be transferred
  • The destination account must have a preferred Data Center configured
  • If scheduled_time is provided, it must be an RFC 3339 datetime between 1 hour and 7 days in the future
site_id
required
string format: uuid

ID of the site to transfer

Properties
  • destination_account_id (required) — UUID of the account to transfer the site to
  • scheduled_time (optional) — RFC 3339 datetime at which the transfer should be executed (must be between 1 hour and 7 days in the future). Omit to transfer immediately.
  • maintenance_mode (optional) — Whether to enable maintenance mode during the transfer. Defaults to false.
object
destination_account_id
required

UUID of the destination account

string format: uuid
Example
eeda3227-9a39-46ae-9e14-20958bb4e6c9
scheduled_time

RFC 3339 datetime at which to execute the transfer. Must be between 1 hour and 7 days in the future. Example: ‘2026-06-01T14:30:00Z’

string format: date-time
Example
2026-06-01T14:30:00Z
maintenance_mode

Whether to enable maintenance mode on the site during the transfer

boolean

Transfer accepted

object
id
required

Unique identifier for the site transfer

string format: uuid
Example
7c3e1a2b-4f5d-4e6c-b7a8-d9e0f1a2b3c4
site
required

Name of the site being transferred (as it was at time of transfer)

string
Example
my-wordpress-site
installs
required

Names of the installs associated with the site at time of transfer

Array<string>
Example
[
"mysite",
"mysitestg"
]
origin_account
required

Name of the account the site is transferring from

string
Example
Acme Corp
destination_account
required

Name of the account the site is transferring to

string
Example
New Owner Inc
status
required

Current status of the transfer

string
Allowed values: pending scheduled in_progress completed failed cancelled
Example
scheduled
scheduled_time

The time at which the transfer is scheduled to execute. Null for immediate transfers.

string format: date-time
Example
2026-06-01T14:30:00Z
created_at
required

Timestamp when the transfer was created

string format: date-time
Example
2026-05-15T10:00:00Z
updated_at
required

Timestamp when the transfer was last updated

string format: date-time
Example
2026-05-15T10:05:00Z

Bad Request

object
message
required

A message regarding the error that occurred on the server

string
Example
Invalid Site: Name cannot be empty.
documentation_url

(Optional) A URL where documentation regarding this specific error can be found

string
errors

An array of error objects describing specific errors that arose when servicing the request

Array<object>
object
resource
required

The name of the resource that was being processed when the error occurred

string
Example
Site
field
required

(Optional) The specific field associated with the error

string
Example
name
type
required

(Optional) A type associated with the error. invalid_value, access_error, value_unavailable

string
Example
invalid_value
code
required

(Optional) A machine code relating to the error that occurred with the field and resource

string
Example
too_long
message
required

(Optional) A human-readable message relating to the error that occurred with the field and resource

string
Example
Name is too long (maximum is 40 characters)

Authentication Error

object
message
required

A message regarding the error that occurred on the server

string
Example
Bad Credentials
documentation_url

(Optional) A URL where documentation regarding this specific error can be found

string

Not authorized

object
message
required

A message regarding the error that occurred on the server

string
Example
You don't have permission to perform that action
documentation_url

(Optional) A URL where documentation regarding this specific error can be found

string

Not found

object
message
required

A message regarding the error that occurred on the server

string
Example
Not Found
documentation_url

(Optional) A URL where documentation regarding this specific error can be found

string

Conflict — e.g. site already has an active transfer, site is not in a transferable state, or destination account is not eligible.

object
message
required

A message regarding the conflict that occurred

string
Example
Transfer has already started and cannot be cancelled
documentation_url

(Optional) A URL where documentation regarding this specific error can be found

string

Unprocessable Entity — e.g. validation failed on transfer parameters

object
message
required

A message regarding the unprocessable entity that occurred

string
Example
Validation failed on transfer parameters
documentation_url

(Optional) A URL where documentation regarding this specific error can be found

string
errors

An array of error objects describing specific errors that arose when servicing the request

Array<object>
object
resource
required

The name of the resource that was being processed when the error occurred

string
Example
Site
field
required

(Optional) The specific field associated with the error

string
Example
name
type
required

(Optional) A type associated with the error. invalid_value, access_error, value_unavailable

string
Example
invalid_value
code
required

(Optional) A machine code relating to the error that occurred with the field and resource

string
Example
too_long
message
required

(Optional) A human-readable message relating to the error that occurred with the field and resource

string
Example
Name is too long (maximum is 40 characters)

Too many requests

Internal Server Error

object
message
required

A message regarding the error that occurred on the server

string
Example
An unexpected error occurred, please try again in a few minutes

Service unavailable