hosting

POST /v1/site-imports

Restore a site from a web archive, or migrate one in.

Toate punctele finale hosting

Autentificare

Trimiteți o cheie API ca token de tip bearer. Cheia trebuie să aibă permisiunea hosting.import.manage; o cheie care nu o are va fi respinsă cu 403, nu 404.

Acest endpoint nu necesită un ID de organizație. Cheia ta identifică deja organizația căreia îi aparține, iar răspunsul este limitat la aceasta.

Încearcă

Înlocuiți tot ce se află între paranteze unghiulare cu propriile valori și substituentul cheie cu o cheie din tabloul de bord.

curl -X POST https://api.zinndigital.com/v1/site-imports \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "source": <SiteImportSource>, "output": <SiteImportOutput>, "source_domain": <string> }'

Autentificat? Consola API din panoul de control îți completează ID-ul real al organizației și propria cheie și rulează cererea în API-ul live, astfel încât să poți vedea răspunsul efectiv. Deschideți acest punct final în consola API

Detalii

Starts a durable, resumable import workflow and returns the new job state, never a bare acknowledgement. A Wayback restore **must** name `snapshot_day`: the most recent capture of an expired domain is usually a parking page, so there is no safe default (422 without it). The output is either a static HTML document root or a WordPress import — both are supported and neither is a default. A site with an import already running returns 409. ⚠️ `ownership_attested` is recorded, not enforced: the platform's obligation here is to know who requested what. Requires `hosting.import.manage`.

Parametri

NumeTipObligatoriuCe este
Idempotency-Key (header)stringNuClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

Corp cerere

NumeTipObligatoriuCe este
sourceSiteImportSourceDaWhere the content comes from. ⛔ Deliberately not the same enum as a site's `source`: that one records what a site was built from, for ever, while this selects a fetch strategy a…
outputSiteImportOutputDaWhat the import produces. Both are supported; neither is a default.
source_domainstringDaThe domain whose archive to restore, or — for `archive_url` — the URL of the archive to migrate in.
target_domainstringNuThe domain the result is served on. Defaults to `source_domain`.
site_idUuidNuRestore into an existing site. Omit to produce a bundle and choose the target later.
snapshot_daystringNuWhich day's snapshot to restore. **Required for `wayback`** — the most recent capture of an expired domain is usually a parking page, so there is no safe default.
crawl_depthintegerNu
request_budgetintegerNuThe hard ceiling on requests this job may make against the source. Bounded per job so one 400,000-capture domain cannot consume the platform's whole archive allowance.
ownership_attestedbooleanNu⚠️ The customer's assertion that they control the domain, recorded because it cannot be reconstructed afterwards. It is **not** a legal control and is not presented as one.

Răspuns

NumeTipObligatoriuCe este
idUuidDaUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idstringNuThe site this import lands on, or empty. Empty is a real outcome, not an error: an aged-domain restore produces a downloadable bundle and the customer picks the target afterwards.
sourceSiteImportSourceDaWhere the content comes from. ⛔ Deliberately not the same enum as a site's `source`: that one records what a site was built from, for ever, while this selects a fetch strategy a…
outputSiteImportOutputDaWhat the import produces. Both are supported; neither is a default.
statusSiteImportStatusDa`fetching` and `building` are separate states rather than one `running` because they fail for opposite reasons and the customer's next action differs — a stall in `fetching` is…
status_reasonstringNuA machine code the dashboard renders through its own catalogue — never an English sentence composed by the engine, which could not be shown to the other 57 locales.
source_domainstringDa
target_domainstringNu
snapshot_daystringNu
crawl_depthintegerNu
urls_totalintegerDa
urls_doneintegerDa
urls_failedintegerDa
progress_percentintegerDaFor a progress bar only. The per-URL counters are the primary display, because a percentage cannot say *which* step.
requests_spentintegerDa
request_budgetintegerDa
budget_exhaustedbooleanDaTrue when the job stopped because it ran out of requests. Surfaced deliberately — it otherwise looks identical to a job that finished, and the customer's next action depends on…
bundle_bytesintegerNu
created_atstringDa
started_atstringNu
finished_atstringNu
can_cancelbooleanDa

Erori pe care le poate returna acest punct final

401 · 403 · 404 · 409 · 422 · 429 · 503