Client API: Mail: Migrations
The 6 Client API operations for migrations.
Part of Mail.
Operations
Section titled Operations| Method | Path | Summary |
|---|---|---|
| GET | /api/v1/client/platform-mail/{tenant_id}/migrations |
List the service's migrations |
| POST | /api/v1/client/platform-mail/{tenant_id}/migrations/cpanel |
Move a cPanel account's mail here |
| POST | /api/v1/client/platform-mail/{tenant_id}/migrations/cpanel/discover |
Find what a cPanel account holds and what moving it here would do |
| GET | /api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id} |
Get one migration and how far each of its mailboxes has got |
| POST | /api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}/finish |
Finish a migration and forget the old mailboxes' passwords |
| POST | /api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}/sync |
Bring in what reached the old mailboxes since the migration started |
List the service's migrations
Section titled List the service's migrationsGET /api/v1/client/platform-mail/{tenant_id}/migrations
List the service's migrations.
The last 20, newest first, each with every mailbox's latest import and the totals.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
tenant_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Move a cPanel account's mail here
Section titled Move a cPanel account's mail herePOST /api/v1/client/platform-mail/{tenant_id}/migrations/cpanel
Move a cPanel account's mail here.
Nothing changes until every check
holds: the account answers, the plan has room for the new mailboxes
and their quotas, the old server's IMAP answers over TLS on port 993,
and each old mailbox password given signs in. Then each new mailbox is
made with a new password, returned once in passwords; forwarders to
mailboxes here become aliases; and an import starts into each mailbox
from the old server. With reset_passwords, an old mailbox given no
password gets a new one on the old server, so mail apps signed in
there stop working. Answers 422 with migration_invalid,
plan_full, plan_storage, imap_unreachable or source_refused
and changes nothing, and 429 after 10 migrations or syncs in a day.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
tenant_id |
path | integer | yes |
Request body
Section titled Request bodyapplication/json (required)
| Field | Type | Required | Description |
|---|---|---|---|
host |
string | yes | The cPanel host, such as example.com, example.com:2083 or the server name the host gave you |
username |
string | yes | The cPanel username, the one cPanel shows as its current user |
token |
string or null | no | An API token made in cPanel under Security, Manage API Tokens. Needed for an account with two-factor sign-in |
password |
string or null | no | The cPanel account's password, when there is no token |
mailboxes |
array of CpanelMailboxChoice or null | no | The old mailboxes to move. Leave it out to move every one that can |
mailboxes[].address |
string | yes | The old mailbox's address, as discovery listed it |
mailboxes[].import |
boolean | no | Whether to bring its mail. False makes the mailbox here and leaves its mail behind |
mailboxes[].password |
string or null | no | The old mailbox's current password, to read it without changing anything on the old server |
mailboxes[].quota_bytes |
integer or null | no | The new mailbox's quota. Defaults to the size discovery suggested |
reset_passwords |
boolean | no | Whether we may set a new password on each old mailbox that has no password here, to read its mail |
forwarders |
boolean | no | Whether to make an alias for each forwarder that sends only to mailboxes on this service |
catch_all |
boolean | no | Whether to make a catch-all for a domain whose default address is one of the mailboxes |
trash |
boolean | no | Whether to bring the old Trash folders |
spam |
boolean | no | Whether to bring the old Spam folders |
Responses
Section titled Responses| Status | Meaning |
|---|---|
201 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Find what a cPanel account holds and what moving it here would do
Section titled Find what a cPanel account holds and what moving it here would doPOST /api/v1/client/platform-mail/{tenant_id}/migrations/cpanel/discover
Find what a cPanel account holds and what moving it here would do.
Signs in to the account's cPanel API and changes nothing: each email
account, with how much it holds and whether it becomes a new mailbox,
goes into one already here, or cannot move yet and why; each forwarder
and whether it becomes an alias; each domain's default address; the
autoresponders; and whether the plan has room. Sign in with an API
token, or with the cPanel password when the account has no two-factor
sign-in. Answers 422 with cpanel_refused, cpanel_unreachable or
cpanel_empty when the account cannot be read, and 429 after 30
tries in an hour.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
tenant_id |
path | integer | yes |
Request body
Section titled Request bodyapplication/json (required)
| Field | Type | Required | Description |
|---|---|---|---|
host |
string | yes | The cPanel host, such as example.com, example.com:2083 or the server name the host gave you |
username |
string | yes | The cPanel username, the one cPanel shows as its current user |
token |
string or null | no | An API token made in cPanel under Security, Manage API Tokens. Needed for an account with two-factor sign-in |
password |
string or null | no | The cPanel account's password, when there is no token |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Get one migration and how far each of its mailboxes has got
Section titled Get one migration and how far each of its mailboxes has gotGET /api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}
Get one migration and how far each of its mailboxes has got.
Where its mail came from, each mailbox with its latest import, the aliases made and what did not move, and whether it still keeps the old mailboxes' passwords for another pass.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
migration_id |
path | integer | yes |
tenant_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Finish a migration and forget the old mailboxes' passwords
Section titled Finish a migration and forget the old mailboxes' passwordsPOST /api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}/finish
Finish a migration and forget the old mailboxes' passwords.
The migration keeps them for another pass until then. Imports under way go on to the end. We forget them 30 days after the migration started in any case.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
migration_id |
path | integer | yes |
tenant_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Bring in what reached the old mailboxes since the migration started
Section titled Bring in what reached the old mailboxes since the migration startedPOST /api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}/sync
Bring in what reached the old mailboxes since the migration started.
Run it once the domain's MX records point here. A paused import goes
on, one under way is left alone, and any other starts again from the
kept password. Messages already brought are not brought twice.
Answers 409 migration_finished once the passwords are forgotten.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
migration_id |
path | integer | yes |
tenant_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |