Retrieve webhook by its ID
GET/unified/webhook/{id}
Parameters
idstring required
ID of the Webhook
Returns
| Response field | Type | Required | Description |
|---|---|---|---|
id | string | No | (read-only) |
created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) (read-only) |
updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) (read-only) |
workspace_id | string | No | (reference to KmsSpace) (read-only) |
connection_id | string | Yes | |
hook_url | string | No | The URL of the webhook |
object_type | enum | Yes | The object to return (eg. CRM "contact") Values: accounting_account, accounting_transaction, accounting_journal, accounting_contact, accounting_invoice, accounting_bill, accounting_vendorcredit, accounting_creditmemo, accounting_taxrate, accounting_paymentterm, accounting_organization, accounting_order, accounting_salesorder, accounting_salesreceipt, accounting_purchaseorder, accounting_balancesheet, accounting_profitloss, accounting_trialbalance, accounting_category, accounting_expense, accounting_expensereport, accounting_purchasereceipt, accounting_cashflow, accounting_quote, accounting_agedreceivable, accounting_agedpayable, accounting_project, accounting_bankfeedaccount, accounting_bankfeedtransaction, payment_payment, payment_link, payment_payout, payment_refund, payment_subscription, commerce_item, commerce_collection, commerce_inventory, commerce_location, commerce_review, commerce_saleschannel, commerce_itemvariant, commerce_reservation, commerce_availability, verification_package, verification_request, assessment_package, assessment_order, ats_activity, ats_application, ats_applicationstatus, ats_candidate, ats_document, ats_interview, ats_job, ats_scorecard, ats_company, crm_company, crm_contact, crm_deal, crm_event, crm_lead, crm_pipeline, crm_taxonomy, hris_employee, hris_group, hris_payslip, hris_timeoff, hris_company, hris_location, hris_device, hris_timeshift, hris_attendance, hris_deduction, hris_benefit, hris_bankaccount, hris_document, hris_taxonomy, hris_job, hris_payroll, hris_paycode, hris_earning, martech_list, martech_member, martech_campaign, martech_report, passthrough, ticketing_note, ticketing_ticket, ticketing_customer, ticketing_category, uc_contact, uc_call, uc_comment, uc_recording, uc_scorecard, uc_scorecardtemplate, enrich_person, enrich_company, storage_file, genai_model, genai_prompt, genai_embedding, genai_task, genai_agent, genai_organization, genai_skill, messaging_message, messaging_channel, messaging_event, kms_space, kms_page, kms_comment, task_project, task_task, task_comment, task_change, scim_users, scim_groups, lms_course, lms_class, lms_student, lms_instructor, lms_content, lms_collection, lms_activity, repo_organization, repo_repository, repo_branch, repo_commit, repo_pullrequest, metadata_metadata, calendar_calendar, calendar_event, calendar_busy, calendar_link, calendar_recording, calendar_webinar, ads_organization, ads_ad, ads_campaign, ads_report, ads_group, ads_creative, ads_asset, ads_insertionorder, ads_target, ads_promoted, analytics_property, analytics_event, analytics_session, analytics_visitor, analytics_report, forms_form, forms_submission, shipping_carrier, shipping_rate, shipping_shipment, shipping_label, shipping_tracking, signing_document, signing_signatory, signing_template, clubs_group, clubs_member, clubs_activity, clubs_location, clubs_event, datastore_database, datastore_table, datastore_record, datastore_query, cdp_profile, cdp_segment, cdp_event, cdp_source, cdp_destination, cdp_activation, performance_cycle, performance_review, performance_goal, performance_feedback, social_post, social_profile, social_review, social_insight, legal_matter, legal_practicearea, legal_timeentry, legal_expense, compute_instance, compute_template, compute_gputype, compute_region, compute_volume, compute_snapshot, compute_usage, compute_key, compute_service, compute_deployment, compute_domain, compute_envvar, healthcare_patient, healthcare_practitioner, healthcare_location, healthcare_appointment, healthcare_slot, healthcare_encounter, healthcare_condition, healthcare_allergy, healthcare_medication, healthcare_observation, healthcare_immunization |
interval | number | No | 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_at | string (date-time) | No | 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) (read-only) |
integration_type | string | No | (read-only) |
environment | string | No | (read-only) |
event | enum | Yes | 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. Values: updated, created, deleted |
runs | string[] | No | An array of the most recent virtual webhook runs (read-only) |
fields | string | No | |
webhook_type | enum | No | "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. Values: virtual, native |
is_healthy | boolean | No | 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. (read-only) |
page_max_limit | number | No | |
filters | map (string dictionary) | No | 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 | No | Values: mongodb, mysql, postgres, mssql, mariadb, supabase, snowflake |
db_url | string | No | |
db_schema | string | No | |
db_name_prefix | string | No | |
is_paused | boolean | No |
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/5de520f96e439b002043d8d8',
headers: {
authorization: 'bearer .....'
},
};
const results = await axios.request(options); Are we missing anything? Let us know