Skip to content
Browse documentation

OpenAPI operations

Publish an event over the API

POST
/v1/endpoints/{id}/events
curl --request POST \
--url https://api.hooks.events/v1/endpoints/example/events \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "payload": "example", "eventType": "example", "headers": { "additionalProperty": "example" }, "idempotencyKey": "example", "deliverAt": "2026-04-15T12:00:00Z" }'

API-key authentication replaces the inbound webhook signature. The event runs through the same normalization, filters, quota, fan-out and task triggers as /in/{publicId}. Send Idempotency-Key (or idempotencyKey) to collapse retries into the first event.

Requires the endpoints:write scope.

id
required
string
Media typeapplication/json
object
payload
required
eventType
string
>= 1 characters <= 200 characters
headers
object
key
additional properties
string
<= 4000 characters
idempotencyKey
string
>= 1 characters <= 200 characters
deliverAt

ISO 8601 UTC time for the first delivery attempt; past values deliver now

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$/

Example generated

{
"payload": "example",
"eventType": "example",
"headers": {
"additionalProperty": "example"
},
"idempotencyKey": "example",
"deliverAt": "2026-04-15T12:00:00Z"
}

Success

Media typeapplication/json

Published event ingest result

object
eventId
required
string
status
required
string
Allowed values: accepted filtered duplicate rate_limited
reason

Filter reason when status is filtered

string
rejections

Per-destination filter rejections

Array
key
additional properties

Example

{
"status": "accepted"
}

Validation error

Media typeapplication/json
object
error
required
object
code
required

Machine-readable error code

string
message
required
string
requestId
required

Request id, also echoed in x-request-id

string
key
additional properties

Example generated

{
"error": {
"code": "example",
"message": "example",
"requestId": "example"
}
}

Missing or invalid credentials

Media typeapplication/json
object
error
required
object
code
required

Machine-readable error code

string
message
required
string
requestId
required

Request id, also echoed in x-request-id

string
key
additional properties

Example generated

{
"error": {
"code": "example",
"message": "example",
"requestId": "example"
}
}

The credential lacks the required scope, or the workspace is not writable

Media typeapplication/json
object
error
required
object
code
required

Machine-readable error code

string
message
required
string
requestId
required

Request id, also echoed in x-request-id

string
key
additional properties

Example generated

{
"error": {
"code": "example",
"message": "example",
"requestId": "example"
}
}

Resource not found

Media typeapplication/json
object
error
required
object
code
required

Machine-readable error code

string
message
required
string
requestId
required

Request id, also echoed in x-request-id

string
key
additional properties

Example generated

{
"error": {
"code": "example",
"message": "example",
"requestId": "example"
}
}

Rate limited

Media typeapplication/json
object
error
required
object
code
required

Machine-readable error code

string
message
required
string
requestId
required

Request id, also echoed in x-request-id

string
key
additional properties

Example generated

{
"error": {
"code": "example",
"message": "example",
"requestId": "example"
}
}
X-RateLimit-Limit
integer

Requests allowed per window

X-RateLimit-Remaining
integer
X-RateLimit-Reset
integer

Seconds until the window resets