APIリファレンス
Webhookエンドポイント
Webhookエンドポイントは、Gemleadのイベントを発生と同時に受け取る、あなたのURLです。1アカウントあたり10個まで登録できます。イベント、ペイロード、署名の検証方法についてはWebhookを参照してください。
Webhookエンドポイントオブジェクト
Gemleadがイベントを送る、あなたのURL。イベントと検証方法についてはWebhookを参照してください。
属性
- idstringエンドポイントの一意の識別子。
- objectstring常に
webhook_endpointです。 - urlstringイベントの送信先のHTTPS URL。
- descriptionstringまたはnullエンドポイントについてのメモ。
- eventsstringsの配列送信されるイベントタイプ。
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - statusstringイベントが送信されるかどうか。
enableddisabled - filtersobjectリードのペルソナで、受け取るイベントを指定します。すべてのイベントタイプに適用されます。
- disabled_reasonstringまたはnull無効になっている理由。あなたがオフにした場合は
manual、3日連続で失敗し、失敗した試行が8回以上になってGemleadが無効にした場合はfailingです。有効な間は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"
}Webhookエンドポイントを一覧表示
readスコープWebhookエンドポイントを、シークレットを除いて返します。
クエリパラメーター
- limitinteger返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
- cursorstring次のページを取得するための、前のページの
next_cursor。ページネーションを参照してください。
戻り値
Webhookエンドポイントオブジェクトのリスト。
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
}Webhookエンドポイントを作成
writeスコープ1つ以上のイベントタイプを受け取るURLを登録します。レスポンスのsecretは、表示されるのがこの一度だけなので、必ず保存してください。
ボディパラメーター
- urlstring必須公開インターネットから応答できるHTTPS URL。
- eventsstringsの配列必須送信するイベントタイプ。
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - descriptionstring自分用のメモ。
- filtersobjectリードのペルソナで、送信するイベントを指定します。
戻り値
secretを含む、新しいWebhookエンドポイントオブジェクト。
エラー
- 必須パラメーターがありません。
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"
}Webhookエンドポイントを取得
readスコープWebhookエンドポイントを1件、シークレットを除いて返します。
パスパラメーター
- idstring必須WebhookエンドポイントのID。
戻り値
エラー
- キーのアカウントに、このIDのWebhookエンドポイントはありません。
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"
}Webhookエンドポイントを更新
writeスコープエンドポイントを変更します。Gemleadが無効にしたエンドポイントを再び有効にするには、statusをenabledにします。有効にするか新しいurlを指定すると、失敗のカウントはやり直しになります。
パスパラメーター
- idstring必須WebhookエンドポイントのID。
ボディパラメーター
- urlstring新しいHTTPS URL。
- eventsstringsの配列送信するイベントタイプ。
lead.createdlead.hotreply.receivedreaction.receivedsam.suggestion.readysam.reply.sentsam.handoff - descriptionstring自分用のメモ。
- statusstringエンドポイントをオンまたはオフにします。
enableddisabled - filtersobjectリードのペルソナで、送信するイベントを指定します。
戻り値
更新されたWebhookエンドポイントオブジェクト。
エラー
- キーのアカウントに、このIDのWebhookエンドポイントはありません。
- 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"
}Webhookエンドポイントを削除
writeスコープエンドポイントを削除します。再試行を待っている配信は破棄されます。
パスパラメーター
- idstring必須WebhookエンドポイントのID。
戻り値
エンドポイントのidと、trueに設定されたdeletedを含むオブジェクト。
エラー
- キーのアカウントに、このIDのWebhookエンドポイントはありません。
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必須WebhookエンドポイントのID。
戻り値
新しいsecretを含むWebhookエンドポイントオブジェクト。
エラー
- キーのアカウントに、このIDのWebhookエンドポイントはありません。
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_で始まる値にして送信します。試行は1回のみで、再試行はありません。
パスパラメーター
- idstring必須WebhookエンドポイントのID。
戻り値
エンドポイントが返したstatusとstatus_codeを含むWebhook配信オブジェクト。
エラー
- キーのアカウントに、このIDのWebhookエンドポイントはありません。
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"
}Webhook配信オブジェクト
1つのエンドポイントに送られた1件のイベント。試行の状況と、サーバーからの最後の応答を含みます。
属性
- 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またはnull最後の応答のHTTPステータス。タイムアウトや接続エラーで応答がなかった場合は
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必須WebhookエンドポイントのID。
クエリパラメーター
- limitinteger返す配信の数。1から100まで指定でき、デフォルトは25です。
戻り値
Webhook配信オブジェクトのリスト。このリストにはnext_cursorがないため、さらに表示するにはlimitを増やしてください。
エラー
- キーのアカウントに、このIDのWebhookエンドポイントはありません。
- 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
}