hosting

POST /v1/site-imports

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

Bütün hosting nöqtələri

Doğrulama

API açarını bearer token kimi göndərin. Açar hosting.import.manage icazəsinə malik olmalıdır; bu icazəsi olmayan açar 404 deyil, 403 xətası ilə rədd edilir.

Bu endpoint heç bir təşkilat ID-si tələb etmir. Sizin açarınız artıq aid olduğu təşkilatı müəyyən edir və cavab həmin təşkilat üçün məhdudlaşdırılır.

Sınaqdan keçir

Bucaqlı mötərizələrdə olan hór şeyi öz qiymətlərinizlə, açar yertutucusunu isə idarə panelinizdən bir açarla əvəz edin.

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

Sistemə daxil olmusunuz? İdarə panelinizdəki API konsolu real təşkilatınızın identifikatorunu və öz açarınızı avtomatik doldurur, sorğunu canlı API-yə qarşı icra edir ki, siz faktiki cavabı görə biləsiniz. Bu son nöqtəni API konsolunda açın

Təfərrüatlar

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

Parametrlər

AdTipTələb olunurNədir
Idempotency-Key (header)stringXeyrClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

Sorğu gövdəsi

AdTipTələb olunurNədir
sourceSiteImportSourceBəliWhere 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…
outputSiteImportOutputBəliWhat the import produces. Both are supported; neither is a default.
source_domainstringBəliThe domain whose archive to restore, or — for `archive_url` — the URL of the archive to migrate in.
target_domainstringXeyrThe domain the result is served on. Defaults to `source_domain`.
site_idUuidXeyrRestore into an existing site. Omit to produce a bundle and choose the target later.
snapshot_daystringXeyrWhich 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_depthintegerXeyr
request_budgetintegerXeyrThe 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_attestedbooleanXeyr⚠️ 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.

Cavab

AdTipTələb olunurNədir
idUuidBəliUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idstringXeyrThe 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.
sourceSiteImportSourceBəliWhere 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…
outputSiteImportOutputBəliWhat the import produces. Both are supported; neither is a default.
statusSiteImportStatusBəli`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_reasonstringXeyrA 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_domainstringBəli
target_domainstringXeyr
snapshot_daystringXeyr
crawl_depthintegerXeyr
urls_totalintegerBəli
urls_doneintegerBəli
urls_failedintegerBəli
progress_percentintegerBəliFor a progress bar only. The per-URL counters are the primary display, because a percentage cannot say *which* step.
requests_spentintegerBəli
request_budgetintegerBəli
budget_exhaustedbooleanBəliTrue 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_bytesintegerXeyr
created_atstringBəli
started_atstringXeyr
finished_atstringXeyr
can_cancelbooleanBəli

Bu son nöqtənin qaytara biləcəyi xətalar

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