Webhook API
Webhook integrations allow your system to receive real-time notifications from Soda Cloud when certain events occur, such as check evaluations, incident changes, or contract updates.
Setup
To create a Webhook integration, you must have Organization Settings permissions.
Add Integration
Go to Organization Settings > Integrations
Click Add Integration
Choose Webhook as the integration type

Configure Webhook
Provide the required fields:
Name – The name of your integration
Webhook URL – The endpoint to send the events to
Secret (optional) – Used to sign the payload

Event Testing
After creation, you can simulate payloads for development and testing.
This allows you to preview example payloads for each event type using random values.

Scopes
Webhooks can be configured to listen for one or more event scopes:
Alert Notifications
Triggered when a check result causes an alert (based on notification rules)
Incidents
Triggered when incidents are created or updated in Soda Cloud
Contracts
Triggered when a data contract is published (created or updated)
Alert Notifications require active notification rules. Learn more about Notifications

Event Types and Payloads
Depending on the selected scope, one or more of the following event types will be sent to your endpoint:
Check Evaluation
Scope: alert_notificatio
Triggered when a check result triggers an alert.
Alert Notifications require active notification rules to use the webhook as a recipient. See Notification Configuration →
Payload structure:
{
"event": "checkEvaluation",
"checkResults": [CheckResult, ...]
}
CheckResult
** object:**
id
string
Unique ID of the check result
sodaCloudUrl
string
Link to the check result in Soda Cloud
definition
string
YAML check definition
datasets
array
List of associated datasets (see Dataset
object)
column
string
Column associated with the check
outcome
string
pass
, fail
, or error
dataTimestamp
string
ISO 8601 timestamp of data
diagnostics
object
Check result value(s)
agreement
object
Information about the linked agreement (optional)
name
string
Name of the check
Incident Created
Scope: incidents
Triggered when a new incident is reported
{
"event": "incidentCreated",
"incident": Incident
}
Incident
object
id
string
Incident ID
sodaCloudUrl
string
URL to view the incident
number
number
Human-readable incident number
title
string
Incident title
description
string
Incident description
severity
string
low
, medium
, high
, critical
status
string
reported
, in_progress
, resolved
, etc.
created
string
ISO timestamp
lastUpdated
string
ISO timestamp
reporter
object
User who reported the incident
checkResults
array
List of related CheckResult
objects
incidentLinkCallbackUrl
string
Link to update or interact with the incident (optional)
IncidentLinkCallBackUrl
This property allows you to add links to incidents that can point to external integrations. To add a link, do a POST call with the following body:
{
"url": string,
"text": string
}
Incident Updated
Same structure as incidentCreated
, but triggered when an incident is updated.
{
"event": "incidentUpdated",
"incident": Incident
}
Contract Published
Scope: contracts
Triggered when a contract is published or updated.
{
"event": "contractPublished",
"contract": Contract
}
Contract
object
dataset
string
Fully qualified name of the dataset the contract applies to
prefixes
string[]
(Deprecated) – Use dataset
instead to identify the target
datasource
string
Name of the data source
author
object
Information about the user who published the contract
author.id
string
Soda Cloud user ID
author.email
string
Email of the user who published the contract
contents
string
The full YAML content of the contract as a string
Last updated
Was this helpful?