---
title: "Register dynamic webhooks"
method: POST
path: "/rest/api/3/webhook"
tags: ["Webhooks"]
---

# Register dynamic webhooks

`POST /rest/api/3/webhook`

Registers webhooks.

**NOTE:** for non-public OAuth apps, webhooks are delivered only if there is a match between the app owner and the user who registered a dynamic webhook.

**[Permissions](#permissions) required:** Only [Connect](https://developer.atlassian.com/cloud/jira/platform/#connect-apps) and [OAuth 2.0](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps) apps can use this operation.

## Request body

- WebhookRegistrationDetails — Details of webhooks to register.
  - `url` string, required — The URL that specifies where to send the webhooks. This URL must use the same base URL as the Connect app. Only a single URL per app is allowed to be registered.
  - `webhooks` WebhookDetails[], required — A list of webhooks.
    - `events` string[], required — The Jira events that trigger the webhook.
    - `fieldIdsFilter` string[] — A list of field IDs. When the issue changelog contains any of the fields, the webhook `jira:issue_updated` is sent. If this parameter is not present, the app is notified about all field updates.
    - `issuePropertyKeysFilter` string[] — A list of issue property keys. A change of those issue properties triggers the `issue_property_set` or `issue_property_deleted` webhooks. If this parameter is not present, the app is notified about all issue property updates.
    - `jqlFilter` string, required — The JQL filter that specifies which issues the webhook is sent for. Only a subset of JQL can be used. The supported elements are: * Fields: `issueKey`, `project`, `issuetype`, `status`, `assignee`, `reporter`, `issue.property`, and `cf[id]`. For custom fields (`cf[id]`), only the epic label custom field is supported.". * Operators: `=`, `!=`, `IN`, and `NOT IN`.

## Response `200`

Returned if the request is successful.

- ContainerForRegisteredWebhooks — Container for a list of registered webhooks. Webhook details are returned in the same order as the request.
  - `webhookRegistrationResult` RegisteredWebhook[] — A list of registered webhooks.
    - `createdWebhookId` integer — The ID of the webhook. Returned if the webhook is created.
    - `errors` string[] — Error messages specifying why the webhook creation failed.

## Other responses

- `400` — Returned if the request is invalid.
- `403` — Returned if the caller isn't an app.

---

[API](https://skmtc.net/atlassian/apis/the-jira-cloud-platform-rest-api-2.md) · [All operations](https://skmtc.net/atlassian/apis/the-jira-cloud-platform-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atlassian/the-jira-cloud-platform-rest-api-2/versions/5a51740d7ab3/schema)
