Autenticazione
Invia una chiave API come bearer token. Questo endpoint non specifica un permesso specifico nella specifica, quindi assegna alla tua chiave i permessi minimi necessari e verifica la risposta invece di fare supposizioni.
L'ID della tua organizzazione va qui
Questo endpoint accetta org_id come parametro di query. Omettilo e la chiamata coprirà l'intero sottoalbero del tuo tenant; invialo per limitare la chiamata a una singola organizzazione.
L'identificativo della tua organizzazione si trova nella schermata delle chiavi API nella tua dashboard, accanto alla chiave stessa. È lo stesso identificativo in ogni chiamata che effettui.
Provalo
Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.
curl -X GET https://api.zinndigital.com/v1/sites/export \
-H "Authorization: Bearer zdk_live_…"Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API
Dettagli
The same sites `listSites` would return for the same query, as a streamed `text/csv` attachment — V1 parity (`deploy.views.SiteExport`, "Choose sites → Export to CSV"), recorded as unported in `docs/35` §0.3c until W29-U. ⛔⛔ **Server-side over the WHOLE matching set, and that is the point of it existing as an endpoint at all.** `listSites` is cursor-paginated, so a CSV assembled in the browser would contain one page and would look exactly like a complete file — no error, no truncation marker, and nothing a customer could use to tell the difference. There is deliberately **no `limit`**: a bound here would silently exclude rows and nothing downstream would ever pick up the remainder. ⛔ It shares the list's filter chain rather than reproducing it, so "export" means "export what I am looking at" by construction. Every filter below behaves exactly as it does on `listSites`, including narrowing to nothing — rather than 403-ing — for an `org_id` outside the caller's scope. ⛔⛔ **It requires `Authorization`, so it cannot be fetched with a plain `<a href>`.** A browser anchor navigation sends no bearer token and the engine has no cookie authentication to fall back on, so an anchor answers **401** and the customer sees nothing happen. Download it with an authenticated `fetch` and hand the result to the browser as a blob. This is not hypothetical: the estate shipped three staff download buttons built as anchors and every one of them was dead (`docs/72` D14200). The header row is English and is **not** localized: the consumer is a spreadsheet or a script, and a header that changed with the viewer's locale would make one customer's file unreadable by another's tooling. Column order is part of the contract — new columns are appended, never inserted.
Parametri
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
org_id (query) | Uuid | No | Restrict to one organization in the caller's scope. |
status (query) | SiteStatus | No | Filter by site lifecycle status. |
product_line (query) | string | No | Filter by product line code. |
group (query) | string | No | Restrict to the sites in one site group. |
search (query) | string | No | Case-insensitive substring match on the primary domain or the name, applied in the database across the whole collection in scope. |
Errori che questo endpoint può restituire
401 · 403