hosting
GET /v1/sites/export
Download the sites in scope as a CSV.
Аутентификација
Пошаљите API кључ као bearer токен. Ова крајња тачка не наводи конкретну дозволу у спецификацији, па свом кључу доделите најмања неопходна овлашћења и проверите одговор уместо да претпостављате.
Где се уноси ID ваше организације
Ова крајња тачка прихвата org_id као параметар упита. Изоставите га и позив ће обухватити цело подстабло вашег закупа; пошаљите га да бисте сузили позив на једну организацију.
Идентификатор ваше организације се налази на екрану са API кључевима на вашој контролној табли, поред самог кључа. То је исти идентификатор у сваком позиву који упутите.
Испробајте
Замените све што је у угластим заградама сопственим вредностима, а чувар места кључа кључем са своје контролне табле.
curl -X GET https://api.zinndigital.com/v1/sites/export \
-H "Authorization: Bearer zdk_live_…"Пријављени сте? API конзола на вашој контролној табли попуњава ваш прави id организације и ваш сопствени кључ, и покреће захтев према живом API-ју како бисте могли да видите стварни одговор. Отворите ову крајњу тачку у API конзоли
Детаљи
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.
Параметри
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
org_id (query) | Uuid | Не | Restrict to one organization in the caller's scope. |
status (query) | SiteStatus | Не | Filter by site lifecycle status. |
product_line (query) | string | Не | Filter by product line code. |
group (query) | string | Не | Restrict to the sites in one site group. |
search (query) | string | Не | Case-insensitive substring match on the primary domain or the name, applied in the database across the whole collection in scope. |
Грешке које ова крајња тачка може вратити
401 · 403