Skip to content

Observability API

REST endpoints for reading Observability listings and measurements, and for toggling Volume Tracking and Freshness Tracking on containers.

  • Base URL: https://<your-deployment>/api
  • Authentication: Bearer token in the Authorization header. See Personal Access Tokens for how to obtain one.

Complete API Reference

The full interactive OpenAPI schema is served at /api/docs and stays in sync with your deployment. Use this page for the observability-specific handoff; hit /api/docs for the always-current source of truth.

Permissions

  • Listing endpoints require a signed-in workspace user with at least a Member role. Team-permission gating on the underlying datastore still applies to the returned rows.
  • Modifying checks (thresholds, Maximum Age) requires the Author team permission on the datastore.
  • Toggling Volume or Freshness Tracking is available to any signed-in workspace user (Member role and above) who can see the datastore. Read the note under Toggle Volume / Freshness Tracking below before assuming this is symmetric with the check-edit endpoints.

Endpoints at a glance

Method Endpoint Purpose
GET /observability List Measures cards (Volumetric + Freshness per container) with filters, sort, timeframe, and report date.
GET /quality-checks/measurements List Metric checks with their most recent measurements.
PATCH /containers/volumetric-tracking Bulk update Volume Tracking and Freshness Tracking flags on containers.
PUT /quality-checks/{id} Update thresholds, Maximum Age, or other properties on a specific check.

List Measures

Endpoint: GET /observability Permission: Any authenticated workspace user; datastore-level team permissions gate returned rows.

Returns a paginated list of container-observability rows for the Measures tab. Each row includes the container identity, its active anomaly count, its active-check summary, and its recent daily measurements.

Common query parameters:

Parameter Type Description
datastore integer Filter to a single datastore.
container integer Filter to a single container.
search string Match container name or identifier.
tag string[] Filter by one or more tag names.
rule_type string volumetric or freshness.
report_date date Anchor the timeframe to end on this date (YYYY-MM-DD).
timeframe string week, month, quarter, or year.
sort_name string asc or desc.
sort_container_type string asc or desc.
sort_created string asc or desc.
sort_active_anomalies string asc or desc.
sort_active_checks string asc or desc.
sort_last_scanned string asc or desc.
List Measures rows for a datastore, sorted by anomalies
curl -X GET 'https://<your-deployment>/api/observability?datastore=42&timeframe=month&sort_active_anomalies=desc' \
  -H 'Authorization: Bearer <token>'

List Metric measurements

Endpoint: GET /quality-checks/measurements Permission: Any authenticated workspace user; datastore-level team permissions gate returned rows.

Returns Metric checks with their most recent measurements (up to the last 10 per check).

Common query parameters:

Parameter Type Description
id integer[] Filter to a specific check id.
template integer[] Filter to checks derived from a specific template.
datastore integer Filter to a single datastore.
container integer Filter to a single container.
field string[] Filter by one or more field identifiers.
tag string[] Filter by one or more tag names.
search string Match description or identifier.
sort_id string asc or desc.
sort_favorite string asc or desc.
sort_created string asc or desc.
sort_active_anomalies string asc or desc.
List Metric checks for a container, newest first
curl -X GET 'https://<your-deployment>/api/quality-checks/measurements?container=123&sort_created=desc' \
  -H 'Authorization: Bearer <token>'

Toggle Volume / Freshness Tracking

Endpoint: PATCH /containers/volumetric-tracking Permission: Any signed-in workspace user (Member role and above) who can see the datastore. This endpoint does not require the Author or Editor team permission, so it is intentionally more permissive than the check-edit endpoints above; the underlying container is still gated by the standard datastore visibility filter.

Bulk-updates the Volume Tracking and Freshness Tracking flags on one or more containers. This is the endpoint the Observability Settings modal calls.

Request body fields:

Field Type Description
containers integer[] Ids of the containers to update.
volumetric_tracking_enabled boolean Toggle Volume Tracking.
freshness_tracking_enabled boolean Toggle Freshness Tracking.
automate_volumetric_checks boolean Toggle Create AI Volumetric checks.
automate_freshness_checks boolean Toggle Create AI Freshness checks.

Turning tracking off cascades: the matching automation flag is also cleared server-side.

Enable Volume + Freshness tracking on multiple containers
curl -X PATCH 'https://<your-deployment>/api/containers/volumetric-tracking' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "containers": [123, 124],
    "volumetric_tracking_enabled": true,
    "freshness_tracking_enabled": true,
    "automate_volumetric_checks": true,
    "automate_freshness_checks": false
  }'

Update thresholds or Maximum Age

Endpoint: PUT /quality-checks/{id} Permission: Author team permission on the datastore (Editor on the datastore always allowed).

The inline Edit Threshold and Edit Maximum Age actions on the Observability chart both call this endpoint. Send only the fields you want to change.

  • For Volumetric and Metric threshold edits, set properties.min_value and properties.max_value.
  • For Freshness Maximum Age edits, set properties.value (milliseconds).
Update Volumetric thresholds
curl -X PUT 'https://<your-deployment>/api/quality-checks/6789' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "properties": {
      "min_value": 25000,
      "max_value": 70000
    }
  }'
Update Maximum Age to 3 hours
curl -X PUT 'https://<your-deployment>/api/quality-checks/6790' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "properties": {
      "value": 10800000
    }
  }'

Error responses

Status Meaning
400 Malformed request payload, invalid sort direction, or invalid enum value on rule_type / timeframe.
401 Missing or expired bearer token.
403 Authenticated but the requesting user lacks the required team permission on the datastore.
404 Referenced datastore, container, or check does not exist or is not visible to the requesting user.
422 Body validation failure (for example, min_value greater than max_value, or unsupported unit value).