Skip to content

Platform Defaults API

The Platform Defaults API lets you retrieve the current Platform Defaults for your workspace and update them programmatically, with an optional propagation flag that overwrites the corresponding values on every existing datastore and container.

Tip

For complete API documentation, including request/response schemas, visit the API docs.

All endpoints use the base URL of your Qualytics deployment (e.g., https://your-instance.qualytics.io/api).


Get Platform Defaults

Retrieve the current Platform Defaults for the workspace.

Endpoint: GET /api/settings/global-defaults

Permission: Manager user role or higher.

Example request and response

Request:

curl -X GET "https://your-instance.qualytics.io/api/settings/global-defaults" \
  -H "Authorization: Bearer YOUR_TOKEN"

Response:

{
  "volumetric_tracking_enabled": false,
  "automate_volumetric_checks": false,
  "freshness_tracking_enabled": false,
  "automate_freshness_checks": false,
  "ai_effort": "medium",
  "infer_as_draft": false,
  "high_count_rollup_threshold": 10,
  "enrichment_source_record_limit": 10
}

Note

GET returns the defaults as a flat object. PATCH wraps the same fields under a settings key and adds a propagation key (shown below), because a PATCH can also report what propagation did.


Update Platform Defaults

Update one or more Platform Defaults. This endpoint uses partial update semantics: only the fields you include in the request body are changed. Omitted fields remain unchanged.

Endpoint: PATCH /api/settings/global-defaults

Permission: Admin user role.

Query parameters:

Parameter Type Default Description
propagate boolean false When true, the saved values are also written to every existing source datastore. For the four observability fields, they are also written to every non-deleted container.

Request Body:

Field Type Range Qualytics default Description
volumetric_tracking_enabled boolean true / false false Turns on daily recording of volume metrics for each container.
automate_volumetric_checks boolean true / false false Automatically creates an AI volumetric check for each tracked container. Coupled with volumetric_tracking_enabled.
freshness_tracking_enabled boolean true / false false Turns on daily recording of the last time data was added or updated.
automate_freshness_checks boolean true / false false Automatically creates an AI freshness check for each tracked container. Coupled with freshness_tracking_enabled.
ai_effort string off, low, medium, high, xhigh, max medium Effort level Qualytics AI uses when generating checks during a profile operation. The six values map to the UI slider stops Off, Low, Medium, High, Extra High, and Max.
infer_as_draft boolean true / false false When true, AI-generated checks are saved as drafts and require review before they activate. When false, they activate as soon as the profile completes.
high_count_rollup_threshold integer 1 to 1000 10 How many record anomalies can be created per check before they are grouped into one rolled-up anomaly. Values above 1000 are silently capped.
enrichment_source_record_limit integer 1 to 1,000,000,000 10 How many source records are stored in your enrichment datastore as examples per failing check.

Coupling of tracking and automation

automate_volumetric_checks=true cannot be stored without volumetric_tracking_enabled=true. On save, Qualytics silently normalizes the request to enforce this invariant. When both fields are submitted together, automation wins: automate_volumetric_checks=true combined with volumetric_tracking_enabled=false results in volumetric_tracking_enabled=true. When only tracking is submitted, tracking wins: setting volumetric_tracking_enabled=false while the stored automate_volumetric_checks is true sets automate_volumetric_checks=false. The same coupling applies to the freshness pair.

Update Profile defaults without propagation

Set the default AI Effort to high and keep AI-generated checks as drafts:

Request:

curl -X PATCH "https://your-instance.qualytics.io/api/settings/global-defaults" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ai_effort": "high",
    "infer_as_draft": true
  }'

Response:

{
  "settings": {
    "volumetric_tracking_enabled": false,
    "automate_volumetric_checks": false,
    "freshness_tracking_enabled": false,
    "automate_freshness_checks": false,
    "ai_effort": "high",
    "infer_as_draft": true,
    "high_count_rollup_threshold": 10,
    "enrichment_source_record_limit": 10
  },
  "propagation": null
}
Update Observability defaults and propagate

Turn on Volume Tracking + AI volumetric checks for every existing datastore and container:

Request:

curl -X PATCH "https://your-instance.qualytics.io/api/settings/global-defaults?propagate=true" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "volumetric_tracking_enabled": true,
    "automate_volumetric_checks": true
  }'

Response:

{
  "settings": {
    "volumetric_tracking_enabled": true,
    "automate_volumetric_checks": true,
    "freshness_tracking_enabled": false,
    "automate_freshness_checks": false,
    "ai_effort": "medium",
    "infer_as_draft": false,
    "high_count_rollup_threshold": 10,
    "enrichment_source_record_limit": 10
  },
  "propagation": {
    "updated": 3,
    "skipped": 0,
    "datastores_updated": 3,
    "containers_updated": 12
  }
}
Update Scan defaults

Cap record anomalies at 100 per check and store up to 25 source examples per anomaly:

Request:

curl -X PATCH "https://your-instance.qualytics.io/api/settings/global-defaults" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "high_count_rollup_threshold": 100,
    "enrichment_source_record_limit": 25
  }'

Response:

{
  "settings": {
    "volumetric_tracking_enabled": false,
    "automate_volumetric_checks": false,
    "freshness_tracking_enabled": false,
    "automate_freshness_checks": false,
    "ai_effort": "medium",
    "infer_as_draft": false,
    "high_count_rollup_threshold": 100,
    "enrichment_source_record_limit": 25
  },
  "propagation": null
}

For the UI equivalent, see the Configure Observability Defaults, Configure Profile Defaults, and Configure Scan Defaults pages.


Error Responses

Status Code Description
401 Unauthorized Missing or invalid API token.
403 Forbidden User does not have the required role (Manager for GET, Admin for PATCH).
422 Unprocessable Entity Invalid request body (e.g., ai_effort outside the accepted set, a rollup threshold below 1, or a source record limit above 1,000,000,000).
Error response examples

403 Forbidden on PATCH without Admin role:

{ "detail": "Required role(s): ['Admin']" }

422 Unprocessable Entity on invalid effort value:

{ "detail": [{ "type": "enum", "loc": ["body", "ai_effort"], "msg": "Input should be 'off', 'low', 'medium', 'high', 'xhigh' or 'max'" }] }

Permission Summary

Operation Minimum Permission
Get Platform Defaults Manager user role
Update Platform Defaults Admin user role
Update Platform Defaults with propagate=true Admin user role