Skip to main content
POST
/
api
/
v1
/
webhooks
Register webhook
curl --request POST \
  --url https://shelfforce.ai/api/v1/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "<string>",
  "events": [
    "analysis.completed"
  ],
  "description": "<string>"
}
'
{
  "data": {
    "id": "<string>",
    "url": "<string>",
    "events": [
      "<string>"
    ],
    "secret": "<string>",
    "status": "active",
    "createdAt": "2023-11-07T05:31:56Z"
  }
}

Authorizations

Authorization
string
header
required

API key with sf_live_ prefix. Pass as Authorization: Bearer sf_live_...

Headers

Idempotency-Key
string

Unique key for idempotent requests. If a request with the same key was already processed within the last 24 hours, the cached response is returned with X-Idempotent-Replayed: true.

Example:

"idk_550e8400-e29b-41d4-a716-446655440000"

Body

application/json
url
string<uri>
required

HTTPS URL to receive webhook POST requests.

Example:

"https://api.example.com/webhooks/shelfforce"

events
enum<string>[]
required

Events to subscribe to. Use * for all events.

Minimum array length: 1
Available options:
analysis.completed,
analysis.failed,
task.created,
task.completed,
task.updated,
*
Example:
["analysis.completed", "analysis.failed"]
description
string

Human-readable label for the endpoint.

Example:

"Production analysis handler"

Response

Webhook endpoint registered. The secret field is shown only in this response.

data
object
required