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:
422 Unprocessable Entity on invalid effort value:
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 |