Deliver a signed payload to one workflow.
Send webhook-id (1-256 URL-safe characters), webhook-timestamp (Unix seconds), and webhook-signature (lowercase hex HMAC-SHA256). Sign exact bytes: deliveryId + "." + timestamp + "." + raw body. Timestamps must be within five minutes; delivery IDs are single-use for the endpoint, including after secret rotation.
orgId*string1 <= length <= 256workflowId*string1 <= length <= 256endpointId*string1 <= length <= 256application/json- body
[key: string]?unknownWorkflow instance created.
application/json- response
instanceId*stringworkflowId*stringstatus*stringcurl -X POST 'https://app.rensei.ai/api/webhooks/workflows/string/string/string' \ -H 'Content-Type: application/json' \ -d '{ "property1": null, "property2": null}'{ "instanceId": "string", "workflowId": "string", "status": "pending"}Inbound webhook from incident.io
Dedicated ingest endpoint for incident.io webhooks. Streams the exact provider-signed bytes under a hard 1 MiB cap before strictly decoding UTF-8. Validates the Svix `webhook-id`, `webhook-timestamp`, and `webhook-signature` headers, including a five-minute replay window, and routes only when exactly one connected per-org encrypted signing secret matches. Handles `incident.created`, `incident.updated`, and `incident.resolved` events. Unknown event types return `{ ok: true, skipped: true }`. Missing, stale, malformed, duplicate, undecryptable, or over-cap candidate state fails closed with 401. `WEBHOOK_SECRET_INCIDENT_IO` is a bounded legacy fallback for exactly one connected env-only row and is never an alternate key for connected per-org rows.
API Key Authentication
rsk_ API key management.