---
title: "List webhooks"
method: GET
path: "/entities/Webhooks"
tags: ["Webhook"]
---

# List webhooks

`GET /entities/Webhooks`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/Webhooks`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/Webhooks/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the webhooks of the space, one page at a time.

## Query parameters

- `include-deleted` boolean
- `first` integer
- `last` integer
- `before` string
- `after` string
- `expand` string
- `order-by` string
- `filter` object
- `filter-op` object
- `load-only` string

## Response `200`

Page of Webhook records.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` Webhook[]
    - `is_delete_protected` boolean, required: True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
    - `id` string, uuid, required: Unique identifier of entity.
    - `is_deleted` boolean: Specifies if the entity is considered deleted.
    - `modified` string, date-time: Last modification time.
    - `created` string, date-time: Creation time.
    - `application` string, uri: OAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used. Related Application record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Application' for its fields.
    - `client` string, uri: Client who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook. It is left empty if global team space API Credentials are used. Related Client record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Client' for its fields.
    - `application_id` string, uuid: Id of the OAuth application that registered the Webhook.
    - `client_id` string, uuid: Id of the user who defined the Webhook.
    - `insecure_ssl` boolean, required: If True, remote side ssl certificate will not be validated when delivering notifications.
    - `options` object: Params in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete. For events with a secondary related entity you can also options under key "related_entity". E.g. for Account.LinkedDocument event, the "expand" option of CloudObject(Document) can be set under "related_entity" key. Filter follows REST API conventions: https://developers.coevera.com/reference/rest/ In addition, to REST params, you can conditionally trigger webhook only when specified fields will change. You can use "on-field-change" param and provide a list of api names on which this change will listen. The "on-field-change" option is available for Account, Appointment, Task, Contact, Opportunity, Lead, Product Line Item, Project, Quote and Custom Entity. Suppressing Webhooks You can specify list of strings under "skip_keys" key in options. Whenever you make an API request with header "Webhook-Skip-Key" equal to any of the specified skip keys, the Webhook will not be triggered. This can prevent a Webhook loop. Example: { "entity": { "Contact": { "expand": [ "primary_account", "primary_contact", "task_relations.task" ], "load-only": [ "id", "primary_account", "primary_contact.first_name", "task_relations.task" ], "filter": { "email1": ["test@example.com", "test@example.net"], "email2": "test@example.com" }, "filter-op": {"email1": "eq"}, # optional, default operator is eq "on-field-change": ["email1"] }, "Account": { "filter": { "owner_id": ["9900cce6-bcd6-412a-bcd1-1904556c949a"] } } }, "related_entity": {"expand": ["contact"], "load-only": ["id", "contact"]}, "skip_keys": ["gmail_sync", "custom_integration"], "chunk_size": 100, // defines the size of the chunk, default is 100, max is 100. "chunk_delay": 300, // each chunk will be delayed by N * chunk_delay seconds, where N is index of chunk, default is 0. "custom_entity_api_name": ["CE_Name1", "CE_Name2"] // in case of triggered custom entity, this will execute webhooks only for specified ones within the list. Default are all custom entity types. }
    - `signature` string, uuid: Signature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
    - `url` string, required: Target URL that webhook event payloads are POSTed to.
    - `events` string[], required: Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.
  - `page_info` object: Pagination of the result; not returned when the legacy limit and offset parameters are used.
    - `start_cursor` string: Cursor of the first record of the page.
    - `end_cursor` string: Cursor of the last record of the page.
    - `has_previous_page` boolean: Whether records exist before this page; pass start_cursor as before to load them.
    - `has_next_page` boolean: Whether records exist after this page; pass end_cursor as after to load them.
  - `total` integer: Number of records that match the request, across all pages.

## Other responses

- `400`: Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`.
- `401`: Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED).
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
