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:
"accounting_account"
"accounting_transaction"
"accounting_journal"
"accounting_contact"
"accounting_invoice"
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_type enum
Valid values:
"mongodb"
"mysql"
"postgres"
"mssql"
"mariadb"
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"
}
StatusErrorMeaning
400Bad RequestThe request was malformed or failed validation.
401UnauthorizedThe connection is likely broken; re-authorize it.
403ForbiddenThe connection is missing permissions or scopes.
404Not FoundThe requested resource does not exist.
429Too Many RequestsRate limit exceeded (see the two sources below).
500Internal Server ErrorAn unexpected error occurred.
501Not ImplementedNot 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
Was this page helpful?