Skip to main content
POST
/
v1
/
webhook-endpoints
Register a webhook endpoint
curl --request POST \
  --url https://api.letmepost.dev/v1/webhook-endpoints \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "https://hooks.example.com/letmepost",
  "events": [
    "post.published",
    "post.failed"
  ],
  "description": "Production publish notifications."
}
'
{
  "id": "<string>",
  "url": "<string>",
  "events": [],
  "active": true,
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "signingSecret": "whsec_…",
  "description": "<string>",
  "lastDeliveryAt": "2023-11-07T05:31:56Z",
  "lastFailureReason": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt

Use this file to discover all available pages before exploring further.

Headers

Idempotency-Key
string

Recommended on every write. Replays within 24 hours return the original response; conflicting bodies surface as 409 idempotency_conflict. See Idempotency.

Required string length: 1 - 128
Example:

"post-launch-2026-05-15-001"

Body

application/json
url
string<uri>
required
Example:

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

events
enum<string>[]

Empty array subscribes the endpoint to every event type.

Available options:
post.queued,
post.validated,
post.published,
post.rejected,
post.failed,
token.expiring,
token.revoked,
version.deprecated
description
string
Maximum string length: 500

Response

Endpoint created. signingSecret shown once.

id
string
required
url
string<uri>
required
events
enum<string>[]
required
Available options:
post.queued,
post.validated,
post.published,
post.rejected,
post.failed,
token.expiring,
token.revoked,
version.deprecated
active
boolean
required
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
signingSecret
string
required

HMAC-SHA256 signing secret — returned once at creation. Used to verify every delivery's X-Letmepost-Signature header.

Example:

"whsec_…"

description
string | null
lastDeliveryAt
string<date-time> | null
lastFailureReason
string | null