---
title: "Webhooks.create"
method: POST
path: "/entities/Webhooks"
tags: ["Webhook"]
---

# Webhooks.create

`POST /entities/Webhooks`

Creates new Webhook

## Query parameters

- `validation-level` integer

## Response `201`

Creation confirmation. Returns created Webhook

- object
  - `success` boolean — True when response succeeded, false on error.
  - `data` Webhook
    - `is_delete_protected` boolean, required — Tells if the entity instance is protected against delete (Entities that need to be present in the system at any time). Delete action still may fail if entity is deletable, due some other additional validations.
    - `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. Relation to Application. By default it is returned as URI to related resource. Using parameter 'expand', it will return full entity. See: 'Application' object for properties.
    - `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. Relation to Client. By default it is returned as URI to related resource. Using parameter 'expand', it will return full entity. See: 'Client' object for properties.
    - `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: http://pipeliner-api-doc.s3-website-eu-west-1.amazonaws.com/latest/rest/space/index.html 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.

## Other responses

- `500` — unexpected error

---

[API](https://skmtc.net/aws/apis/pipeliner-cloud-api.md) · [All operations](https://skmtc.net/aws/apis/pipeliner-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/pipeliner-cloud-api/versions/e8c12ae60aca/schema)
