List all webhooks
GEThttps://api.postpress.ai/v1/webhooks
Returns a paginated list of the webhooks registered on your postpress account. Each item is either an automatic webhook (`type: AUTO`) wired to account events, or a manual trigger (`type: TRIGGER`) fired from a chat or message context.
Authorization
X-API-KEYstringrequired
API key from your postpress dashboard. Sent as a request header.
Query parameters
limitintegeroptional
1 to 250. Defaults to 100.
cursorstringoptional
Pagination cursor returned by a previous call.
Response 200 OK
objectstringWebhookListrequireditemsarray of objectsrequireditems object
(variant) AUTO webhookobjectStandard auto-fired webhook triggered by account/messaging/calendar events.
(variant) AUTO webhook object
objectstringWebhookrequiredidstringrequirednamestringDisplay name.
enabledbooleanrequiredrequest_urlstringrequiredURL postpress will POST to.
formatstringrequiredjsonformEncoding of the delivered payload.
account_idsarray of objectsrequiredAccounts this webhook listens on.
account_ids object
idstringrequiredThe connected account id.
namestringtypestringrequiredGOOGLEGOOGLE_CALENDARICLOUDLINKEDINMAILMOBILEOUTLOOKTWITTERWHATSAPPSLACKTELEGRAMheadersarray of objectsrequiredExtra HTTP headers postpress will send.
headers object
keystringrequiredvaluestringrequireddataarray of objectsrequiredPayload field mapping. The allowed `key` values depend on the event family.
data object
namestringrequiredOutput property name. Overrides the original key name in the payload.
keystringrequiredSource field to include. Allowed values depend on the event family (messaging, relation, mail, mail tracking, calendar).
eventsarray of stringsmessage_receivedmessage_readmessage_reactionmessage_editedmessage_deletedmessage_deliverednew_relationmail_sentmail_receivedmail_movedmail_openedmail_link_clickedcreation_successcreation_faildeletedreconnectedsync_successstoppedokconnectingerrorcredentialspermissionscalendar_event_createdcalendar_event_updatedcalendar_event_deletedEvents this webhook subscribes to.
typestringAUTOrequired(variant) TRIGGER webhookobjectUser-defined trigger fired from the chat surface (message or chat context).
(variant) TRIGGER webhook object
objectstringWebhookrequiredidstringrequirednamestringDisplay name.
enabledbooleanrequiredrequest_urlstringrequiredURL postpress will POST to.
formatstringrequiredjsonformEncoding of the delivered payload.
account_idsarray of objectsrequiredAccounts this webhook listens on.
account_ids object
idstringrequiredThe connected account id.
namestringtypestringrequiredGOOGLEGOOGLE_CALENDARICLOUDLINKEDINMAILMOBILEOUTLOOKTWITTERWHATSAPPSLACKTELEGRAMheadersarray of objectsrequiredExtra HTTP headers postpress will send.
headers object
keystringrequiredvaluestringrequireddataarray of objectsrequiredPayload field mapping. The allowed `key` values depend on the event family.
data object
namestringrequiredOutput property name. Overrides the original key name in the payload.
keystringrequiredSource field to include. Allowed values depend on the event family (messaging, relation, mail, mail tracking, calendar).
eventsarray of stringsmessage_receivedmessage_readmessage_reactionmessage_editedmessage_deletedmessage_deliverednew_relationmail_sentmail_receivedmail_movedmail_openedmail_link_clickedcreation_successcreation_faildeletedreconnectedsync_successstoppedokconnectingerrorcredentialspermissionscalendar_event_createdcalendar_event_updatedcalendar_event_deletedEvents this webhook subscribes to.
typestringTRIGGERrequiredtriggerobjectrequiredtrigger object
iconstringrequiredWebhookIconSettingsInputIconLeakAddIconDiversity2IconAutoFixHighIconSignPostIconShutterSpeedIconSyncAltIconWhatsAppIconLinkedInIconImportExportIconPodcastsIconCableIconCalendarIconnamestringrequiredcontextstringrequiredMESSAGECHATcursorstringrequiredPagination cursor. `null` on the last page.
Example request
curl --request GET \
--url 'https://api.postpress.ai/api/v1/webhooks?limit=100' \
--header 'X-API-KEY: pp_live_...' \
--header 'accept: application/json'Example response
{
"object": "WebhookList",
"items": [
{
"object": "Webhook",
"id": "wh_01HXYZ4QK3WJ8FN3M6QH7TZ8GR",
"name": "Inbound DMs - production",
"enabled": true,
"request_url": "https://app.example.com/hooks/postpress",
"format": "json",
"account_ids": [
{ "id": "acc_linkedin_01HXYZ4QK3WJ8FN3M6QH7TZ8GR", "name": "Jordan (LinkedIn)", "type": "LINKEDIN" }
],
"headers": [
{ "key": "Authorization", "value": "Bearer s3cr3t" }
],
"data": [
{ "name": "from", "key": "sender" },
{ "name": "body", "key": "message" },
{ "name": "chat", "key": "chat_id" },
{ "name": "subject", "key": "subject" }
],
"events": ["message_received", "message_reaction"],
"type": "AUTO"
},
{
"object": "Webhook",
"id": "wh_01HXYZ4QK3WJ8FN3M6QH7TZ8H7",
"name": "Send to CRM",
"enabled": true,
"request_url": "https://app.example.com/hooks/crm",
"format": "form",
"account_ids": [],
"headers": [],
"data": [
{ "name": "thread", "key": "chat_id" },
{ "name": "text", "key": "message" }
],
"events": [],
"type": "TRIGGER",
"trigger": {
"icon": "WebhookIcon",
"name": "Send to CRM",
"context": "CHAT"
}
}
],
"cursor": null
}Errors
Every error response follows the same envelope:
titlestringrequired
Short error title.
detailstringoptional
Human-readable explanation.
instancestringoptional
Request identifier for support.
typestringrequired
Error type identifier.
statusnumberrequired
HTTP status code.
400 Bad Request8 types
The query string is malformed or a parameter is invalid.
errors/invalid_parameters- One or more parameters are invalid.errors/malformed_request- The request is malformed.errors/content_too_large- The request is too large.errors/invalid_url- A URL field is invalid.errors/too_many_characters- A string field exceeds the allowed length.errors/unescaped_characters- A field contains characters that must be encoded.errors/missing_parameters- A required field is missing.errors/limit_too_high- `limit` exceeds 250.
401 Unauthorized13 types
API key is missing, expired, or otherwise invalid.
errors/missing_credentials- API key is missing from the request.errors/invalid_credentials- API key is invalid.errors/expired_credentials- API key has expired. Rotate it from the dashboard.errors/insufficient_privileges- This resource is out of your API-key scopes.errors/multiple_sessions- Multiple sessions detected on the same account.errors/wrong_account- The credentials do not match the correct account.errors/invalid_proxy_credentials- The provided proxy credentials are invalid.errors/invalid_checkpoint_solution- The checkpoint resolution did not pass successfully.errors/checkpoint_error- The checkpoint does not appear to be resolvable.errors/expired_link- This link has expired. Generate a new one.errors/disconnected_account- The account is disconnected from the provider service.errors/disconnected_feature- The feature you're trying to reach is disconnected.errors/invalid_credentials_but_valid_account_imap- IMAP/SMTP credentials are invalid but the account is otherwise valid.
403 Forbidden9 types
Authenticated but the action is not allowed on this account.
errors/insufficient_permissions- Insufficient permissions to perform the request.errors/account_restricted- The account has been restricted by the provider.errors/account_mismatch- This action cannot be done with your account.errors/unknown_authentication_context- An additional step seems necessary to complete login.errors/session_mismatch- Token user id does not match client session id.errors/feature_not_subscribed- The requested feature has not been subscribed.errors/subscription_required- A subscription is required to use this feature.errors/resource_access_restricted- You don't have access to this resource.errors/action_required- An additional step is required.
500 Internal Server Error3 types
Something went wrong on our side.
errors/unexpected_error- Something went wrong.errors/provider_error- The provider is experiencing operational problems. Retry later.errors/authentication_intent_error- The current authentication intent was killed after failure.
503 Service Unavailable5 types
postpress is temporarily unable to handle the request.
errors/no_client_session- No client session is currently running.errors/no_channel- No channel to client session.errors/no_handler- Handler missing for that request.errors/network_down- Network is down on the server side. Retry shortly.errors/service_unavailable- Service temporarily unavailable. Retry later.
504 Gateway Timeout1 types
The upstream provider did not respond in time.
errors/request_timeout- Request timed out. Retry, and contact support if it persists.
Updated May 2026