hosting

POST /v1/site-imports

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

Tüm hosting uç noktaları

Kimlik Doğrulama

Bearer token olarak bir API anahtarı gönderin. Anahtar hosting.import.manage iznine sahip olmalıdır; bu izne sahip olmayan bir anahtar 404 ile değil, 403 ile reddedilir.

Bu uç nokta hiçbir organizasyon kimliği almaz. Anahtarınız zaten ait olduğu organizasyonu tanımlar ve yanıt bu organizasyonla sınırlandırılır.

Dene

Köşeli parantez içindeki her şeyi kendi değerlerinizle ve anahtar yer tutucusunu panonuzdan bir anahtarla değiştirin.

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

Oturum açtınız mı? Panonuzdaki API konsolu, gerçek organizasyon kimliğinizi ve kendi anahtarınızı otomatik olarak doldurur ve isteği canlı API üzerinde çalıştırarak gerçek yanıtı görmenizi sağlar. Bu uç noktayı API konsolunda açın

Ayrıntılar

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

Parametreler

AdTürZorunluNe olduğu
Idempotency-Key (header)stringHayırClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

İstek gövdesi

AdTürZorunluNe olduğu
sourceSiteImportSourceEvetWhere 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…
outputSiteImportOutputEvetWhat the import produces. Both are supported; neither is a default.
source_domainstringEvetThe domain whose archive to restore, or — for `archive_url` — the URL of the archive to migrate in.
target_domainstringHayırThe domain the result is served on. Defaults to `source_domain`.
site_idUuidHayırRestore into an existing site. Omit to produce a bundle and choose the target later.
snapshot_daystringHayırWhich 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_depthintegerHayır
request_budgetintegerHayırThe 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_attestedbooleanHayır⚠️ 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.

Yanıt

AdTürZorunluNe olduğu
idUuidEvetUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idstringHayırThe 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.
sourceSiteImportSourceEvetWhere 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…
outputSiteImportOutputEvetWhat the import produces. Both are supported; neither is a default.
statusSiteImportStatusEvet`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_reasonstringHayırA 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_domainstringEvet
target_domainstringHayır
snapshot_daystringHayır
crawl_depthintegerHayır
urls_totalintegerEvet
urls_doneintegerEvet
urls_failedintegerEvet
progress_percentintegerEvetFor a progress bar only. The per-URL counters are the primary display, because a percentage cannot say *which* step.
requests_spentintegerEvet
request_budgetintegerEvet
budget_exhaustedbooleanEvetTrue 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_bytesintegerHayır
created_atstringEvet
started_atstringHayır
finished_atstringHayır
can_cancelbooleanEvet

Bu uç noktanın dönderebileceği hatalar

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