hosting

POST /v1/site-imports

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

כל נקודות הקצה מסוג hosting

אימות

שלחו מפתח API כאסימון נושא (bearer token). על המפתח לכלול את הרשאה hosting.import.manage; מפתח שאינו כולל אותה יידחה בסטטוס 403, ולא 404.

נקודת קצה זו אינה דורשת מזהה ארגון. המפתח שלך כבר מזהה את הארגון שאליו הוא שייך, והתגובה מוגבלת אליו בלבד.

נסה זאת

החלף כל דבר בסוגריים זוויתיים בערכים משלך, ואת מציין מיקום המפתח במפתח מלוח הבקרה שלך.

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

מחובר? קונסולת ה-API בלוח הבקרה שלך מזינה את מזהה הארגון האמיתי שלך ואת המפתח שלך, ומריצה את הבקשה מול ה-API הפיזי כך שתוכל לראות את התגובה בפועל. פתח נקודת קצה זו במסוף ה-API

פרטים

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

פרמטרים

שםסוגנדרשמה זה
Idempotency-Key (header)stringלאClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

גוף הבקשה

שםסוגנדרשמה זה
sourceSiteImportSourceכןWhere 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…
outputSiteImportOutputכןWhat the import produces. Both are supported; neither is a default.
source_domainstringכןThe domain whose archive to restore, or — for `archive_url` — the URL of the archive to migrate in.
target_domainstringלאThe domain the result is served on. Defaults to `source_domain`.
site_idUuidלאRestore into an existing site. Omit to produce a bundle and choose the target later.
snapshot_daystringלאWhich 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_depthintegerלא
request_budgetintegerלאThe 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_attestedbooleanלא⚠️ 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.

תשובה

שםסוגנדרשמה זה
idUuidכןUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idstringלאThe 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.
sourceSiteImportSourceכןWhere 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…
outputSiteImportOutputכןWhat the import produces. Both are supported; neither is a default.
statusSiteImportStatusכן`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_reasonstringלאA 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_domainstringכן
target_domainstringלא
snapshot_daystringלא
crawl_depthintegerלא
urls_totalintegerכן
urls_doneintegerכן
urls_failedintegerכן
progress_percentintegerכןFor a progress bar only. The per-URL counters are the primary display, because a percentage cannot say *which* step.
requests_spentintegerכן
request_budgetintegerכן
budget_exhaustedbooleanכןTrue 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_bytesintegerלא
created_atstringכן
started_atstringלא
finished_atstringלא
can_cancelbooleanכן

שגיאות שנקודה קצה זו עשויה להחזיר

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