Справочник API
Эндпоинты вебхуков
Эндпоинтом вебхука называется ваш URL, который получает события Gemlead в момент, когда они происходят. На аккаунт можно создать до 10 эндпоинтов. О событиях, их данных и проверке подписи читайте в разделе Вебхуки.
Объект эндпоинта вебхука
Ваш URL, на который Gemlead отправляет события. О событиях и их проверке см. раздел Вебхуки.
Атрибуты
- idstringУникальный идентификатор эндпоинта.
- objectstringВсегда
webhook_endpoint. - urlstringHTTPS URL, на который отправляются события.
- descriptionstring или nullВаша заметка об эндпоинте.
- eventsмассив stringsТипы событий, которые на него отправляются.
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - statusstringОтправляются ли на него события.
enableddisabled - filtersobjectКакие события он получает, по персоне лида. Применяется к событиям любого типа.
- disabled_reasonstring или nullПочему он отключён.
manual, если его выключили вы,failing, если это сделал Gemlead после 3 дней неудач подряд и не меньше 8 неудачных попыток.null, пока он включён.manualfailing - secretstringСекрет подписи,
whsec_и 32 символа. Есть только в ответах на создание и обновление секрета. - created_atstringКогда создан эндпоинт, ISO 8601.
- updated_atstringВремя последнего изменения эндпоинта, ISO 8601.
{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/gemlead",
"description": "CRM sync",
"events": ["lead.hot", "reply.received"],
"status": "enabled",
"filters": {
"persona_ids": ["lvWBPnytpS"]
},
"disabled_reason": null,
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Список эндпоинтов вебхуков
readВозвращает ваши эндпоинты вебхуков без их секретов.
Параметры запроса
- limitintegerСколько объектов вернуть, от 1 до 100. По умолчанию 25.
- cursorstring
next_cursorпредыдущей страницы, чтобы получить следующую. См. раздел Пагинация.
Возвращает
Список объектов эндпоинта вебхука.
curl https://gemlead.ai/api/v1/webhook_endpoints \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "list",
"data": [
{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/gemlead",
"description": "CRM sync",
"events": ["lead.hot", "reply.received"],
"status": "enabled",
"filters": {
"persona_ids": ["lvWBPnytpS"]
},
"disabled_reason": null,
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}
],
"has_more": false,
"next_cursor": null
}Создание эндпоинта вебхука
writeРегистрирует URL для одного или нескольких типов событий. Сохраните secret из ответа, больше он не показывается.
Параметры тела
- urlstringОбязательноHTTPS URL, доступный из публичного интернета.
- eventsмассив stringsОбязательноТипы событий для отправки.
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - descriptionstringЗаметка для себя.
- filtersobjectКакие события отправлять, по персоне лида.
Возвращает
Новый объект эндпоинта вебхука с его secret.
Ошибки
- Отсутствует обязательный параметр. Название параметра указано в
param. - API не принимает значение параметра. Название параметра указано в
param. - В теле есть поле, которое этот эндпоинт не принимает.
- 400url_invalidURL не на HTTPS, содержит учётные данные или указывает на частный адрес.
- У аккаунта уже 10 эндпоинтов.
curl -X POST https://gemlead.ai/api/v1/webhook_endpoints \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhooks/gemlead",
"events": ["lead.hot", "reply.received"],
"description": "CRM sync",
"filters": {
"persona_ids": ["lvWBPnytpS"]
}
}'{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/gemlead",
"description": "CRM sync",
"events": ["lead.hot", "reply.received"],
"status": "enabled",
"filters": {
"persona_ids": ["lvWBPnytpS"]
},
"disabled_reason": null,
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z",
"secret": "whsec_4QeX7nP2kR9tLm3Vb8YzC1dF6hJ0sWuA"
}Получение эндпоинта вебхука
readВозвращает один эндпоинт вебхука без его секрета.
Параметры пути
- idstringОбязательноID эндпоинта вебхука.
Возвращает
Ошибки
- В аккаунте ключа нет эндпоинта вебхука с этим ID.
curl https://gemlead.ai/api/v1/webhook_endpoints/wh3LpX9dKe \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/gemlead",
"description": "CRM sync",
"events": ["lead.hot", "reply.received"],
"status": "enabled",
"filters": {
"persona_ids": ["lvWBPnytpS"]
},
"disabled_reason": null,
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Изменение эндпоинта вебхука
writeМеняет эндпоинт. Задайте status значение enabled, чтобы снова включить эндпоинт, отключённый Gemlead. Включение или новый url обнуляют его счётчик неудач.
Параметры пути
- idstringОбязательноID эндпоинта вебхука.
Параметры тела
- urlstringНовый HTTPS URL.
- eventsмассив stringsТипы событий для отправки.
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - descriptionstringЗаметка для себя.
- statusstringВключить или выключить эндпоинт.
enableddisabled - filtersobjectКакие события отправлять, по персоне лида.
Возвращает
Обновлённый объект эндпоинта вебхука.
Ошибки
- В аккаунте ключа нет эндпоинта вебхука с этим ID.
- API не принимает значение параметра. Название параметра указано в
param. - В теле есть поле, которое этот эндпоинт не принимает.
- 400url_invalidURL не на HTTPS, содержит учётные данные или указывает на частный адрес.
curl -X PATCH \
https://gemlead.ai/api/v1/webhook_endpoints/wh3LpX9dKe \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "enabled"
}'{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/gemlead",
"description": "CRM sync",
"events": ["lead.hot", "reply.received"],
"status": "enabled",
"filters": {
"persona_ids": ["lvWBPnytpS"]
},
"disabled_reason": null,
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Удаление эндпоинта вебхука
writeУдаляет эндпоинт. Доставки, которые ещё ждут повторной отправки, отменяются.
Параметры пути
- idstringОбязательноID эндпоинта вебхука.
Возвращает
Объект с id эндпоинта и deleted, равным true.
Ошибки
- В аккаунте ключа нет эндпоинта вебхука с этим ID.
curl -X DELETE \
https://gemlead.ai/api/v1/webhook_endpoints/wh3LpX9dKe \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"deleted": true
}Обновление секрета подписи
writeСразу заменяет секрет эндпоинта, старый перестаёт работать. Доставки, которые не прошли за это время, отправляются повторно с подписью новым секретом.
Параметры пути
- idstringОбязательноID эндпоинта вебхука.
Возвращает
Объект эндпоинта вебхука с новым secret.
Ошибки
- В аккаунте ключа нет эндпоинта вебхука с этим ID.
curl -X POST \
https://gemlead.ai/api/v1/webhook_endpoints/wh3LpX9dKe/roll_secret \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "wh3LpX9dKe",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/gemlead",
"description": "CRM sync",
"events": ["lead.hot", "reply.received"],
"status": "enabled",
"filters": {
"persona_ids": ["lvWBPnytpS"]
},
"disabled_reason": null,
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z",
"secret": "whsec_4QeX7nP2kR9tLm3Vb8YzC1dF6hJ0sWuA"
}Отправка тестового события
writeОтправляет пример события первого типа из списка эндпоинта, с data.test, равным true, и ID, которые начинаются с test_. Одна попытка, без повторов.
Параметры пути
- idstringОбязательноID эндпоинта вебхука.
Возвращает
Объект доставки вебхука с status и status_code, которые вернул ваш эндпоинт.
Ошибки
- В аккаунте ключа нет эндпоинта вебхука с этим ID.
curl -X POST \
https://gemlead.ai/api/v1/webhook_endpoints/wh3LpX9dKe/test \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "dL5qW1zXa8",
"object": "webhook_delivery",
"endpoint_id": "wh3LpX9dKe",
"event_id": "evt_8kQ2vXr4LmT9wPz1Hc6YbN3d",
"event_type": "lead.hot",
"status": "succeeded",
"attempts": 1,
"status_code": 200,
"error": null,
"test": true,
"next_attempt_at": null,
"last_attempt_at": "2026-11-06T07:45:12.904Z",
"created_at": "2026-11-06T07:45:12.904Z"
}Объект доставки вебхука
Одно событие, отправленное на один эндпоинт, с его попытками и последним ответом вашего сервера.
Атрибуты
- idstringУникальный идентификатор доставки.
- objectstringВсегда
webhook_delivery. - endpoint_idstringЭндпоинт, на который она отправлена.
- event_idstring
idотправленного события, тот же, что получил ваш сервер. - event_typestringТип события.
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - statusstring
pending, пока остаются попытки, затемsucceededилиfailed.pendingsucceededfailed - attemptsintegerСколько попыток уже сделано, не больше 8.
- status_codeinteger или nullHTTP-статус вашего последнего ответа.
null, если ответа не было, после тайм-аута или ошибки соединения. - errorstring или nullЧто пошло не так при последней попытке, например статус и начало вашего ответа или тайм-аут.
- testboolean
trueдля тестового события. - next_attempt_atstring или nullКогда запланирована следующая попытка, пока статус
pending. - last_attempt_atstring или nullКогда была сделана последняя попытка.
- created_atstringКогда создана доставка, ISO 8601.
{
"id": "dR7mK2pVn4",
"object": "webhook_delivery",
"endpoint_id": "wh3LpX9dKe",
"event_id": "evt_3Hn7QpW2xZk9LmR4tV8bYc1D",
"event_type": "reply.received",
"status": "pending",
"attempts": 2,
"status_code": 503,
"error": "HTTP 503: Service Unavailable",
"test": false,
"next_attempt_at": "2026-11-06T08:18:10.000Z",
"last_attempt_at": "2026-11-06T08:13:10.000Z",
"created_at": "2026-11-06T08:12:10.000Z"
}Список доставок
readВозвращает последние доставки эндпоинта, сначала новые, включая тестовые события. Доставки хранятся 30 дней.
Параметры пути
- idstringОбязательноID эндпоинта вебхука.
Параметры запроса
- limitintegerСколько доставок вернуть, от 1 до 100. По умолчанию 25.
Возвращает
Список объектов доставки вебхука. У этого списка нет next_cursor, увеличьте limit, чтобы увидеть больше.
Ошибки
- В аккаунте ключа нет эндпоинта вебхука с этим ID.
- API не принимает значение параметра. Название параметра указано в
param.
curl -G \
https://gemlead.ai/api/v1/webhook_endpoints/wh3LpX9dKe/deliveries \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d limit=10{
"object": "list",
"data": [
{
"id": "dR7mK2pVn4",
"object": "webhook_delivery",
"endpoint_id": "wh3LpX9dKe",
"event_id": "evt_3Hn7QpW2xZk9LmR4tV8bYc1D",
"event_type": "reply.received",
"status": "pending",
"attempts": 2,
"status_code": 503,
"error": "HTTP 503: Service Unavailable",
"test": false,
"next_attempt_at": "2026-11-06T08:18:10.000Z",
"last_attempt_at": "2026-11-06T08:13:10.000Z",
"created_at": "2026-11-06T08:12:10.000Z"
},
{
"id": "dL5qW1zXa8",
"object": "webhook_delivery",
"endpoint_id": "wh3LpX9dKe",
"event_id": "evt_8kQ2vXr4LmT9wPz1Hc6YbN3d",
"event_type": "lead.hot",
"status": "succeeded",
"attempts": 1,
"status_code": 200,
"error": null,
"test": true,
"next_attempt_at": null,
"last_attempt_at": "2026-11-06T07:45:12.904Z",
"created_at": "2026-11-06T07:45:12.904Z"
}
],
"has_more": false,
"next_cursor": null
}