---
title: "List webhooks"
method: GET
path: "/api/v2/webhooks"
tags: ["Webhook"]
---

# List webhooks

`GET /api/v2/webhooks`

List all webhooks for the workspace with optional filters

## Query parameters

- `limit` integer
- `starting_after` string
- `campaign` string, uuid
- `event_type` 'all_events' | 'email_sent' | 'email_opened' | 'email_link_clicked' | 'reply_received' | 'email_bounced' | 'lead_unsubscribed' | 'campaign_completed' | 'account_error' | 'lead_neutral' | 'lead_interested' | 'lead_not_interested' | 'lead_meeting_booked' | 'lead_meeting_completed' | 'lead_closed' | 'lead_out_of_office' | 'lead_wrong_person'

## Response `200`

The list of Webhook

- object
  - `items` Webhook[], required — The list of Webhook
    - `id` string, uuid, required — Unique identifier for the webhook (UUID)
    - `organization` string, uuid, required — Organization (workspace) UUID that owns this webhook
    - `campaign` string, uuid, nullable — Optional campaign UUID to filter events (null = all campaigns in workspace)
    - `name` string, nullable — Optional user-defined name for the webhook
    - `target_hook_url` string, uri, required — Target URL to send webhook payloads
    - `event_type` 'all_events' | 'email_sent' | 'email_opened' | 'email_link_clicked' | 'reply_received' | 'email_bounced' | 'lead_unsubscribed' | 'campaign_completed' | 'account_error' | 'lead_neutral' | 'lead_interested' | 'lead_not_interested' | 'lead_meeting_booked' | 'lead_meeting_completed' | 'lead_closed' | 'lead_out_of_office' | 'lead_wrong_person' | 'lead_no_show' | 'supersearch_enrichment_completed', nullable — Type of event to trigger the webhook (null for custom label events). Set to "all_events" to subscribe to all events - including custom label events
    - `custom_interest_value` number, nullable — Custom interest value - corresponds to LeadLabel.interest_status (used for custom label events)
    - `headers` object, nullable — Optional HTTP headers to include when delivering webhook payloads (key-value pairs)
    - `timestamp_created` string, date-time, required — Timestamp when the webhook was created
    - `status` number, nullable — Webhook status: 1 = active, -1 = error (disabled due to delivery failures)
    - `timestamp_error` string, date-time, nullable — Timestamp when webhook was disabled due to delivery failures (null if active)
  - `next_starting_after` string — The filter for getting the next items after this one, this could either be a UUID, a timestamp, on an email depending on the specific API

## Other responses

- `401` — This request is unauthorized (either the Authorization header is missing or invalid, or the API key has been revoked)
- `402` — This request cannot be fulfilled because the workspace does not have an active paid plan
- `404` — The requested resource was not found
- `429` — You have exceeded the rate limit. Please check the rate limit docs for more information.

---

[API](https://skmtc.net/instantly/apis/api-explorer.md) · [All operations](https://skmtc.net/instantly/apis/api-explorer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/instantly/api-explorer/revisions/378d1e253fe7/schema)
