hosting
POST /v1/migrations/probe
Sign in to the old host and show what is there, with no site yet.
Doğrulama
API açarını bearer token kimi göndərin. Açar hosting.import.manage icazəsinə malik olmalıdır; bu icazəsi olmayan açar 404 deyil, 403 xətası ilə rədd edilir.
Bu endpoint heç bir təşkilat ID-si tələb etmir. Sizin açarınız artıq aid olduğu təşkilatı müəyyən edir və cavab həmin təşkilat üçün məhdudlaşdırılır.
Sınaqdan keçir
Bucaqlı mötərizələrdə olan hór şeyi öz qiymətlərinizlə, açar yertutucusunu isə idarə panelinizdən bir açarla əvəz edin.
curl -X POST https://api.zinndigital.com/v1/migrations/probe \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "source": <MigrationSource>, "host": <string>, "username": <string> }'Sistemə daxil olmusunuz? İdarə panelinizdəki API konsolu real təşkilatınızın identifikatorunu və öz açarınızı avtomatik doldurur, sorğunu canlı API-yə qarşı icra edir ki, siz faktiki cavabı görə biləsiniz. Bu son nöqtəni API konsolunda açın
Təfərrüatlar
The org-scoped twin of POST /v1/sites/{siteId}/migrations/probe, for the site-less /migrations/new form: authenticates against the source and enumerates it without creating a site or a job, and returns the same inventory. It exists because mail cannot move without a password per mailbox, no panel can read one out, and the customer can only be asked for the mailboxes the source actually holds once somebody has looked. mailboxes_without_passwords lists them; when a source cannot list mailboxes at all (Plesk to a subscription login) unavailable carries site_migration:mailboxes: mailbox_passwords_required, meaning name each mailbox with its password, not mail cannot move. ⛔ POST although it creates nothing: the body carries a live credential for somebody else's server. Name the organisation with X-Zinn-Org when you belong to more than one. Requires hosting.import.manage.
Sorğu gövdəsi
| Ad | Tip | Tələb olunur | Nədir |
|---|---|---|---|
source | MigrationSource | Bəli | The kind of hosting the site is being pulled from. ⛔ plesk is offered so the refusal can be specific and actionable, not because it is supported: pleskbackup is reachable… |
host | string | Bəli | The server's public hostname, e.g. server123.yourhost.com. Must resolve to a public address — a private or link-local target is refused with source_host_not_public at the door… |
username | string | Bəli | The login for the source panel or account. |
port | integer | Xeyr | 0 means the source driver's default for that panel. |
password | string | Xeyr | — |
private_key | string | Xeyr | An SSH private key in PEM form, for an ssh source. |
api_token | string | Xeyr | — |
include_mail | boolean | Xeyr | ⚖️ Defaults to true, and a source that cannot deliver mailboxes is refused rather than silently migrated without them — a migration that moves a website and loses the mail is… |
mailbox_passwords | object | Xeyr | address -> password, for every mailbox being moved. Required up front rather than discovered mid-sync: most panels will not hand over a mailbox without its own password, and… |
Cavab
| Ad | Tip | Tələb olunur | Nədir |
|---|---|---|---|
domains | string[] | Bəli | — |
files | integer | Bəli | How many files were found. A count, not the list — a 5,000-file estate is not a form field, and the per-item rows are written by the job. |
databases | MigrationSourceDatabase[] | Bəli | — |
mailboxes | MigrationSourceMailbox[] | Bəli | — |
total_bytes | integer | Bəli | — |
truncated | boolean | Bəli | True when the source stopped short of a complete listing. Reported, never swallowed. |
unavailable | object | Bəli | ⭐ The most important field here: capability -> machine code, naming what we could not look at. An empty object means "we looked and there is nothing else", which is a… |
mailboxes_without_passwords | string[] | Bəli | The addresses no usable password was supplied for. The form points at exactly these rows; a create with any of them present is refused with mailbox_passwords_required. |
Bu son nöqtənin qaytara biləcəyi xətalar
401 · 403 · 422 · 429