Skip to content

Create a webhook for a repository

POST
/repositories/{workspace}/{repo_slug}/hooks

Creates a new webhook on the specified repository.

Example:

$ curl -X POST -u credentials -H 'Content-Type: application/json'
  https://api.bitbucket.org/2.0/repositories/my-workspace/my-repo-slug/hooks
  -d '
    {
      "description": "Webhook Description",
      "url": "https://example.com/",
      "active": true,
      "secret": "this is a really bad secret",
      "events": [
        "repo:push",
        "issue:created",
        "issue:updated"
      ]
    }'

When the secret is provided it will be used as the key to generate a HMAC digest value sent in the X-Hub-Signature header at delivery time. Passing a null or empty secret or not passing a secret will leave the webhook’s secret unset. Bitbucket only generates the X-Hub-Signature when the webhook’s secret is set.

Note that this call requires the webhook scope, as well as any scope that applies to the events that the webhook subscribes to. In the example above that means: webhook, repository and issue.

Also note that the url must properly resolve and cannot be an internal, non-routed address.

repo_slug
required
string

This can either be the repository slug or the UUID of the repository, surrounded by curly-braces, for example: {repository UUID}.

workspace
required
string

This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: {workspace UUID}.

If the webhook was registered successfully.

Media type application/json
object
type
required
string
uuid

The webhook’s id

string
url

The URL events get delivered to.

string format: uri
description

A user-defined description of the webhook.

string
subject_type

The type of entity. Set to either repository or workspace based on where the subscription is defined.

string
Allowed values: repository workspace
subject

Base type for most resource objects. It defines the common type element that identifies an object’s type. It also identifies the element as Swagger’s discriminator.

object
type
required
string
key
additional properties
any
active
boolean
created_at
string format: date-time
events

The events this webhook is subscribed to.

Array<string>
>= 1 items unique items
Allowed values: issue:comment_created issue:created issue:updated pipeline:span_created project:updated pullrequest:approved pullrequest:changes_request_created pullrequest:changes_request_removed pullrequest:comment_created pullrequest:comment_deleted pullrequest:comment_reopened pullrequest:comment_resolved pullrequest:comment_updated pullrequest:created pullrequest:fulfilled pullrequest:push pullrequest:rejected pullrequest:unapproved pullrequest:updated repo:commit_comment_created repo:commit_status_created repo:commit_status_updated repo:created repo:deleted repo:fork repo:imported repo:push repo:transfer repo:updated
secret_set

Indicates whether or not the hook has an associated secret. It is not possible to see the hook’s secret. This field is ignored during updates.

boolean
secret

The secret to associate with the hook. The secret is never returned via the API. As such, this field is only used during updates. The secret can be set to null or “” to remove the secret (or create a hook with no secret). Leaving out the secret field during updates will leave the secret unchanged. Leaving out the secret during creation will create a hook with no secret.

string
0 <= 128 characters
Example
{
"subject_type": "repository",
"events": [
"issue:comment_created"
]
}
Location
string

The URL of new newly created webhook.

If the authenticated user does not have permission to install webhooks on the specified repository.

Media type application/json
Error

Base type for most resource objects. It defines the common type element that identifies an object’s type. It also identifies the element as Swagger’s discriminator.

object
type
required
string
error
object
message
required
string
detail
string
data

Optional structured data that is endpoint-specific.

object
key
additional properties
any
key
additional properties
any
Example generated
{
"type": "example",
"error": {
"message": "example",
"detail": "example",
"data": {}
}
}

If the repository does not exist.

Media type application/json
Error

Base type for most resource objects. It defines the common type element that identifies an object’s type. It also identifies the element as Swagger’s discriminator.

object
type
required
string
error
object
message
required
string
detail
string
data

Optional structured data that is endpoint-specific.

object
key
additional properties
any
key
additional properties
any
Example generated
{
"type": "example",
"error": {
"message": "example",
"detail": "example",
"data": {}
}
}