ClousDocs
API Reference

Monitors

Create customer-facing monitors on a ticker, CIK, form type, or event type. When a matching event is detected, Clous fires a signed webhook.

Monitors

A monitor is a standing watch on a company, form, or event type. When the events feed produces a matching event, Clous creates an alert and (if the monitor has a webhook endpoint) delivers a signed webhook. Monitors are scoped to your account.

  • Base URL: https://api.clous.ai
  • Auth: Authorization: Bearer clous_live_...

Create a monitor

POST /v1/monitors

Body

Prop

Type

curl -s -X POST "https://api.clous.ai/v1/monitors" \
  -H "Authorization: Bearer clous_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "NVIDIA material changes",
    "target_type": "ticker",
    "target_value": "NVDA",
    "signals": ["sec.filing.new", "sec.8k.executive_change", "sec.form4.insider_sell"],
    "materiality": "medium",
    "webhook_endpoint_id": "7b1ff0c8-fe92-421f-b8ed-ffa246d394de"
  }'
import requests
resp = requests.post(
    "https://api.clous.ai/v1/monitors",
    headers={"Authorization": "Bearer clous_live_..."},
    json={
        "name": "NVIDIA material changes",
        "target_type": "ticker",
        "target_value": "NVDA",
        "signals": ["sec.filing.new", "sec.8k.executive_change", "sec.form4.insider_sell"],
        "materiality": "medium",
        "webhook_endpoint_id": "7b1ff0c8-fe92-421f-b8ed-ffa246d394de",
    },
)
monitor = resp.json()["data"][0]

List monitors

GET /v1/monitors

Example response

{
  "data": [
    {
      "id": "9107bc79-2e59-40f1-905e-7d3267563ecc",
      "name": "NVIDIA material changes",
      "target_type": "ticker",
      "target_value": "NVDA",
      "signals": ["sec.filing.new", "sec.8k.executive_change"],
      "materiality": "medium",
      "status": "active",
      "webhook_endpoint_id": "7b1ff0c8-fe92-421f-b8ed-ffa246d394de",
      "created_at": "2026-06-13T16:27:30.726813+00:00"
    },
    {
      "id": "7ba98d87-0a1a-4782-a6d3-989074e970de",
      "name": "All new 8-K filings",
      "target_type": "form",
      "target_value": "8-K",
      "signals": [],
      "materiality": "low",
      "status": "active",
      "webhook_endpoint_id": null
    }
  ],
  "page": { "limit": 25, "next_cursor": null, "has_more": false },
  "source": "clous_monitoring",
  "warnings": []
}

Get, pause/resume, delete

GET    /v1/monitors/{monitor_id}
PATCH  /v1/monitors/{monitor_id}
DELETE /v1/monitors/{monitor_id}

PATCH accepts name, status (active | paused), signals, materiality, and webhook_endpoint_id. Pause a monitor without deleting it:

curl -s -X PATCH "https://api.clous.ai/v1/monitors/9107bc79-..." \
  -H "Authorization: Bearer clous_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "status": "paused" }'

How matching works

A monitor fires when an event matches all of:

  • Targettarget_type/target_value matches the event's entity (ticker / CIK), its details.form, or the exact event_type.
  • Signal — the event's type is in signals (or signals is empty).
  • Materiality — the event's importance is at or above the monitor's materiality.

Matches create an alert (deduplicated per event) and, if a webhook_endpoint_id is set, a signed webhook delivery.

Status codes

StatusMeaning
200Success.
400Invalid target_type, status, or an unknown signal.
401Missing or invalid API key.
404No monitor with that id under your account.

On this page