Skip to content

Create an organization webhook

POST
/orgs/{org}/hooks

Create a hook that posts payloads in JSON format.

You must be an organization owner to use this endpoint.

OAuth app tokens and personal access tokens (classic) need admin:org_hook scope. OAuth apps cannot list, view, or edit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.

API method documentation

org
required
string

The organization name. The name is not case sensitive.

Media type application/json
object
name
required

Must be passed as “web”.

string
config
required

Key/value pairs to provide settings for this webhook.

object
url
required

The URL to which the payloads will be delivered.

string format: uri
content_type

The media type used to serialize the payloads. Supported values include json and form. The default is form.

string
secret

If provided, the secret will be used as the key to generate the HMAC hex digest value for delivery signature headers.

string
insecure_ssl
One of:

Determines whether the SSL certificate of the host for url will be verified when delivering payloads. Supported values include 0 (verification is performed) and 1 (verification is not performed). The default is 0. We strongly recommend not setting this to 1 as you are subject to man-in-the-middle and other attacks.

string
username
string
password
string
events

Determines what events the hook is triggered for. Set to ["*"] to receive all possible events.

Array<string>
default: push
active

Determines if notifications are sent when the webhook is triggered. Set to true to send notifications.

boolean
default: true
Examples
Example default
{
"name": "web",
"active": true,
"events": [
"push",
"pull_request"
],
"config": {
"url": "http://example.com/webhook",
"content_type": "json"
}
}

Response

Media type application/json
Org Hook

Org Hook

object
id
required
integer
url
required
string format: uri
ping_url
required
string format: uri
deliveries_url
string format: uri
name
required
string
events
required
Array<string>
active
required
boolean
config
required
object
url
string
insecure_ssl
string
content_type
string
secret
string
updated_at
required
string format: date-time
created_at
required
string format: date-time
type
required
string
Examples
Example default
{
"id": 1,
"url": "https://api.github.com/orgs/octocat/hooks/1",
"ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
"deliveries_url": "https://api.github.com/orgs/octocat/hooks/1/deliveries",
"name": "web",
"events": [
"push",
"pull_request"
],
"active": true,
"config": {
"url": "http://example.com",
"content_type": "json"
},
"updated_at": "2011-09-06T20:39:23Z",
"created_at": "2011-09-06T17:26:27Z",
"type": "Organization"
}
Location
string
Example
https://api.github.com/orgs/octocat/hooks/1

Resource not found

Media type application/json
Basic Error

Basic Error

object
message
string
documentation_url
string
url
string
status
string
Example generated
{
"message": "example",
"documentation_url": "example",
"url": "example",
"status": "example"
}

Validation failed, or the endpoint has been spammed.

Media type application/json
Validation Error

Validation Error

object
message
required
string
documentation_url
required
string
errors
Array<object>
object
resource
string
field
string
message
string
code
required
string
index
integer
value
One of:
string
nullable
Example generated
{
"message": "example",
"documentation_url": "example",
"errors": [
{
"resource": "example",
"field": "example",
"message": "example",
"code": "example",
"index": 1,
"value": [
"example"
]
}
]
}