◆ Sapport для разработчиков Справочник API Каталог ошибок OpenAPI
Разделы

Схемы данных

Объекты запросов и ответов. Типы в таблицах методов ведут сюда.

#Money

Денежная сумма.

ПолеТипОписание
amountstring
обязательное
Сумма СТРОКОЙ (не число с плавающей точкой), например "123.45".
currencystring
обязательное
Код валюты ISO 4217: RUB (RU), GBP (EN), IDR (ID).

#FieldError

Ошибка проверки одного поля.

ПолеТипОписание
fieldstring
обязательное
Путь к полю запроса в формате JSON Pointer (RFC 6901): "/limit", "/events/0".
codestring
обязательное
Машинный код причины: out_of_range, required, invalid_format…
messagestring
обязательное
Пояснение для человека.

#Problem

Ошибка в формате application/problem+json (RFC 9457).

ПолеТипОписание
typestring
обязательное
Ссылка на описание кода: https://<домен ячейки>/developers/errors#<code>.
titlestring
обязательное
Краткое название, одинаковое для кода.
statusinteger
обязательное
HTTP-статус.
codestring
обязательное
Стабильный машинный код. Ветвите логику по нему, а не по тексту.
Значения: invalid_api_key wrong_cell integration_inactive tenant_inactive scope_missing ip_not_allowed feature_not_in_plan pii_transfer_not_allowed not_found method_not_allowed bad_request idempotency_key_required idempotency_conflict operation_in_progress invalid_state precondition_failed precondition_required payload_too_large validation_failed rate_limited spend_limit_reached insufficient_funds wallet_suspended internal_error service_unavailable upstream_unavailable
detailstring
обязательное
Пояснение к конкретному случаю. Не разбирайте этот текст.
request_idstring
обязательное
Идентификатор запроса (совпадает с заголовком X-Request-Id). Указывайте при обращении в поддержку.
errorsarray<FieldError>
необязательное
Ошибки по полям (только validation_failed).
correct_base_urlstring
необязательное
Только wrong_cell: базовый адрес ячейки, где выпущен ключ.
topup_urlstring
необязательное
Только wallet_suspended: адрес кабинета, где пополняется кошелёк.
balanceMoney
необязательное, может быть null
Только wallet_suspended: остаток кошелька на момент отказа.

#Usage

Стоимость платной операции.

ПолеТипОписание
costMoney
обязательное
modelstring
обязательное
Модель, выполнившая операцию.

#Operation

Асинхронная операция (единый конверт для всех модулей).

ПолеТипОписание
idstring
обязательное
Идентификатор операции.
typestring
обязательное
Вид операции, например "article.generation".
statusstring
обязательное
Состояние операции.
Значения: queued running succeeded failed canceled
created_atstring
обязательное
Время создания, ISO 8601 UTC.
completed_atstring
необязательное
Время завершения; только для succeeded, failed, canceled.
resourceobject
необязательное
Ресурс, к которому относится операция; по нему читают результат.
resource.typestring
обязательное
resource.idstring
обязательное
errorobject
необязательное
Только для failed: код из каталога ошибок или код причины операции.
error.codestring
обязательное
error.messagestring
обязательное
usageUsage
необязательное
Только для платных операций.

#OperationEnvelope

Ответ 202 на создающий запрос.

ПолеТипОписание
operationOperation
обязательное

#Me

Кто вы: арендатор, интеграция, ключ, пределы, кошелёк.

ПолеТипОписание
tenantobject
обязательное
Арендатор — владелец ключа.
tenant.idstring
обязательное
tenant.namestring
обязательное
cellstring
обязательное
Ячейка платформы: ru, en или id.
Значения: ru en id
base_urlstring
обязательное
Базовый адрес API этой ячейки.
integrationobject
обязательное
Интеграция (служебная учётная запись), которой принадлежит ключ.
integration.idstring
обязательное
integration.namestring
обязательное
channel_idstring
обязательное, может быть null
Канал "api" интеграции; null — канал ещё не создан.
keyobject
обязательное
key.key_idstring
обязательное
Публичный идентификатор ключа (не секрет).
key.modestring
обязательное

Значения: live test
key.scopesarray<string>
обязательное
Действующие области: область интеграции ∩ текущие права владельца ∩ лицензия.
Значения: conversations:read conversations:write ai_seller:invoke leads:read leads:write leads:score analytics:read analytics:write dashboards:read articles:read articles:write articles:generate strategist:read strategist:write strategist:chat webhooks:manage
key.expires_atstring
обязательное
Срок действия ключа, ISO 8601 UTC.
key.ip_allowlistarray<string>
обязательное, может быть null
Разрешённые адреса и сети (CIDR); null — любой адрес.
limitsobject
обязательное
Пределы частоты запросов.
limits.read_per_mininteger
обязательное
limits.write_per_mininteger
обязательное
limits.paid_per_mininteger
обязательное
limits.paid_concurrencyinteger
обязательное
Одновременных платных операций на арендатора.
walletobject
обязательное
Кошелёк арендатора (ИИ-операции).
wallet.balanceMoney
обязательное, может быть null
Остаток кошелька в рублях; null — состояние неизвестно или арендатор не тарифицируется.
wallet.statestring
обязательное
ok — достаточно; low — мало средств; negative — остаток ниже нуля; blocked — кошелёк заблокирован; unknown — состояние получить не удалось. Подробности — GET /wallet.
Значения: ok low negative blocked unknown
wallet.exchangestring
обязательное
suspended при negative и blocked: все маршруты, кроме /me и /wallet, отвечают 402 wallet_suspended.
Значения: active suspended
wallet.topup_urlstring
обязательное
Адрес кабинета, где пополняется кошелёк.
wallet.daily_spendobject
обязательное
wallet.daily_spend.limitMoney
обязательное, может быть null
Суточный предел трат интеграции; null — не задан.
wallet.daily_spend.usedMoney
обязательное
crm_modestring
обязательное
Режим CRM арендатора: "internal" (наша CRM) или внешняя система.

#Webhook

Подписка на события. Секрет в таких ответах не возвращается.

ПолеТипОписание
idstring
обязательное
Идентификатор подписки.
urlstring
обязательное
Адрес приёма: https, порт 443, имя хоста (не IP), без переадресаций.
eventsarray<string>
обязательное
Типы событий: точный тип или шаблон семейства "семейство.*". Доступные типы: conversation.created, message.created, conversation.handoff_requested, conversation.summary_ready, lead.created, lead.updated, lead.scored, lead.status_changed, lead.action_requested, task.created, task.completed, contact.merged, crm.mode_changed, article.ready, article.published, article.generation.failed, strategist.report.ready, strategist.turn.completed, operation.completed, api_key.expiring.
include_piiboolean
обязательное
Полная нагрузка с персональными данными; только для событий lead.*, contact.*, conversation.*. По умолчанию false.
descriptionstring
обязательное, может быть null
Пометка для вас, до 200 знаков.
statusstring
обязательное
active — доставки идут; paused — приостановлена.
Значения: active paused
created_atstring
обязательное
ISO 8601 UTC.
updated_atstring
обязательное
ISO 8601 UTC.
secret_rotated_atstring
обязательное, может быть null
Время последней ротации секрета; null — не менялся.
previous_secret_expires_atstring
обязательное, может быть null
Пока окно ротации открыто (24 часа) — когда прежний секрет перестанет действовать; иначе null.

#WebhookWithSecret

Подписка вместе с секретом: ответ создания и ротации.

ПолеТипОписание
idstring
обязательное
Идентификатор подписки.
urlstring
обязательное
Адрес приёма: https, порт 443, имя хоста (не IP), без переадресаций.
eventsarray<string>
обязательное
Типы событий: точный тип или шаблон семейства "семейство.*". Доступные типы: conversation.created, message.created, conversation.handoff_requested, conversation.summary_ready, lead.created, lead.updated, lead.scored, lead.status_changed, lead.action_requested, task.created, task.completed, contact.merged, crm.mode_changed, article.ready, article.published, article.generation.failed, strategist.report.ready, strategist.turn.completed, operation.completed, api_key.expiring.
include_piiboolean
обязательное
Полная нагрузка с персональными данными; только для событий lead.*, contact.*, conversation.*. По умолчанию false.
descriptionstring
обязательное, может быть null
Пометка для вас, до 200 знаков.
statusstring
обязательное
active — доставки идут; paused — приостановлена.
Значения: active paused
created_atstring
обязательное
ISO 8601 UTC.
updated_atstring
обязательное
ISO 8601 UTC.
secret_rotated_atstring
обязательное, может быть null
Время последней ротации секрета; null — не менялся.
previous_secret_expires_atstring
обязательное, может быть null
Пока окно ротации открыто (24 часа) — когда прежний секрет перестанет действовать; иначе null.
secretstring
обязательное, может быть null
Секрет подписи: показывается ОДИН раз, в ответе создания или ротации. При идемпотентном повторе запроса — null: сохраните секрет из первого ответа.

#WebhookCreate

Тело создания подписки.

ПолеТипОписание
urlstring
обязательное
Адрес приёма: https, порт 443, имя хоста (не IP), без переадресаций.
eventsarray<string>
обязательное
Типы событий: точный тип или шаблон семейства "семейство.*". Доступные типы: conversation.created, message.created, conversation.handoff_requested, conversation.summary_ready, lead.created, lead.updated, lead.scored, lead.status_changed, lead.action_requested, task.created, task.completed, contact.merged, crm.mode_changed, article.ready, article.published, article.generation.failed, strategist.report.ready, strategist.turn.completed, operation.completed, api_key.expiring.
include_piiboolean
необязательное
Полная нагрузка с персональными данными; только для событий lead.*, contact.*, conversation.*. По умолчанию false.
descriptionstring
необязательное, может быть null
Пометка для вас, до 200 знаков.

#WebhookUpdate

Тело правки: передайте хотя бы одно поле.

ПолеТипОписание
urlstring
необязательное
Адрес приёма: https, порт 443, имя хоста (не IP), без переадресаций.
eventsarray<string>
необязательное
Типы событий: точный тип или шаблон семейства "семейство.*". Доступные типы: conversation.created, message.created, conversation.handoff_requested, conversation.summary_ready, lead.created, lead.updated, lead.scored, lead.status_changed, lead.action_requested, task.created, task.completed, contact.merged, crm.mode_changed, article.ready, article.published, article.generation.failed, strategist.report.ready, strategist.turn.completed, operation.completed, api_key.expiring.
include_piiboolean
необязательное
Полная нагрузка с персональными данными; только для событий lead.*, contact.*, conversation.*. По умолчанию false.
descriptionstring
необязательное, может быть null
Пометка для вас, до 200 знаков.
statusstring
необязательное
Приостановить или возобновить доставки.
Значения: active paused

#WebhookPage

Страница списка.

ПолеТипОписание
dataarray<Webhook>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#WebhookTestResult

Ответ 202 на тестовую доставку. Тело события приходит на ваш адрес с livemode: false.

ПолеТипОписание
event_idstring
обязательное, может быть null
Идентификатор тестового события.
typestring
обязательное
statusstring
обязательное
Событие в очереди; уйдёт на ближайшем запуске доставщика (до минуты).

#WebhookDelivery

Запись журнала доставок (хранится 30 суток).

ПолеТипОписание
idstring
обязательное
Идентификатор доставки.
event_idstring
обязательное
Идентификатор события.
statestring
обязательное
pending — ждёт попытки; delivered — доставлено; failed — попытка не удалась, будет повтор; dead — повторы исчерпаны.
Значения: pending delivered failed dead
attemptinteger
обязательное
Номер последней попытки (0 — ещё не было).
status_codeinteger
обязательное, может быть null
HTTP-код ответа подписчика; null, если ответа не было.
duration_msinteger
обязательное, может быть null
Длительность попытки, мс.
errorstring
обязательное, может быть null
Причина сбоя: тайм-аут, ошибка соединения или сертификата, ответ 3xx.
next_attempt_atstring
обязательное, может быть null
Время следующей попытки; null, если попыток больше не будет.
delivered_atstring
обязательное, может быть null
Время успешной доставки.
created_atstring
обязательное

#WebhookDeliveryPage

Страница списка.

ПолеТипОписание
dataarray<WebhookDelivery>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#Wallet

Состояние кошелька арендатора и обмена данными.

ПолеТипОписание
balanceMoney
обязательное, может быть null
Остаток кошелька в рублях (кошелёк ведётся в RUB на любой ячейке); null — состояние неизвестно или арендатор не тарифицируется.
statestring
обязательное
ok — достаточно; low — мало средств (обмен идёт); negative — остаток ниже нуля; blocked — кошелёк заблокирован; unknown — состояние получить не удалось.
Значения: ok low negative blocked unknown
exchangestring
обязательное
suspended при negative и blocked: все маршруты, кроме /me и /wallet, отвечают 402 wallet_suspended, вебхуки откладываются. При unknown остаётся active: бесплатное чтение идёт с заголовком Sapport-Wallet-State: unknown, платные операции закрыты (503).
Значения: active suspended
topup_urlstring
обязательное
Адрес кабинета, где пополняется кошелёк (нужен вход сотрудника с правом пополнения).
daily_spendobject
обязательное, может быть null
Суточные траты интеграции; null, пока расход по интеграции не учитывается.
daily_spend.limitMoney
обязательное, может быть null
Суточный предел трат интеграции; null — не задан.
daily_spend.usedMoney
обязательное

#TimeseriesItem

Один временной ряд.

ПолеТипОписание
metricstring
обязательное

Значения: sessions pageviews visitors bounce_rate impressions clicks ctr position ai_referrals bot_hits leads deals_won revenue
fromstring
обязательное
Дата YYYY-MM-DD.
tostring
обязательное
Дата YYYY-MM-DD.
granularitystring
обязательное

Значения: day week
aggstring
обязательное
Способ свёртки ряда за период.
Значения: sum avg
enginestring
обязательное, может быть null
Поисковик ряда; null у метрик, не привязанных к поиску.
Значения: google yandex bing
availabilitystring
обязательное

Значения: ok no_data no_source
reasonstring
обязательное, может быть null
Код причины, если availability не ok.
seriesarray<object>
обязательное
Ряд значений; дни без данных заполнены нулями. При недельном шаге date — первый день недели.
comparisonobject
обязательное
comparison.currentobject
обязательное, может быть null
comparison.prevobject
обязательное, может быть null
comparison.delta_pctnumber
обязательное, может быть null
Изменение в процентах; null, если сравнить не с чем или база равна нулю.
comparison.data_throughstring
обязательное, может быть null
Последняя дата, по которую данные полны.
summaryobject
обязательное, может быть null
summary.totalobject
обязательное, может быть null
summary.latestobject
обязательное, может быть null
summary.non_zero_daysinteger
обязательное
cluster_appliedboolean
обязательное
data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

#TimeseriesResponse

Один ряд (одна метрика) либо items в порядке запроса (несколько метрик).

ПолеТипОписание
dataobject
обязательное

#TrafficSourceRow

Источник первого визита за период.

ПолеТипОписание
sourcestring
обязательное

Значения: google yandex bing chatgpt perplexity ai_other social ads direct other
kindstring
обязательное

Значения: search ai_assistant social ads direct other
sessionsinteger
обязательное
visitorsinteger
обязательное, может быть null
Уникальные посетители за день, просуммированные по периоду; null, когда посчитать нечем (маячок anonymous).
leadsinteger
обязательное
seriesarray<object>
необязательное
Только при include=series.

#TrafficSourcesResponse

Источники трафика, больше сессий первыми.

ПолеТипОписание
dataarray<TrafficSourceRow>
обязательное
data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

#FunnelStep

Ступень воронки со своей доступностью и своей датой.

ПолеТипОписание
keystring
обязательное

Значения: impressions clicks sessions leads deals_created deals_won revenue
availabilitystring
обязательное

Значения: ok no_data no_source
sourcesarray<string>
обязательное
unitstring
обязательное

Значения: count money
currentobject
обязательное, может быть null
prevobject
обязательное, может быть null
delta_pctnumber
обязательное, может быть null
data_throughstring
обязательное, может быть null

#FunnelResponse

Воронка «показы → клики → сессии → лиды → сделки → выручка».

ПолеТипОписание
dataobject
обязательное
data.enginestring
обязательное

Значения: yandex google both
data.fromstring
обязательное
Дата YYYY-MM-DD.
data.tostring
обязательное
Дата YYYY-MM-DD.
data.stepsarray<FunnelStep>
обязательное
data.by_channelarray<object>
обязательное
data.search_by_enginearray<object>
необязательное
Только engine=both: движки раздельно.
data.by_productarray<object>
обязательное
data.crmobject
обязательное
data.crm.availabilitystring
обязательное

Значения: ok no_data
data.crm.reasonstring
необязательное
data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

#VisibilityResponse

Видимость: пять самостоятельных разделов.

ПолеТипОписание
dataobject
обязательное
data.fromstring
обязательное
Дата YYYY-MM-DD.
data.tostring
обязательное
Дата YYYY-MM-DD.
data.enginestring
обязательное

Значения: yandex google both
data.shareobject
обязательное
data.share.availabilitystring
обязательное
data.share.reasonstring
необязательное
data.share.sourcestring
обязательное
data.share.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.share.dataobject
обязательное
data.distributionobject
обязательное
data.distribution.availabilitystring
обязательное
data.distribution.reasonstring
необязательное
data.distribution.sourcestring
обязательное
data.distribution.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.distribution.dataobject
обязательное
data.sovobject
обязательное
data.sov.availabilitystring
обязательное
data.sov.reasonstring
необязательное
data.sov.sourcestring
обязательное
data.sov.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.sov.dataobject
обязательное
data.aeoobject
обязательное
data.aeo.availabilitystring
обязательное
data.aeo.reasonstring
необязательное
data.aeo.sourcestring
обязательное
data.aeo.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.aeo.dataobject
обязательное
data.regionsobject
обязательное
data.regions.availabilitystring
обязательное
data.regions.reasonstring
необязательное
data.regions.sourcestring
обязательное
data.regions.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.regions.dataobject
обязательное

#OverviewResponse

Срез экрана «Обзор»: запрошенные блоки в порядке экрана.

ПолеТипОписание
dataobject
обязательное
data.fromstring
обязательное
Дата YYYY-MM-DD.
data.tostring
обязательное
Дата YYYY-MM-DD.
data.blocksobject
обязательное
data.blocks.strategistobject
необязательное
data.blocks.strategist.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.strategist.reasonstring
необязательное
data.blocks.strategist.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.kpiobject
необязательное
data.blocks.kpi.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.kpi.reasonstring
необязательное
data.blocks.kpi.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.funnelobject
необязательное
data.blocks.funnel.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.funnel.reasonstring
необязательное
data.blocks.funnel.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.attentionobject
необязательное
data.blocks.attention.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.attention.reasonstring
необязательное
data.blocks.attention.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.adsobject
необязательное
data.blocks.ads.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.ads.reasonstring
необязательное
data.blocks.ads.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.ai_assistantsobject
необязательное
data.blocks.ai_assistants.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.ai_assistants.reasonstring
необязательное
data.blocks.ai_assistants.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.popular_pagesobject
необязательное
data.blocks.popular_pages.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.popular_pages.reasonstring
необязательное
data.blocks.popular_pages.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.clustersobject
необязательное
data.blocks.clusters.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.clusters.reasonstring
необязательное
data.blocks.clusters.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.data_trustobject
необязательное
data.blocks.data_trust.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.data_trust.reasonstring
необязательное
data.blocks.data_trust.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.sitemap_healthobject
необязательное
data.blocks.sitemap_health.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.sitemap_health.reasonstring
необязательное
data.blocks.sitemap_health.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.blocks.statusobject
необязательное
data.blocks.status.availabilitystring
обязательное

Значения: ok no_data no_source not_connected
data.blocks.status.reasonstring
необязательное
data.blocks.status.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

#PulseAlert

Находка «Пульса»: тема спроса, которая начала расти.

ПолеТипОписание
idstring
обязательное
topic_idstring
обязательное
topic_namestring
обязательное, может быть null
keywordstring
обязательное
horizonstring
обязательное
statusstring
обязательное
episode_startstring
обязательное, может быть null
last_seenstring
обязательное, может быть null
scorenumber
обязательное, может быть null
volumenumber
обязательное, может быть null
growthnumber
обязательное, может быть null
sourcesarray<object>
обязательное
strategist_topicobject
обязательное, может быть null
Связанная тема очереди стратега.
strategist_topic.idstring
обязательное
strategist_topic.statusstring
обязательное

#PulseResponse

Срез экрана «Пульс».

ПолеТипОписание
dataobject
обязательное
data.periodobject
обязательное
data.period.fromstring
обязательное
Дата YYYY-MM-DD.
data.period.tostring
обязательное
Дата YYYY-MM-DD.
data.new_7dinteger
обязательное
data.truncatedboolean
обязательное
data.alertsarray<PulseAlert>
обязательное
data.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

#ArticleSummary

Статья арендатора без содержимого (элемент списка).

ПолеТипОписание
idstring
обязательное
Идентификатор статьи.
titlestring
обязательное
slugstring
обязательное, может быть null
statusstring
обязательное
draft — черновик; review — на проверке; approved — одобрена; published — опубликована; rejected — отклонена; transferred — передана в блог; external — внешняя.
localestring
обязательное, может быть null
Язык статьи (ru, en, id).
keywordstring
обязательное, может быть null
Главный запрос статьи.
meta_titlestring
обязательное, может быть null
meta_descriptionstring
обязательное, может быть null
cover_image_urlstring
обязательное, может быть null
word_countinteger
обязательное
created_atstring
обязательное, может быть null
ISO 8601 UTC.
updated_atstring
обязательное, может быть null
ISO 8601 UTC.
published_atstring
обязательное, может быть null
ISO 8601 UTC.

#ArticlePublication

Состояние последней выкладки статьи через модуль сайта.

ПолеТипОписание
targetstring
обязательное
Куда выкладывается: модуль на вашем сайте.
statestring
обязательное
queued — в очереди или отдано модулю; applied — применено на сайте; skipped — пропущено; conflict — правка на сайте новее; failed — ошибка.
Значения: queued applied skipped conflict failed
published_urlstring
обязательное, может быть null
Адрес статьи на вашем сайте после применения.
errorstring
обязательное, может быть null
Причина сбоя, до 200 знаков.

#Article

Статья арендатора с содержимым.

ПолеТипОписание
idstring
обязательное
Идентификатор статьи.
titlestring
обязательное
slugstring
обязательное, может быть null
statusstring
обязательное
draft — черновик; review — на проверке; approved — одобрена; published — опубликована; rejected — отклонена; transferred — передана в блог; external — внешняя.
localestring
обязательное, может быть null
Язык статьи (ru, en, id).
keywordstring
обязательное, может быть null
Главный запрос статьи.
meta_titlestring
обязательное, может быть null
meta_descriptionstring
обязательное, может быть null
cover_image_urlstring
обязательное, может быть null
word_countinteger
обязательное
created_atstring
обязательное, может быть null
ISO 8601 UTC.
updated_atstring
обязательное, может быть null
ISO 8601 UTC.
published_atstring
обязательное, может быть null
ISO 8601 UTC.
contentobject
обязательное
Тело статьи в запрошенном формате: html и markdown — строка; blocks — массив блоков {type, html}. HTML очищен от скриптов, опасных ссылок и обработчиков событий. У статьи, чьё тело переехало в блог площадки, содержимое пустое.
publicationArticlePublication
обязательное, может быть null
null — статью ещё не выкладывали через модуль сайта.

#ArticlePage

Страница списка.

ПолеТипОписание
dataarray<ArticleSummary>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#StrategistReportSummary

Шапка отчёта стратега (элемент списка).

ПолеТипОписание
idstring
обязательное
Идентификатор отчёта.
report_datestring
обязательное
Дата отчёта YYYY-MM-DD.
report_typestring
обязательное
daily — ежедневный, weekly — недельный.
Значения: daily weekly
summary_textstring
обязательное
Краткий вывод.
actions_countinteger
обязательное
Сколько действий рекомендовано.
data_as_ofobject
обязательное
Актуальность данных: по каждому показателю (ключ) дата последних данных YYYY-MM-DD; ключ snapshot — дата снимка аналитики, на котором построен отчёт. Пусто, если снимка нет.
delivered_atstring
обязательное, может быть null
Когда отчёт доставлен владельцу; null — ещё нет. ISO 8601 UTC.

#StrategistReportAction

Рекомендованное действие.

ПолеТипОписание
titlestring
обязательное
prioritystring
обязательное
Приоритет действия (high, medium, low).
rationalestring
обязательное
Обоснование. Названия конкурентов в нём скрыты.
target_refstring
обязательное, может быть null
Ссылка на цель (статья, товар, кампания); null, если цели нет или это конкурент.
expected_effectobject
обязательное, может быть null
Ожидаемый эффект; null, если стратег его не назвал.
expected_effect.metricstring
обязательное, может быть null
expected_effect.deltastring
обязательное, может быть null
expected_effect.horizon_daysinteger
обязательное, может быть null
check_after_daysinteger
обязательное, может быть null
Через сколько дней проверить результат.
basisstring
обязательное
На чём стоит вывод: observed_pattern — наблюдали у других; own_measured — измерили у вас; research — исследование; hypothesis — гипотеза.
Значения: observed_pattern own_measured research hypothesis

#StrategistEvidence

Доказательства по действиям. Дословные формулировки конкурентов не отдаются.

ПолеТипОписание
actionsarray<object>
обязательное
validationobject
необязательное
Итог проверки доказательств. relevance_checked всегда false: проверяются ссылки и цитаты, а не смысл.
validation.refs_validboolean
обязательное
validation.excerpts_validboolean
обязательное
validation.relevance_checkedboolean
обязательное
validation.limitationsarray<string>
обязательное

#StrategistReport

Отчёт стратега целиком. Снимок аналитики, модель и стоимость не отдаются.

ПолеТипОписание
idstring
обязательное
report_datestring
обязательное
report_typestring
обязательное

Значения: daily weekly
summary_textstring
обязательное
data_as_ofobject
обязательное
Актуальность данных: по каждому показателю (ключ) дата последних данных YYYY-MM-DD; ключ snapshot — дата снимка аналитики, на котором построен отчёт. Пусто, если снимка нет.
highlightsarray<object>
обязательное
Что идёт хорошо.
concernsarray<object>
обязательное
Что беспокоит.
actionsarray<StrategistReportAction>
обязательное
evidenceStrategistEvidence
обязательное

#StrategistReportPage

Страница списка.

ПолеТипОписание
dataarray<StrategistReportSummary>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#StrategistTopic

Тема в очереди стратега.

ПолеТипОписание
idstring
обязательное
titlestring
обязательное, может быть null
rationalestring
обязательное, может быть null
Почему тема предложена. Для тем от конкурентов домены скрыты.
trend_scorenumber
обязательное, может быть null
Оценка тренда; null — не оценивалась.
sourcestring
обязательное
Откуда тема: planner, competitors, chat и др.
statusstring
обязательное
proposed — ждёт решения; approved — одобрена; generating — статья создаётся; generated — статья создана; rejected — отклонена; duplicate — дубль; expired — срок вышел.
Значения: proposed approved generating generated rejected duplicate expired
cluster_idstring
обязательное, может быть null
generated_article_idstring
обязательное, может быть null
Идентификатор созданной статьи (GET /articles/{id}).
proposed_atstring
обязательное, может быть null
ISO 8601 UTC.
decided_atstring
обязательное, может быть null
ISO 8601 UTC.
expires_atstring
обязательное, может быть null
ISO 8601 UTC.

#StrategistTopicPage

Страница списка.

ПолеТипОписание
dataarray<StrategistTopic>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#StrategistAction

Действие стратега, предложенное в вашей сессии и ждущее решения.

ПолеТипОписание
idstring
обязательное
session_idstring
обязательное, может быть null
Сессия разговора, в которой предложено действие.
typestring
обязательное
Вид действия. В v1 — только propose_topic.
titlestring
обязательное
Заголовок предлагаемой темы.
statusstring
обязательное
proposed — ждёт подтверждения; confirmed — подтверждено, выполняется; executed — выполнено; failed — не удалось; cancelled — отменено; expired — срок вышел (7 суток).
Значения: proposed confirmed executed failed cancelled expired
resultobject
обязательное, может быть null
Результат выполненного действия: созданная тема.
result.topic_idstring
обязательное
errorobject
обязательное, может быть null
Причина сбоя при status = failed.
error.codestring
обязательное
error.messagestring
обязательное
created_atstring
обязательное, может быть null
ISO 8601 UTC.
decided_atstring
обязательное, может быть null
ISO 8601 UTC.
expires_atstring
обязательное, может быть null
Когда ожидание истекает: создание + 7 суток. ISO 8601 UTC.

#StrategistActionPage

Страница списка.

ПолеТипОписание
dataarray<StrategistAction>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#Conversation

Диалог. Содержит персональные данные (external_customer_id).

ПолеТипОписание
idstring
обязательное
Идентификатор диалога (uuid).
channelstring
обязательное, может быть null
Тип канала: api, telegram, website …
contact_idstring
обязательное, может быть null
Идентификатор контакта (клиента) в Sapport.
external_customer_idstring
обязательное, может быть null
Идентификатор клиента в вашей системе. Только у канала api; у остальных каналов null (внешний идентификатор мессенджера не раскрывается).
statusstring
обязательное
Состояние диалога: open, handoff_pending, resolved, closed … Набор значений может расширяться — не считайте список закрытым.
modestring
обязательное
Кто ведёт диалог: ai — отвечает ИИ (режимы auto и supervised), operator — отвечает человек (copilot и manual).
Значения: ai operator
languagestring
обязательное, может быть null
Язык диалога (ISO 639-1); null — не определён.
created_atstring
обязательное, может быть null
Начало диалога, ISO 8601 UTC.
updated_atstring
обязательное
Последнее изменение или сообщение, ISO 8601 UTC. По нему идёт обход. Счётчик непрочитанного его не меняет.

#MessageAttachment

Вложение сообщения.

ПолеТипОписание
typestring
обязательное, может быть null
Вид содержимого: image, file, audio …
urlstring
обязательное
Временная подписанная ссылка на файл (скачивание без ключа API). Не сохраняйте ссылку: запросите сообщение заново.
expires_atstring
обязательное, может быть null
Когда ссылка перестанет работать, ISO 8601 UTC (около часа); null — постоянный путь.

#Message

Сообщение диалога. Содержит персональные данные клиента (текст, вложения).

ПолеТипОписание
idstring
обязательное
Идентификатор сообщения (uuid).
conversation_idstring
обязательное
Диалог.
senderstring
обязательное
Отправитель: customer — клиент, ai — ИИ, operator — оператор, system — служебное.
Значения: customer ai operator system
content_typestring
обязательное
Вид содержимого: text, image, file …
contentstring
обязательное, может быть null
Текст; null — текста нет (только вложение) или сообщение удалено.
attachmentsarray<MessageAttachment>
обязательное
Вложения (сейчас не больше одного).
deletedboolean
обязательное
true — сообщение удалено (приходит только при include_deleted=true; текста и вложений нет).
created_atstring
обязательное
Время сообщения, ISO 8601 UTC.

#ConversationPage

Страница списка.

ПолеТипОписание
dataarray<Conversation>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#MessagePage

Страница списка.

ПолеТипОписание
dataarray<Message>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.

#LeadFlags

Флаги ИИ по переписке. true/false ставятся только при уверенности модели.

ПолеТипОписание
buy_intentboolean
обязательное, может быть null
Намерение купить; null — модель не уверена.
supportboolean
обязательное, может быть null
Обращение в поддержку, а не покупка; null — не уверена.
supplierboolean
обязательное, может быть null
Поставщик или рекламодатель, а не клиент; true уводит лид в архив (ai_not_client).

#LeadScore

Оценка лида. null у лида, которого ещё не оценивали.

ПолеТипОписание
scoreinteger
обязательное
Балл 0–100.
gradestring
обязательное
Класс: A — 75 и выше, B — 50–74, C — 25–49, D — ниже 25.
Значения: A B C D
reasonstring
обязательное, может быть null
Объяснение оценки; null, пока не записано.
flagsLeadFlags
обязательное, может быть null
sourcestring
обязательное, может быть null
Кто оценил: ai, external или manual; null — неизвестно.
Значения: ai external manual
modelstring
обязательное, может быть null
Модель, поставившая флаги; null, если оценка не ИИ.
scored_atstring
обязательное, может быть null
Когда выставлена оценка. ISO 8601 UTC.

#LeadContact

Контакт лида. Содержит персональные данные: выдача пишется в журнал выдач.

ПолеТипОписание
idstring
обязательное
Идентификатор контакта.
first_namestring
обязательное, может быть null
last_namestring
обязательное, может быть null
emailstring
обязательное, может быть null
ПДн.
phonestring
обязательное, может быть null
ПДн.
tagsarray<string>
обязательное
geo_countrystring
обязательное, может быть null
Страна по IP (ISO 3166-1 alpha-2).
geo_citystring
обязательное, может быть null
Город по IP.

#LeadAttribution

Откуда пришёл лид (первое касание). null, если следов нет.

ПолеТипОписание
utm_sourcestring
обязательное, может быть null
utm_mediumstring
обязательное, может быть null
utm_campaignstring
обязательное, может быть null
first_pagestring
обязательное, может быть null
Страница первого визита.
referrerstring
обязательное, может быть null

#Lead

Лид арендатора.

ПолеТипОписание
idstring
обязательное
Идентификатор лида.
external_idstring
обязательное, может быть null
Идентификатор во внешней CRM; null, пока внешняя CRM не подключена.
external_urlstring
обязательное, может быть null
versioninteger
обязательное, может быть null
Версия для If-Match; null, пока в базе нет колонки версии — используйте etag.
etagstring
обязательное
Метка версии (совпадает с заголовком ETag карточки).
statusstring
обязательное
Один из шести канонических статусов. Архив — флаг archived, не статус.
Значения: new qualified proposal negotiation won lost
archivedboolean
обязательное
Лид в архиве.
archived_reasonstring
обязательное, может быть null
Причина архива, например ai_not_client.
ownerstring
обязательное
Где живёт лид: internal — в нашей CRM.
Значения: internal external
titlestring
обязательное, может быть null
sourcestring
обязательное, может быть null
assigned_tostring
обязательное, может быть null
Идентификатор ответственного сотрудника.
valueMoney
обязательное, может быть null
product_idstring
обязательное, может быть null
course_slugstring
обязательное, может быть null
contactLeadContact
обязательное, может быть null
conversation_idstring
обязательное, может быть null
attributionLeadAttribution
обязательное, может быть null
scoreLeadScore
обязательное, может быть null
flagsLeadFlags
обязательное, может быть null
intentstring
обязательное, может быть null
ai_summarystring
обязательное, может быть null
next_actionstring
обязательное, может быть null
next_action_atstring
обязательное, может быть null
ISO 8601 UTC.
lost_reasonstring
обязательное, может быть null
qualified_atstring
обязательное, может быть null
ISO 8601 UTC.
won_atstring
обязательное, может быть null
ISO 8601 UTC.
lost_atstring
обязательное, может быть null
ISO 8601 UTC.
last_activity_atstring
обязательное, может быть null
ISO 8601 UTC.
created_atstring
обязательное
Создан. ISO 8601 UTC.
updated_atstring
обязательное
Изменён. ISO 8601 UTC.

#LeadPage

Страница списка.

ПолеТипОписание
dataarray<Lead>
обязательное
next_cursorstring
обязательное, может быть null
Курсор следующей страницы; null — список закончился. Живёт 24 часа.