---
title: "Enable or disable Content Guard monitoring"
method: POST
path: "/content/{id}/monitoring"
tags: ["Optimizations"]
---

# Enable or disable Content Guard monitoring

`POST /content/{id}/monitoring`

## Request

- Base URL: `https://next.frase.io/api/v1`
- URL: `https://next.frase.io/api/v1/content/{id}/monitoring`
- Auth: one of:
  - API key in header `X-API-KEY`
  - HTTP bearer

Enable or disable Content Guard monitoring. Enabling needs an address Guard can watch, resolved by a recovery ladder: the stored URL when absolute; otherwise (empty slot, non-FraseCMS) the newest live CMS-inventory URL (persisted when absolute); otherwise, for a FraseCMS article with a live published post and a configured domain, an address re-derived from the site's CURRENT settings (persisted). A relative stored URL is therefore NOT a refusal by itself — a FraseCMS article published before domain setup becomes armable the moment setup finishes, with no re-publish. Refusals: `NO_PUBLISHED_URL` when the slot is empty and nothing was recoverable (note this can include a published article whose publish stored no URL); `UNUSABLE_PUBLISHED_URL` when a stored value exists but no ladder leg produced an absolute address. Enabling is quota-checked against the plan's monitored-articles limit; disabling never needs a URL. A no-op re-assert of the current state still returns 200 and does not rewrite monitoredAt. A successful enable can carry a `warning` (e.g. the initial reachability probe failed) without failing the request.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `enable` boolean, required: True to arm Content Guard, false to turn it off.

## Response `200`

Monitoring toggled

- object
  - `data` object
    - `is_monitored` boolean
    - `quota_used` integer
    - `quota_limit` integer
    - `quota_unlimited` boolean: True when the plan has no monitoring cap. Use this instead of comparing quota_limit to the sentinel.
    - `warning` string: Present only when Guard armed but the published URL did not answer. Advisory: monitoring IS on.

## Other responses

- `400`: Missing or unusable published URL (NO_PUBLISHED_URL, UNUSABLE_PUBLISHED_URL), or a malformed body
- `403`: Monitoring quota exceeded for the current plan
- `404`: Content not found in this workspace

---

[API](https://skmtc.dev/frase/apis/frase-api.md) · [All operations](https://skmtc.dev/frase/apis/frase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/frase/apis/frase-api/revisions/7fb75d89f7a4?raw)
