Monitors

Integrate monitoring and alerting into orchestration, CI/CD, and observability workflows so teams can react faster and automate responses to data issues.

The Monitors API provides the building blocks to manage monitor discovery, execution, and results retrieval across assets and tenants.

If you would like to view APIs related to managing monitors (create/update/delete), please refer to the Create, Manage & Delete page.

Post Search Monitors

post

Search monitors with optional filters. Returns paginated results matching the specified criteria.

Body
queryany ofOptional

Search term to match against name (substring match, case insensitive)

stringOptional
or
nullOptional
assetany ofOptional

Filter monitors that associated with a specific asset

or
nullOptional
childrenbooleanOptional

If false, only return monitors directly associated with asset. Otherwise, return all monitors associated with asset and its children. This field is ignored if the asset is not present

Default: false
monitor_modeany ofOptional

Filter monitors by mode

string · enumOptionalPossible values:
or
nullOptional
test_typeany ofOptional

Filter monitors by the type of monitor

string · enumOptionalPossible values:
or
nullOptional
pageinteger · min: 1OptionalDefault: 1
page_sizeinteger · min: 1 · max: 100OptionalDefault: 10
Responses
200

Successful Response

application/json
post
POST /api/v1/data/monitors/search HTTP/1.1
Host: connect.<REGION>.decube.io
Content-Type: application/json
Accept: */*
Content-Length: 138

{
  "query": "text",
  "asset": {
    "type": "source",
    "id": 1
  },
  "children": false,
  "monitor_mode": "scheduled",
  "test_type": "volume",
  "page": 1,
  "page_size": 10
}
{
  "data": [
    {
      "created_by": {
        "email": "text",
        "id": "text"
      },
      "created_at": "2025-09-12T09:19:15.550Z",
      "id": 1,
      "asset": {
        "id": 1,
        "type": "source"
      },
      "name": "text",
      "description": "text",
      "mode": "scheduled",
      "incident_type": "freshness",
      "incident_level": "info",
      "test_type": "volume",
      "notify": true,
      "enabled": true,
      "is_group_by": true,
      "dimension": "accuracy"
    }
  ]
}

Get Monitor

get

Get a specific monitor by ID.

Query parameters
monitor_idinteger · min: 1Required

Unique identifier of the monitor

Responses
200

Successful Response

application/json
get
GET /api/v1/data/monitors?monitor_id=1 HTTP/1.1
Host: connect.<REGION>.decube.io
Accept: */*
{
  "created_by": {
    "email": "text",
    "id": "text"
  },
  "created_at": "2025-09-12T09:19:15.550Z",
  "id": 1,
  "asset": {
    "id": 1,
    "type": "source"
  },
  "name": "text",
  "description": "text",
  "mode": "scheduled",
  "incident_type": "freshness",
  "incident_level": "info",
  "test_type": "volume",
  "notify": true,
  "enabled": true,
  "is_group_by": true,
  "dimension": "accuracy",
  "last_run": "2025-09-12T09:19:15.550Z",
  "last_run_status": "running",
  "custom_alerts": {
    "ANY_ADDITIONAL_PROPERTY": [
      "text"
    ]
  },
  "row_creation": {
    "filter_mode": "text",
    "sql_expression": "text",
    "enable_smart_training": true
  },
  "frequency": {
    "frequency": "1H"
  },
  "lookback_period": 1,
  "groups": [
    "text"
  ],
  "group_mapping": {
    "mapping_column_id": 1,
    "group_by_field_name": "text"
  },
  "custom_sql": "text",
  "threshold": {
    "type": "text",
    "min": 1,
    "max": 1
  }
}

Post Enable Disable Scheduled Monitor

post

Enable, or disable a scheduled monitor.

Body
monitor_idinteger · min: 1Required

Unique identifier of the monitor

enabledbooleanRequired
Responses
200

Successful Response

application/json
Responseany
post
POST /api/v1/data/monitors/enable-disable HTTP/1.1
Host: connect.<REGION>.decube.io
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "monitor_id": 1,
  "enabled": true
}

No content

Get Monitor History

get

Get a monitor's test result history in reverse chronological order (most recent first). For Schema Drift and Job Failure monitors, the endpoint returns only failing test results (i.e. when an incident is present). For all other monitor types, it returns the full history of results.

Query parameters
monitor_idinteger · min: 1Required

Unique identifier of the monitor

pageinteger · min: 1OptionalDefault: 1
page_sizeinteger · min: 10 · max: 1000OptionalDefault: 10
Responses
200

Successful Response

application/json
get
GET /api/v1/data/monitors/history?monitor_id=1 HTTP/1.1
Host: connect.<REGION>.decube.io
Accept: */*
{
  "data": [
    {
      "status": "running",
      "period": "2025-09-12T09:19:15.550Z",
      "detail": {
        "value": 1,
        "test_type": "text",
        "metric_name": "text"
      },
      "case_id": 1,
      "incident_id": 1
    }
  ]
}

Post Trigger On Demand Monitor

post

Trigger an on-demand run for a monitor. Returns a UUID that can be used to track the execution status. Only one on-demand run can be active at a time per monitor. The monitor must be of a supported type (mode = on_demand) and cannot be a schema drift or job failure monitor.

Body
monitor_idinteger · min: 1Required

Unique identifier of the monitor

Responses
200

Successful Response

application/json
post
POST /api/v1/data/monitors/trigger HTTP/1.1
Host: connect.<REGION>.decube.io
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "monitor_id": 1
}
{
  "job_id": "123e4567-e89b-12d3-a456-426614174000"
}

Get Monitor Run Status

get

Get the status of an on-demand monitor run. Returns the current status of the run and, if completed, the corresponding test result.

Query parameters
job_idstring · uuidRequired

Unique identifier of monitor run

Responses
200

Successful Response

application/json
get
GET /api/v1/data/monitors/status?job_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Host: connect.<REGION>.decube.io
Accept: */*
{
  "status": "running",
  "result": {
    "status": "running",
    "period": "2025-09-12T09:19:15.550Z",
    "detail": {
      "value": 1,
      "test_type": "text",
      "metric_name": "text"
    },
    "case_id": 1,
    "incident_id": 1
  }
}

Last updated