Endpoints

Silences

GET/api/v1/silences

Every silence in the active org, manual and generated alike, newest starts_at first. status buckets active/scheduled/expired — see SilenceResponse.from_model.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

status?|

Filter to one bucket: active, scheduled, or expired. Omit to return all. Always computed, never read from a column.

Response Body

application/json

application/json

curl -X GET "https://example.com/api/v1/silences"
{  "items": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",      "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",      "matchers": [        {          "label": "string",          "op": "=",          "value": "string"        }      ],      "starts_at": "2019-08-24T14:15:22Z",      "ends_at": "2019-08-24T14:15:22Z",      "reason": "string",      "source": "manual",      "status_page_id": "string",      "maintenance_window_key": "string",      "expired_at": "2019-08-24T14:15:22Z",      "expired_by": "fb548c1e-3866-496a-8211-f579735456ef",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z",      "status": "active"    }  ]}
POST/api/v1/silences

Create a manual silence. See this module's docstring for who may call this and why, and for the duration cap enforced below.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/api/v1/silences" \  -H "Content-Type: application/json" \  -d '{    "matchers": [      {        "label": "string",        "op": "=",        "value": "string"      }    ],    "starts_at": "2019-08-24T14:15:22Z",    "ends_at": "2019-08-24T14:15:22Z",    "reason": "string"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",  "matchers": [    {      "label": "string",      "op": "=",      "value": "string"    }  ],  "starts_at": "2019-08-24T14:15:22Z",  "ends_at": "2019-08-24T14:15:22Z",  "reason": "string",  "source": "manual",  "status_page_id": "string",  "maintenance_window_key": "string",  "expired_at": "2019-08-24T14:15:22Z",  "expired_by": "fb548c1e-3866-496a-8211-f579735456ef",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "status": "active"}
GET/api/v1/silences/{silence_id}

One silence by id, within the active org — 404 across tenants, matching get_issue_policy's own org-scoped lookup precedent.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

silence_id*Silence Id
Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/api/v1/silences/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",  "matchers": [    {      "label": "string",      "op": "=",      "value": "string"    }  ],  "starts_at": "2019-08-24T14:15:22Z",  "ends_at": "2019-08-24T14:15:22Z",  "reason": "string",  "source": "manual",  "status_page_id": "string",  "maintenance_window_key": "string",  "expired_at": "2019-08-24T14:15:22Z",  "expired_by": "fb548c1e-3866-496a-8211-f579735456ef",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "status": "active"}
POST/api/v1/silences/{silence_id}/expire

End a silence early: an update recording expired_by/expired_at, never a delete. A generated silence refuses with 409 and the explaining message from SilenceGeneratedError, rather than a bare 403 — the caller needs to know why ("go edit the manifest"), not just that the action is disallowed.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

silence_id*Silence Id
Formatuuid

Response Body

application/json

application/json

curl -X POST "https://example.com/api/v1/silences/497f6eca-6276-4993-bfeb-53cbbbba6f08/expire"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",  "matchers": [    {      "label": "string",      "op": "=",      "value": "string"    }  ],  "starts_at": "2019-08-24T14:15:22Z",  "ends_at": "2019-08-24T14:15:22Z",  "reason": "string",  "source": "manual",  "status_page_id": "string",  "maintenance_window_key": "string",  "expired_at": "2019-08-24T14:15:22Z",  "expired_by": "fb548c1e-3866-496a-8211-f579735456ef",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "status": "active"}