hosting

POST /v1/site-imports

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

Semua titik akhir hosting

Pengesahan

Hantar kunci API sebagai token pembawa. Kunci tersebut mesti membawa kebenaran hosting.import.manage; kunci yang tidak mempunyainya akan ditolak dengan 403, bukan 404.

Titik akhir ini tidak memerlukan id organisasi. Kunci anda telah mengenal pasti organisasi kepunyaannya, dan respons dis skopkan kepadanya.

Cuba

Gantikan apa sahaja di dalam kurungan sudut dengan nilai anda sendiri, dan pemegang tempat kunci dengan kunci dari papan pemuka anda.

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> }'

Sudah log masuk? Konsol API dalam papan pemuka anda mengisi id organisasi sebenar dan kunci anda sendiri, serta menjalankan permintaan terhadap API langsung supaya anda boleh melihat respons sebenar. Buka penamat ini dalam konsol API

Butiran

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`.

Parameter

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

Badan permintaan

NamaJenisDiperlukanApakah ia
sourceSiteImportSourceYaWhere 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…
outputSiteImportOutputYaWhat the import produces. Both are supported; neither is a default.
source_domainstringYaThe domain whose archive to restore, or — for `archive_url` — the URL of the archive to migrate in.
target_domainstringTidakThe domain the result is served on. Defaults to `source_domain`.
site_idUuidTidakRestore into an existing site. Omit to produce a bundle and choose the target later.
snapshot_daystringTidakWhich 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_depthintegerTidak
request_budgetintegerTidakThe 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_attestedbooleanTidak⚠️ 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.

Respons

NamaJenisDiperlukanApakah ia
idUuidYaUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idstringTidakThe 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.
sourceSiteImportSourceYaWhere 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…
outputSiteImportOutputYaWhat the import produces. Both are supported; neither is a default.
statusSiteImportStatusYa`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_reasonstringTidakA 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_domainstringYa
target_domainstringTidak
snapshot_daystringTidak
crawl_depthintegerTidak
urls_totalintegerYa
urls_doneintegerYa
urls_failedintegerYa
progress_percentintegerYaFor a progress bar only. The per-URL counters are the primary display, because a percentage cannot say *which* step.
requests_spentintegerYa
request_budgetintegerYa
budget_exhaustedbooleanYaTrue 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_bytesintegerTidak
created_atstringYa
started_atstringTidak
finished_atstringTidak
can_cancelbooleanYa

Ralat yang boleh dikembalikan oleh titik akhir ini

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