hosting
POST /v1/bulk-jobs
Run one operation across many sites.
Autentizace
Zašlete API klíč jako nosný token (bearer token). Klíč musí mít oprávnění sites.view; klíč bez něj je odmítnut s kódem 403, nikoli 404.
Tento koncový bod nevyžaduje žádné ID organizace. Váš klíč již identifikuje organizaci, ke které patří, a odpověď je na ni omezena.
Vyzvednout
Nahraďte cokoli v závorkách vlastními hodnotami a zástupný symbol klíče klíčem z vašeho řídicího panelu.
curl -X POST https://api.zinndigital.com/v1/bulk-jobs \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "operation": <BulkOperation>, "selector": <BulkSelector> }'Přihlášeni? Konzole API ve vašem dashboardu automaticky doplní vaše skutečné ID organizace i váš vlastní klíč a odešle požadavek na živé API, abyste viděli reálnou odpověď. Otevřete tento koncový bod v konzoli API
Podrobnosti
Freezes the selection into a per-site work-list and starts a durable, idempotent workflow. The submit is instant and the work is not — this returns 202 as soon as the rows are written, and nothing a person is watching waits on the job itself. Only eligible sites are enrolled; ineligible ones are not written as pre-failed rows, because a report padded with rows that never had a chance makes the failures that matter harder to find. previewBulkJob is where you see them. A selection that enrolls nothing is a 422, not a job that completes instantly: "completed, 0 of 0" is indistinguishable from success on every screen that renders it. ⛔ A typed confirm phrase is required when the selector is wider than an explicit list (product_line, org) or the operation is weighty (plugin_remove, plugin_deactivate, blueprint_apply) at any size. previewBulkJob returns the exact phrase in confirmation_phrase. ⛔ All the selected sites must belong to one organization. A mixed selection is a 422 naming the problem rather than a job whose owner is a guess. Requires sites.view plus the operation's own key (see the tag description).
Parametry
| Název | Typ | Požadováno | Co to je |
|---|---|---|---|
Idempotency-Key (header) | string | Ne | Client-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats. |
Tělo požadavku
| Název | Typ | Požadováno | Co to je |
|---|---|---|---|
operation | BulkOperation | Ano | What a bulk job does to each of its sites. ⛔ One job model with an operation discriminator, not eight job models. A selection, a frozen work-list, a durable pass and a per-site… |
selector | BulkSelector | Ano | Which sites a job targets. ⛔ There is no all. A job belongs to exactly one organization and all would span every tenant on the platform; the fleet-wide act is a staff… |
selector_value | string | Ne | The selector's argument — a product-line code for product_line, an organization id for org, a site-group id for group. Ignored for sites, whose members are site_ids. |
site_ids | Uuid[] | Ne | The explicit selection, for selector: sites. Every id is fenced to the organizations you can reach, so one belonging to somebody else resolves to nothing rather than to a… |
params | BulkJobParams | Ne | The operation's arguments. Which keys are read depends on operation: plugin_install takes slugs + activate; plugin_activate, plugin_deactivate and plugin_remove take… |
confirm | string | Ne | The typed confirmation phrase, required when previewBulkJob answers confirmation_required: true. Send exactly the value it returned in confirmation_phrase. ⛔ Whether it is… |
note | string | Ne | Free text kept with the job, for whoever reads the report later. |
Odpověď
| Název | Typ | Požadováno | Co to je |
|---|---|---|---|
id | Uuid | Ano | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
org_id | Uuid | Ano | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
operation | BulkOperation | Ano | What a bulk job does to each of its sites. ⛔ One job model with an operation discriminator, not eight job models. A selection, a frozen work-list, a durable pass and a per-site… |
params | BulkJobParams | Ano | The operation's arguments. Which keys are read depends on operation: plugin_install takes slugs + activate; plugin_activate, plugin_deactivate and plugin_remove take… |
selector | BulkSelector | Ano | Which sites a job targets. ⛔ There is no all. A job belongs to exactly one organization and all would span every tenant on the platform; the fleet-wide act is a staff… |
selector_value | string | Ano | — |
status | BulkJobStatus | Ano | ⛔ partial is a real outcome, not a rounding of the other two. A job where 4 of 900 sites failed is neither a success nor a failure, and reporting it as either is how a bulk… |
requested_by | string | Ano | Who asked for it. |
note | string | Ano | — |
created_at | string | Ano | — |
updated_at | string | Ano | — |
settled_at | object | Ano | When the job finished; null while it is still running. |
counts | BulkJobCounts | Ano | — |
progress | BulkJobProgress | Ano | How far along a job is, how fast it is going and how much longer it has. ⛔⛔ Every estimate here is nullable, and a null must never be rendered as 0. rate_per_minute: 0… |
Chyby, které může tento koncový bod vrátit
401 · 403 · 409 · 422 · 429