Webhooks only. The signing secret is generated by Outpost, which never
returns it again, so it is on the result once. A customer with no tenant
gets TENANT_NOT_FOUND: onboarding owns tenant creation.
False when the subscription does not exist.
With tenant_id, Outpost answers 404 for an attempt of another tenant.
With tenant_id, Outpost answers 404 for an event of another tenant.
Outpost answers 404 for a destination of another tenant.
Re-sends an event to a subscription that already has a delivery of it. Outpost's retry takes no tenant, so ownership is proved first with a tenant-scoped read of the deliveries: an event or subscription of another customer, or one never delivered, has none and returns null without calling Outpost's retry.
Outpost's attempts, newest first, each with its event summary. GET /attempts is admin-only and spans every tenant unless tenant_id is set.
OptionalcreatedAfter?: stringRFC 3339, inclusive
OptionalcreatedBefore?: stringRFC 3339, inclusive
Optionalcursor?: stringOptionaleventId?: stringOptionalpageSize?: numberOptionalstatus?: "SUCCEEDED" | "FAILED"OptionalsubscriptionId?: stringOptionaltopic?: stringNewest first, cursor-paginated: Outpost returns no total. GET /events is
admin-only and spans every tenant unless tenant_id is set.
Every subscription in one page: Outpost does not paginate destinations.
Null when the subscription does not exist. Enabling an enabled one is a no-op.
A merge-patch of a webhook: metadata keys set to null are removed, and
filter: null clears the filter. Null when the subscription does not exist.
Hookdeck Outpost, one customer at a time: a customer's Outpost tenant id is its external id (
cust_…). Our key is an admin key that can read every tenant, so every call passescustomerIdas the tenant.What Outpost refuses is returned:
TENANT_NOT_FOUND,INVALID_*_SEARCHandHOOKDECK_OUTPOST_ERRORfor any other 4xx; a get reads its 404 asnull. A fault (network, 401/403, 429, 5xx) throws a plainError.