KausateKausate Docs
Monitors

Company Monitoring

Track changes to company data over time and receive webhook notifications when something changes.

Monitors let you track a company and get notified when its data changes. Each monitor runs on a schedule you define, checks for changes in company details and shareholder structure, and sends a webhook when something is different.

How It Works

StepWhat happens
CreateYou provide a company ID and a cron schedule
First checkRuns immediately, stores the initial state (no webhook sent)
Subsequent checksFetches fresh company report and shareholder graph, compares with stored state
Change detectedSends a webhook to all your configured webhook endpoints

Categories

Each monitor tracks two categories of company data. When a change is detected, the webhook tells you exactly which categories changed.

CategoryWhat it covers
company-detailsLegal name, registered address, registration status, officers, legal form, and other registry data
shareholder-graphDirect shareholders of the company (1 level deep), including ownership percentages and shareholder details

The changed_categories field in the webhook payload contains one or both of these values, so you can decide how to react based on what type of data changed.

Transient fields like retrieval timestamps and signed download URLs are excluded from change comparison to avoid false positives. Only actual business data changes trigger a notification.


Creating a Monitor

First, make sure you have a webhook configured to receive notifications.

curl -X POST https://api.kausate.com/v2/monitors \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "kausateId": "co_de_7KGHtucR88u2omSx3KhaoH",
    "scheduleCron": "0 8 * * 1"
  }'

Response:

{
  "monitorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "kausateId": "co_de_7KGHtucR88u2omSx3KhaoH",
  "companyName": "Bundesanzeiger Verlag GmbH",
  "scheduleCron": "0 8 * * 1",
  "checkCount": 0,
  "lastCheckedAt": null,
  "isActive": true,
  "createdAt": "2025-06-15T10:30:00Z",
  "apiUrl": "https://api.kausate.com/v2/monitors/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

The first check runs immediately after creation to capture the baseline state. No webhook is sent for the first check.

Cron Schedule

The scheduleCron field accepts standard 5-field cron expressions (UTC):

ExpressionMeaning
0 8 * * *Every day at 08:00 UTC
0 8 * * 1Every Monday at 08:00 UTC
0 0 1 * *First day of each month
0 8 * * 1,4Monday and Thursday at 08:00 UTC

Webhook Notifications

When a monitor detects changes, Kausate sends a POST request to each of your webhook endpoints:

{
  "event": "monitor.change_detected",
  "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "kausate_id": "co_de_7KGHtucR88u2omSx3KhaoH",
  "changed_categories": ["company-details"],
  "timestamp": "2025-06-22T08:00:15Z",
  "api_url": "https://api.kausate.com/v2/monitors/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
FieldDescription
eventAlways monitor.change_detected
monitor_idThe monitor that triggered the notification
kausate_idThe company being monitored
changed_categoriesWhich data changed: company-details, shareholder-graph, or both
timestampWhen the change was detected (ISO 8601)
api_urlDirect link to fetch the full monitor details including old and new state

Use the api_url to fetch the monitor details and inspect what changed.

Retry policy:

SettingValue
Maximum attempts50
Initial interval1 second
Maximum interval4 hours
Backoff multiplier2x

If your endpoint is temporarily unreachable, Kausate keeps retrying with exponential backoff.


Inspecting Changes

To see what changed, fetch the monitor details:

curl https://api.kausate.com/v2/monitors/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-API-Key: your_api_key"

The response includes oldState and newState — the full company data before and after the detected change. Compare these to identify exactly what changed.

{
  "monitorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "kausateId": "co_de_7KGHtucR88u2omSx3KhaoH",
  "companyName": "Bundesanzeiger Verlag GmbH",
  "checkCount": 5,
  "lastCheckedAt": "2025-06-22T08:00:15Z",
  "currentStateSummary": {
    "hasCompanyDetails": true,
    "hasShareholderGraph": true,
    "lastUpdated": "2025-06-22T08:00:15Z"
  },
  "oldState": { "..." },
  "newState": { "..." }
}
FieldDescription
currentStateSummaryQuick overview of what data the monitor is tracking
oldStateCompany data from before the last detected change
newStateCurrent company data (what triggered the change notification)

Credits

Each scheduled check consumes credits, regardless of whether changes are detected. The check fetches a fresh company report and shareholder graph from the source registry.


Managing Monitors

List all monitors:

curl https://api.kausate.com/v2/monitors \
  -H "X-API-Key: your_api_key"

Delete a monitor:

curl -X DELETE https://api.kausate.com/v2/monitors/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-API-Key: your_api_key"

Deleting a monitor cancels all future scheduled checks immediately.

Last updated on

On this page