Аутентификация

Передайте API-ключ в качестве маркера носителя (bearer token). Эта конечная точка не указывает конкретное разрешение в спецификации, поэтому предоставьте своему ключу минимум необходимых прав и проверьте ответ, вместо того чтобы делать предположения.

Идентификатор вашей организации

Этот эндпоинт принимает org_id в качестве параметра запроса. Оставьте его пустым, и вызов охватит все поддерево вашей аренды; передайте его, чтобы сузить область вызова до одной организации.

Идентификатор вашей организации находится на экране ключей API в вашей панели управления, рядом с самим ключом. Это один и тот же идентификатор для каждого вашего запроса.

Попробовать

Замените всё в угловых скобках на собственные значения, а плейсхолдер ключа — на ключ из вашей панели управления.

curl -X GET https://api.zinndigital.com/v1/sites/export \
  -H "Authorization: Bearer zdk_live_…"

Вошли в систему? Консоль API в вашей панели управления автоматически подставляет реальный идентификатор вашей организации и ваш собственный ключ, а также выполняет запрос к работающему 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