hosting

POST /v1/site-imports

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

Ҳамаи нуқтаҳои ниҳоии hosting

Санҷиши ҳаққоният

Kaliti API-ро ҳамчун рамзи доранда (bearer token) фиристед. Калит бояд дорои иҷозати hosting.import.manage бошад; калиди бидуни он бо хатои 403 рад карда мешавад, на 404.

Ин нуқтаи поёнӣ ягон рақами мушаххаси созмонро талаб намекунад. Калиди шумо аллакай созмонеро, ки ба он тааллуқ дорад, муайян мекунад ва ҷавоб ба он маҳдуд карда мешавад.

Санҷидан

Ҳар чизро дар қаavски кунҷӣ бо қиматҳои худ ва ҷойи нигоҳдорандаи калидро бо калима аз панели идоракунии худ иваз кунед.

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

Воarid шудаед? Консоли 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