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

  1. Go to Organization Settings > Integrations

  2. Click Add Integration

  3. 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:

Scope
Description

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:**

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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?