Requires the Metrics extension to be enabled for the workspace, and only reaches servers the credential can already manage—naming any other server is answered as not found.
List
List rule overrides
Retrieve a paginated list of rule overrides.
Request
GET /api/metrics/rule-overrides/
Query parameters
| Parameter | Type | Description |
|---|
server | UUID | Filter by server ID |
rule | UUID | Filter by alert rule ID |
enabled | boolean | Filter by whether the override is active (false is the exemption) |
search | string | Search across server name and rule name |
ordering | string | Sort order (e.g., added_at, -updated_at). Default: -added_at |
page | integer | Page number |
page_size | integer | Results per page (default: 15, max: 100) |
Response
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"server": {
"id": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8",
"name": "web-server-01",
"os": "Ubuntu 22.04",
"is_connected": true
},
"rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e",
"threshold": 90,
"recovery_threshold": 80,
"duration_s": null,
"enabled": true,
"added_at": "2026-09-10T09:00:00Z",
"updated_at": "2026-09-10T09:00:00Z"
}
]
}
Required scope: rule_override:read
Example
curl -X GET "https://your-workspace.us1.alpacon.io/api/metrics/rule-overrides/?server=7e3984de-49ab-4cc6-bcdf-21fbd35858b8" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\""
Create
Create rule override
Give one server its own values for a rule it’s attached to, or exempt it from that rule.
Request
POST /api/metrics/rule-overrides/
Request body
{
"server": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8",
"rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e",
"threshold": 90,
"recovery_threshold": 80
}
Parameters
| Field | Type | Required | Description |
|---|
server | UUID | Yes | Server this override applies to. Must be a server the credential can manage |
rule | UUID | Yes | Alert rule to override |
threshold | number | No | Replaces the rule’s threshold for this server. Leave empty to keep the rule’s own value |
recovery_threshold | number | No | Replaces the rule’s recovery threshold for this server. Must sit on the recovering side of the effective threshold, given the rule’s direction. Leave empty to keep the rule’s own value |
duration_s | integer | No | Replaces the rule’s duration for this server, in seconds. Leave empty to keep the rule’s own value; 0 means a single breaching sample fires |
enabled | boolean | No | false exempts this server from the rule entirely, whatever the other fields hold. Default true |
A server may have at most one override per rule.
Response
{
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"server": {
"id": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8",
"name": "web-server-01",
"os": "Ubuntu 22.04",
"is_connected": true
},
"rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e",
"threshold": 90,
"recovery_threshold": 80,
"duration_s": null,
"enabled": true,
"added_at": "2026-09-10T09:00:00Z",
"updated_at": "2026-09-10T09:00:00Z"
}
Required scope: rule_override:create
Example
curl -X POST "https://your-workspace.us1.alpacon.io/api/metrics/rule-overrides/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\"" \
-H "Content-Type: application/json" \
-d '{"server": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8", "rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e", "threshold": 90}'
Get
Get rule override
Retrieve a specific rule override by ID.
Request
GET /api/metrics/rule-overrides/{override_id}/
Path parameters
| Parameter | Type | Required | Description |
|---|
override_id | UUID | Yes | Rule override ID |
Response
Same schema as Create rule override.
Required scope: rule_override:read
Example
curl -X GET "https://your-workspace.us1.alpacon.io/api/metrics/rule-overrides/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\""
Update
Update rule override
Update an existing override. Supports partial updates via PATCH.
Request
PATCH /api/metrics/rule-overrides/{override_id}/
Path parameters
| Parameter | Type | Required | Description |
|---|
override_id | UUID | Yes | Rule override ID |
Request body
{
"enabled": false
}
Parameters
Same fields as Create rule override, all optional. server and rule can’t be changed after creation—delete the override and create a new one instead.
Response
Returns the full override object with updated fields (same schema as Get rule override).
Required scope: rule_override:update
Example
curl -X PATCH "https://your-workspace.us1.alpacon.io/api/metrics/rule-overrides/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\"" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'
Delete
Delete rule override
Remove an override. The server goes back to the rule’s own values.
Request
DELETE /api/metrics/rule-overrides/{override_id}/
Path parameters
| Parameter | Type | Required | Description |
|---|
override_id | UUID | Yes | Rule override ID |
Response
204 No Content
Required scope: rule_override:delete
Example
curl -X DELETE "https://your-workspace.us1.alpacon.io/api/metrics/rule-overrides/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\""