Webhooks
Webhook subscription management
Get all webhooks for current user
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Query Parameters
isActivebooleanWebhookViewArray
Create a new webhook
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequirednameRequiredstringWebhook name
descriptionstringWebhook description
urlRequiredstringWebhook endpoint URL
"uri"eventsRequiredarray<string>Events to subscribe to
headersobjectCustom headers to send with requests
isActivebooleanIs webhook active
trueretryAttemptsnumberNumber of retry attempts on failure
3Minimum: 0Maximum: 10retryDelaySecondsnumberDelay between retries in seconds
60Minimum: 10Maximum: 3600payloadVersionnumberPayload format: 2 = versioned envelope {id,type,version,occurredAt,organizationId,data}; 1 = legacy {event,eventId,timestamp,data}
2Value in: 1 | 2secretstringSigning secret (16–128 chars). Generated (whsec_…) when omitted.
16Maximum length: 128namedCredentialIdstringNamed credential whose auth is added to every delivery; the URL must sit under its base URL. Empty string clears it.
WebhookWithSecret
Get list of available webhook events
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Get webhook statistics
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Get a webhook by ID
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringWebhookWithSecret
Update a webhook
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequirednamestringWebhook name
descriptionstringWebhook description
urlstringWebhook endpoint URL
"uri"eventsarray<string>Events to subscribe to
headersobjectCustom headers to send with requests
isActivebooleanIs webhook active
retryAttemptsnumberNumber of retry attempts on failure
0Maximum: 10retryDelaySecondsnumberDelay between retries in seconds
10Maximum: 3600payloadVersionnumberPayload format: 2 = versioned envelope {id,type,version,occurredAt,organizationId,data}; 1 = legacy {event,eventId,timestamp,data}
2Value in: 1 | 2namedCredentialIdstringNamed credential whose auth is added to every delivery; the URL must sit under its base URL. Empty string clears it.
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255WebhookView
Delete a webhook
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringSuccessResponse
Activate a webhook
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255WebhookView
Deactivate a webhook
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255WebhookView
Regenerate webhook secret
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringWebhookSecretRotated
Send a test event (the catalog sample for `type`)
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredtypestringCatalog event type whose sample payload is sent (defaults to the first subscribed event)
eventDeprecatedstringOlder clients sent event.
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255WebhookTestResult
Delivery attempts, newest first (paged)
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringQuery Parameters
successbooleanstatusstring"SUCCEEDED" | "RETRYING" | "FAILED"eventstringeventIdstringpagenumberlimitnumberWebhookDeliveryPage
One delivery attempt: request headers and body, response
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringdeliveryIdRequiredstringWebhookDelivery
Re-send a delivery with the same event id (receivers can dedupe)
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringdeliveryIdRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255WebhookDelivery
Stream live catalog events as Server-Sent Events (text/event-stream); each `event` frame is the webhook envelope body
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredeventsarray<string>Catalog event types to stream (e.g. lead.created, opportunity.*); all when omitted Items: at most 64.
text/event-stream: ready, then event frames (data = webhook envelope JSON), dropped, end
Send an event type's catalog sample (test: true) to this org's listen sessions only
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredtypeRequiredstringCatalog event type; its catalog sample is sent, flagged test: true
80Header Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255