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": [
    "shelf.ready"
  ],
  "url": "<string>"
}
'
{
  "createdAt": "2023-11-07T05:31:56Z",
  "events": [
    "shelf.ready"
  ],
  "publicId": "<string>",
  "secret": "<string>",
  "url": "<string>",
  "userId": "<string>"
}

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