Skip to main content
POST
/
v1
/
webhooks
Create a webhook
curl --request POST \
  --url https://api.shelv.dev/v1/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "events": [],
  "url": "<string>"
}
'
import requests

url = "https://api.shelv.dev/v1/webhooks"

payload = {
    "events": [],
    "url": "<string>"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({events: [], url: '<string>'})
};

fetch('https://api.shelv.dev/v1/webhooks', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({events: [], url: '<string>'})
};

fetch('https://api.shelv.dev/v1/webhooks', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "createdAt": "2023-11-07T05:31:56Z",
  "events": [],
  "publicId": "<string>",
  "secret": "<string>",
  "url": "<string>",
  "userId": "<string>"
}
{
  "code": "<string>",
  "message": "<string>",
  "details": "<unknown>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
events
enum<string>[]
required
Minimum array length: 1
Available options:
shelf.ready,
shelf.failed,
shelf.review
url
string<uri>
required

Webhook endpoint URL. In production, URLs must use https://, avoid URL credentials, use port 443 when explicit, and cannot use localhost/.localhost/.local hostnames. In non-production, http://localhost and http://.localhost are allowed for local testing.

Maximum string length: 2048

Response

Webhook created (includes signing secret)

createdAt
string<date-time>
required
events
enum<string>[]
required
Available options:
shelf.ready,
shelf.failed,
shelf.review
publicId
string
required
Pattern: ^wh_[0-9a-f]{24}$
secret
string
required
url
string<uri>
required

Webhook endpoint URL. In production, URLs must use https://, avoid URL credentials, use port 443 when explicit, and cannot use localhost/.localhost/.local hostnames. In non-production, http://localhost and http://.localhost are allowed for local testing.

Maximum string length: 2048
userId
string
required