Skip to main content
POST
Create webhook endpoint

Authorizations

Authorization
string
header
required

Pass Authorization: Bearer scripe_sk_live_<...> (or scripe_sk_test_<...> for test keys) on every request. Keys are scoped to a single workspace and can be revoked from the Scripe dashboard.

Headers

Scripe-Api-Version
string

Pin the API version. Format YYYY-MM-DD. Omit to receive the currently rolling default. Unknown versions return 400 version_unsupported.

Example:

"2026-08-01"

Idempotency-Key
string

Opaque string (1–64 chars, [A-Za-z0-9_-]) used to dedup retried writes. Within 24h of the first request, the same key

  • same body returns the original response (Idempotent-Replayed: true). Same key + different body returns 409 idempotency_key_conflict.

Strongly recommended for every write — see /docs/api/v1/idempotency.

Pattern: ^[A-Za-z0-9_-]{1,64}$

Body

application/json
name
string
required
Required string length: 1 - 128
Example:

"Production CRM"

url
string<uri>
required
Maximum string length: 1024
Example:

"https://hooks.example.com/scripe"

events
enum<string>[]
required
Minimum array length: 1

Closed list of subscribable events. Adding a new event name is a contract change — bump the docs + this enum in lockstep with the producer.

Available options:
note.created,
post.created,
post.updated,
post.scheduled,
post.unscheduled,
source.created,
job.completed,
job.failed,
knowledge.indexed
Example:
projectId
string | null

Optional project scope. When set, the endpoint only receives events for that project. null (default) delivers events for every project in the workspace.

Example:

"proj_a1b2c3d4e5f6g7h8"

Response

Endpoint created. Response carries the plaintext secret.

data
object
required

Display-safe shape of a webhook endpoint. The plaintext signing secret is never present here — only secretLast4. Use WebhookEndpointWithSecret (returned by create + rotate) when the plaintext matters.