Адреса вебхуков
Адреса вебхуков кабинета, их состояние и журнал доставок. Нужны право webhooks:read и ключ на все пространства и кампании.
#Объект WebhookEndpoint
Адрес вебхука кабинета и его состояние. Полного адреса нет: в пути бывает секрет, поэтому видно только имя сервера. Значений дополнительных заголовков тоже нет, только их имена.
Поля
objectstringТип объекта, всегдаwebhook_endpoint.idstring (uuid)Идентификатор адреса.statusstringactiveполучает события,pausedна паузе,disabledвыключен: сам или по коду 410 получателя. Значения:activepauseddisableddisabled_reasonstring или nullПочему адрес выключен или на паузе:gone(получатель ответил 410),failing_72h(ошибки больше 3 суток),plan(тариф без вебхуков),other. У работающего адресаnull. Значения:gonefailing_72hplanotherhoststringИмя сервера получателя. До 253 знаков.descriptionstring или nullОписание из кабинета илиnull. До 500 знаков.event_typesarray of stringТипы событий, которые получает адрес. До 20 элементов.workspace_idsarray of string или nullПространства, события которых получает адрес.null: все пространства. До 50 элементов.campaign_idsarray of string или nullКампании, события которых получает адрес.null: все кампании. До 500 элементов.include_message_textbooleanПередается ли текст ответа лида.header_namesarray of stringИмена дополнительных заголовков, без значений. До 5 элементов.failing_sincestring (date-time) или nullС какого момента адрес не принимает события илиnull, если последняя попытка успешна.consecutive_failuresintegerНеудачных попыток подряд.last_success_atstring (date-time) или nullВремя последней успешной доставки илиnull.versionintegerНомер версии настроек адреса. Растет при каждом изменении.created_atstring (date-time)Когда адрес добавлен.updated_atstring (date-time)Когда настройки адреса менялись последний раз.deliveriesobjectСводка доставок.Вложенные поля
pendingintegerСколько событий ждут отправки.succeeded_24hintegerДоставлено за последние сутки.failed_24hintegerНе доставлено за последние сутки.last_finished_atstring (date-time) или nullКогда закончилась последняя доставка илиnull.last_status_codeinteger или nullКод ответа получателя на последнюю доставку илиnull.last_error_classstring или nullКласс последней ошибки:invalid_url,dns,ssrf_blocked,connect,tls,timeout,http,payload_too_large,unknownилиnull. Значения:invalid_urldnsssrf_blockedconnecttlstimeouthttppayload_too_largeunknown
{
"object": "webhook_endpoint",
"id": "6b2d9f40-3c1e-4a7b-8f5d-2e9c0a1b7d64",
"status": "active",
"disabled_reason": null,
"host": "hooks.example.com",
"description": "CRM",
"event_types": [
"lead.first_message_sent",
"lead.replied"
],
"workspace_ids": null,
"campaign_ids": null,
"include_message_text": false,
"header_names": [
"x-api-key"
],
"failing_since": null,
"consecutive_failures": 0,
"last_success_at": "2026-10-27T09:15:03.000Z",
"version": 2,
"created_at": "2026-10-20T08:00:00.000Z",
"updated_at": "2026-10-22T12:30:00.000Z",
"deliveries": {
"pending": 0,
"succeeded_24h": 38,
"failed_24h": 0,
"last_finished_at": "2026-10-27T09:15:03.000Z",
"last_status_code": 200,
"last_error_class": null
}
}#Объект WebhookDelivery
Одна доставка события на адрес вебхука. Данных лида нет: само событие отдает лента событий по event_id.
Поля
objectstringТип объекта, всегдаwebhook_delivery.idstring (uuid)Идентификатор доставки.endpoint_idstring (uuid)Адрес вебхука.event_idstringИдентификатор события: тот же, что в заголовкеwebhook-idи в ленте событий. Формат^evt_[a-f0-9]{32}$.event_typestring или nullТип события,webhook.testдля проверочного,unknownдля неизвестного илиnull, если события уже нет. Значения:lead.first_message_sentlead.repliedmessage.receivedlead.status_changedcampaign.status_changedaccount.status_changedmessage.sentmessage.delivery_unknownwebhook.testunknownstatusstringpendingждет отправки,deliveringотправляется,succeededдоставлено,failedне доставлено,cancelledотменено. Значения:pendingdeliveringsucceededfailedcancelledunknowncancel_reasonstring или nullПочему доставка отменена:scope_changed,endpoint_deleted,expired,other. У неотмененнойnull. Значения:scope_changedendpoint_deletedexpiredotherattemptintegerСколько было попыток.next_attempt_atstring (date-time) или nullКогда следующая попытка. Только уpending, иначеnull.last_status_codeinteger или nullКод ответа получателя на последнюю попытку илиnull.last_error_classstring или nullКласс ошибки последней попытки илиnull. Значения:invalid_urldnsssrf_blockedconnecttlstimeouthttppayload_too_largeunknownlast_duration_msinteger или nullДлительность последней попытки в миллисекундах илиnull.created_atstring (date-time)Когда событие поставлено на доставку.finished_atstring (date-time) или nullКогда доставка закончилась илиnull.
{
"object": "webhook_delivery",
"id": "7c4e1a85-2d9b-4f63-a0e8-5b3f9c7d2e16",
"endpoint_id": "6b2d9f40-3c1e-4a7b-8f5d-2e9c0a1b7d64",
"event_id": "evt_1f8a3c5e7b9d4a2c6e0f8b1d3a5c7e9f",
"event_type": "lead.replied",
"status": "succeeded",
"cancel_reason": null,
"attempt": 1,
"next_attempt_at": null,
"last_status_code": 200,
"last_error_class": null,
"last_duration_ms": 184,
"created_at": "2026-10-27T09:15:02.000Z",
"finished_at": "2026-10-27T09:15:03.000Z"
}#Список адресов вебхуков
GET/v1/webhook-endpoints
Адреса вебхуков кабинета и их состояние: принимают ли события, с какого момента ошибки, последняя ошибка и доставки за сутки, от старых к новым. Нужен ключ на все пространства и кампании: вебхуки общие для кабинета.
Параметры
- Сколько объектов вернуть на странице. От 1 до 100. По умолчанию
50. - Значение
next_cursorиз предыдущего ответа. Остальные фильтры должны совпадать с первым запросом. - Только адреса в этом состоянии. Значения:
activepauseddisabled
Ответ
Список: object, data (массив объектов WebhookEndpoint), has_more, next_cursor. Подробнее в руководстве Пагинация.
Особые ошибки
cursor_mismatch: Курсор поврежден, выдан для другого маршрута или фильтров, либо права и охват ключа изменились.scope_required: Ключ не разрешает операцию. Для команды нужно право ее вида.not_found: Объект не найден или находится вне охвата ключа. Неизвестный путь тоже дает 404.cursor_expired: Срок курсора истек: 15 минут для списков, 30 суток для ленты событий.
Общие ошибки описаны в руководстве Ошибки.
curl https://api.melioralab.io/v1/webhook-endpoints \
-H "Authorization: Bearer $MELIORA_API_KEY"const res = await fetch('https://api.melioralab.io/v1/webhook-endpoints', {
headers: { Authorization: `Bearer ${process.env.MELIORA_API_KEY}` },
});
if (!res.ok) throw new Error(`Meliora API: ${res.status}`);
const body = await res.json();import os
import requests
resp = requests.get(
"https://api.melioralab.io/v1/webhook-endpoints",
headers={"Authorization": f"Bearer {os.environ['MELIORA_API_KEY']}"},
timeout=15,
)
resp.raise_for_status()
body = resp.json(){
"object": "list",
"data": [
{
"object": "webhook_endpoint",
"id": "6b2d9f40-3c1e-4a7b-8f5d-2e9c0a1b7d64",
"status": "active",
"disabled_reason": null,
"host": "hooks.example.com",
"description": "CRM",
"event_types": [
"lead.first_message_sent",
"lead.replied"
],
"workspace_ids": null,
"campaign_ids": null,
"include_message_text": false,
"header_names": [
"x-api-key"
],
"failing_since": null,
"consecutive_failures": 0,
"last_success_at": "2026-10-27T09:15:03.000Z",
"version": 2,
"created_at": "2026-10-20T08:00:00.000Z",
"updated_at": "2026-10-22T12:30:00.000Z",
"deliveries": {
"pending": 0,
"succeeded_24h": 38,
"failed_24h": 0,
"last_finished_at": "2026-10-27T09:15:03.000Z",
"last_status_code": 200,
"last_error_class": null
}
}
],
"has_more": false,
"next_cursor": null
}#Получить адрес вебхука
GET/v1/webhook-endpoints/{id}
Один адрес вебхука по идентификатору. Удаленный адрес дает 404.
Параметры
- Идентификатор адреса вебхука.
Ответ
Объект WebhookEndpoint.
Особые ошибки
scope_required: Ключ не разрешает операцию. Для команды нужно право ее вида.not_found: Объект не найден или находится вне охвата ключа. Неизвестный путь тоже дает 404.
Общие ошибки описаны в руководстве Ошибки.
curl https://api.melioralab.io/v1/webhook-endpoints/ \
-H "Authorization: Bearer $MELIORA_API_KEY"const res = await fetch('https://api.melioralab.io/v1/webhook-endpoints/', {
headers: { Authorization: `Bearer ${process.env.MELIORA_API_KEY}` },
});
if (!res.ok) throw new Error(`Meliora API: ${res.status}`);
const body = await res.json();import os
import requests
resp = requests.get(
"https://api.melioralab.io/v1/webhook-endpoints/",
headers={"Authorization": f"Bearer {os.environ['MELIORA_API_KEY']}"},
timeout=15,
)
resp.raise_for_status()
body = resp.json(){
"object": "webhook_endpoint",
"id": "6b2d9f40-3c1e-4a7b-8f5d-2e9c0a1b7d64",
"status": "active",
"disabled_reason": null,
"host": "hooks.example.com",
"description": "CRM",
"event_types": [
"lead.first_message_sent",
"lead.replied"
],
"workspace_ids": null,
"campaign_ids": null,
"include_message_text": false,
"header_names": [
"x-api-key"
],
"failing_since": null,
"consecutive_failures": 0,
"last_success_at": "2026-10-27T09:15:03.000Z",
"version": 2,
"created_at": "2026-10-20T08:00:00.000Z",
"updated_at": "2026-10-22T12:30:00.000Z",
"deliveries": {
"pending": 0,
"succeeded_24h": 38,
"failed_24h": 0,
"last_finished_at": "2026-10-27T09:15:03.000Z",
"last_status_code": 200,
"last_error_class": null
}
}#Журнал доставок
GET/v1/webhook-endpoints/{id}/deliveries
Доставки событий на один адрес, от новых к старым: состояние, попытки, код ответа и ошибка. Помогает понять, почему CRM не получила событие. Само событие отдает лента событий по event_id.
Параметры
- Идентификатор адреса вебхука.
- Сколько объектов вернуть на странице. От 1 до 100. По умолчанию
50. - Значение
next_cursorиз предыдущего ответа. Остальные фильтры должны совпадать с первым запросом. - Только доставки в этом состоянии. Значения:
pendingdeliveringsucceededfailedcancelled
Ответ
Список: object, data (массив объектов WebhookDelivery), has_more, next_cursor. Подробнее в руководстве Пагинация.
Особые ошибки
cursor_mismatch: Курсор поврежден, выдан для другого маршрута или фильтров, либо права и охват ключа изменились.scope_required: Ключ не разрешает операцию. Для команды нужно право ее вида.not_found: Объект не найден или находится вне охвата ключа. Неизвестный путь тоже дает 404.cursor_expired: Срок курсора истек: 15 минут для списков, 30 суток для ленты событий.
Общие ошибки описаны в руководстве Ошибки.
curl https://api.melioralab.io/v1/webhook-endpoints//deliveries \
-H "Authorization: Bearer $MELIORA_API_KEY"const res = await fetch('https://api.melioralab.io/v1/webhook-endpoints//deliveries', {
headers: { Authorization: `Bearer ${process.env.MELIORA_API_KEY}` },
});
if (!res.ok) throw new Error(`Meliora API: ${res.status}`);
const body = await res.json();import os
import requests
resp = requests.get(
"https://api.melioralab.io/v1/webhook-endpoints//deliveries",
headers={"Authorization": f"Bearer {os.environ['MELIORA_API_KEY']}"},
timeout=15,
)
resp.raise_for_status()
body = resp.json(){
"object": "list",
"data": [
{
"object": "webhook_delivery",
"id": "7c4e1a85-2d9b-4f63-a0e8-5b3f9c7d2e16",
"endpoint_id": "6b2d9f40-3c1e-4a7b-8f5d-2e9c0a1b7d64",
"event_id": "evt_1f8a3c5e7b9d4a2c6e0f8b1d3a5c7e9f",
"event_type": "lead.replied",
"status": "succeeded",
"cancel_reason": null,
"attempt": 1,
"next_attempt_at": null,
"last_status_code": 200,
"last_error_class": null,
"last_duration_ms": 184,
"created_at": "2026-10-27T09:15:02.000Z",
"finished_at": "2026-10-27T09:15:03.000Z"
}
],
"has_more": true,
"next_cursor": "v1.k1.Qm9hcmRfMWZ4.c3RyaWN0bHlfb3BhcXVl.dGFnX2V4YW1wbGU.bWFjX2V4YW1wbGVfdmFsdWU"
}