Returns all registered webhooks
GET/unified/webhook
Parameters
limitnumber default=100
offsetnumber default=0
updated_gtedate-time
Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
sort enum
order enum
object enum
Filter the results for webhooks for only this object
integration_typestring
Filter the results to just this integration
connection_idstring
Filter the results to just this integration
created_ltedate-time
Return only results whose created date is equal or less to this value
envstring default=Production
is_healthyboolean
Filter by health. Omit to return all.
Returns
Webhookarray
A webhook is used to POST new, updated, or deleted records to your server.
idstring read-only
created_atdate-time read-only
(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atdate-time read-only
(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
workspace_idstring read-only
(reference to KmsSpace)
connection_idstring required
hook_urlstring
The URL of the webhook
object_type enum required
Valid values:
The object to return (eg. CRM "contact")
intervalnumber
Virtual webhooks only. How often (in minutes) Unified.to checks for new or updated records. Minimum 1 on paid plans, 60 on free. Ignored for native webhooks.
checked_atdate-time read-only
Read-only. The time Unified.to last recorded a check on this webhook. Behaviour varies by webhook implementation, so don't use this field to tell whether a webhook is still running. Use is_healthy, and subscribe to WEBHOOK_UNHEALTHY on the notifications webhook, to monitor health. (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
integration_typestring read-only
environmentstring read-only
event enum required
Valid values:
"updated"
"created"
"deleted"
The event to subscribe to. "deleted" is supported on native webhooks, and on virtual webhooks where the integration supports it. Check the integration's Feature Support tab.
runsstring array read-only
An array of the most recent virtual webhook runs
fieldsstring
webhook_type enum
Valid values:
"virtual"
"native"
"native" registers with the integration, which sends events as they happen. "virtual" checks for changes on "interval". Optional on create; if omitted, Unified.to picks a supported type for the object. Requesting a type the integration doesn't support returns 400. Set on create only: changes sent on update are ignored without an error. Delete and recreate the webhook to change type.
is_healthyboolean read-only
Read-only. True while the webhook can operate or recover; a transient failure may still be retrying. False after retries are exhausted or a non-retryable failure such as broken connection auth. Cannot be reset; recreate the webhook.
page_max_limitnumber
filtersstring dictionary
Supported on virtual webhooks, and on native webhooks for many integrations. Check the integration's Feature Support tab for which filters apply. Filters the integration doesn't support are accepted but have no effect. Some integrations require a filter; if it's missing, create returns an error naming the integration and the filter.
db_urlstring
db_schemastring
db_name_prefixstring
is_pausedboolean
Errors
Errors return the HTTP status code and a JSON body with statusCode, error (the short label) and message (a human-readable detail).
{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Too many requests to unified.to API; max requests per minute: N"
}| Status | Error | Meaning |
|---|---|---|
400 | Bad Request | The request was malformed or failed validation. |
401 | Unauthorized | The connection is likely broken; re-authorize it. |
403 | Forbidden | The connection is missing permissions or scopes. |
404 | Not Found | The requested resource does not exist. |
429 | Too Many Requests | Rate limit exceeded (see the two sources below). |
500 | Internal Server Error | An unexpected error occurred. |
501 | Not Implemented | Not supported by this integration. |
Errors from the underlying integration pass through: the integration's status comes back as ours (429, 401, 403, 404 or 5xx), usually with its message. When the integration's error body is unclear, Unified extracts what it can and returns a clearer message.
429 Too Many Requests
A 429 has two possible sources:
- The integration's own rate limit, passed through.
- Unified's workspace limit: a rolling 60 seconds, set by plan, with the message
Too many requests to unified.to API; max requests per minute: N.
const options = {
method: 'GET',
url: 'https://api.unified.to/unified/webhook',
headers: {
authorization: 'bearer .....'
},
params: {
limit: 50,
offset: 0,
updated_gte: '2026-10-17T18:23:56.292Z',
sort: 'updated_at',
order: 'asc',
object: '',
integration_type: '',
connection_id: '',
created_lte: '2026-10-17T18:23:56.293Z',
env: 'Production',
is_healthy: false,
}
};
const results = await axios.request(options); Are we missing anything? Let us know