Create a webhook endpoint
Registers an organization-wide endpoint and returns its signing secret exactly once, in the secret field: no later read shows it again. A secret that was lost, or has leaked, is replaced with POST /webhook-endpoints/{endpoint_id}/rotate-secret, which keeps the old one verifying for a grace period while you deploy the new one. subscriptions must name at least one event type. Setting payload to full puts the whole email on email.received and email.sent, as data.email, so a handler does not have to fetch it. Optional routing rules narrow delivery by sender or recipient: a matching block rule always wins, and an empty allow list means no opinion. The endpoint receives every space’s events, each stamped with its space_id.
/webhook-endpointsAuthorizationBearer token (API key) · headerrequiredPass an AI Inbx API key as a Bearer token.
AIInbx-WorkspacestringWorkspace id from GET /workspaces, for an OAuth token that reaches several.
application/jsonurlstring<uri>requiredWhere deliveries are POSTed.
enabledbooleanWhether the endpoint receives deliveries.
subscriptionsstring[]requiredThe event types to deliver, at least one.
routingobject[]Rules that narrow delivery by sender or recipient, such as [{"effect":"block","field":"from","pattern":"..."}]. A matching block wins.
Show propertiesHide properties
objecteffectstringrequiredallowblockfieldstringrequiredfromtoeitherpatternstringrequiredmax_concurrencyintegerDeliveries in flight to this endpoint at once.
payloadstringHow much of a message email.received and email.sent carry. summary is the addresses, subject and snippet; full adds data.email, the email as GET /emails/{id}?include=attachment_content returns it, so a handler has no second call to make. Every other event is the same either way, and an endpoint whose format is v1 cannot be full.
summaryfullThe endpoint was created; save its secret now.
idstringrequiredurlstring<uri>requiredenabledbooleanrequiredformatstringrequiredRead-only. v1 marks an endpoint carried over from the previous aiinbx.com: it receives that system's bodies and can subscribe only to the events it had — email.received, email.delivered, email.bounced, email.complained, email.failed, email.opened, email.clicked. Endpoints created here are v2.
v2v1subscriptionsstring[]requiredroutingobject[]requiredShow propertiesHide properties
objecteffectstringrequiredallowblockfieldstringrequiredfromtoeitherpatternstringrequiredmax_concurrencyintegerrequiredpayloadstringrequiredHow much of a message email.received and email.sent carry. summary is the addresses, subject and snippet; full adds data.email, the email as GET /emails/{id}?include=attachment_content returns it, so a handler has no second call to make. Every other event is the same either way, and an endpoint whose format is v1 cannot be full.
summaryfullprevious_secret_expires_atstring<date-time> | nullrequiredShow propertiesHide properties
string<date-time>nullcreated_atstring<date-time>requiredupdated_atstring<date-time>requiredsecretstringrequiredThe request is invalid.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe API key is missing or invalid.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe workspace has no plan (plan_required), or its plan's allowance is used up (allowance_reached).
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe API key or token does not have the required scope, or the token is connected as an inbox and the operation is not one an inbox may use.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe requested resource does not exist.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request conflicts with the resource's current state.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request body or attachments are too large.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request body is not JSON.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request body failed validation.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe organisation's request budget is spent (too_many_requests), or an upstream mail provider is throttling (rate_limited).
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredAn internal error occurred.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredAn upstream mail provider failed.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe service is temporarily unavailable.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequired