---
title: "List monitor changes"
method: GET
path: "/monitors/{monitor_id}/changes"
tags: ["Monitors"]
---

# List monitor changes

`GET /monitors/{monitor_id}/changes`

## Request

- Base URL: `https://api.context.dev/v1`
- URL: `https://api.context.dev/v1/monitors/{monitor_id}/changes`
- Auth: HTTP bearer

List full change records for a monitor, newest first.

## Path parameters

- `monitor_id` string, required: ID of the monitor.

## Query parameters

- `tag` string: Filter to items that have this tag.
- `since` string, date-time: Only include items at or after this ISO 8601 timestamp.
- `until` string, date-time: Only include items before this ISO 8601 timestamp.
- `limit` integer: Maximum number of items to return per page (1-100). Defaults to 25.
- `cursor` string: Opaque pagination cursor from a previous response.

## Response `200`

A paginated list of changes for the monitor

- MonitorsListChangesResponse
  - `data` MonitorsChange[], required
    - `mode` 'web', required: Always `web`. Optional.
    - `id` string, required
    - `monitor_id` string, required
    - `run_id` string, required: The run that detected this change.
    - `target_type` 'page' | 'sitemap' | 'extract', required
    - `change_detection_type` 'exact' | 'semantic', required
    - `title` string, required
    - `summary` string, required
    - `detected_at` string, date-time, required
    - `url` string, uri, required
    - `importance` 'low' | 'medium' | 'high'
    - `confidence` number
    - `diff` string: Text diff between the previous and current page baseline (page targets).
    - `before_text_excerpt` string
    - `after_text_excerpt` string
    - `added_urls` string[]: At most 500 URLs are included; the corresponding count field is always exact.
    - `removed_urls` string[]: At most 500 URLs are included; the corresponding count field is always exact.
    - `added_url_count` integer
    - `removed_url_count` integer
    - `matched_urls` string[]: At most 500 URLs are included; the corresponding count field is always exact.
    - `matched_url_count` integer
    - `evidence` MonitorsEvidence[]
      - `url` string, uri: Optional URL the evidence relates to. Absent for whole-target diffs.
      - `before` string, required: Snapshot of the content before the change.
      - `after` string, required: Snapshot of the content after the change.
    - `tags` string[], required: Labels for filtering monitors, their changes, and their usage.
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required
  - `key_metadata` KeyMetadata: Credits this request used and your remaining balance.
    - `credits_consumed` integer, required: Credits charged for this request.
    - `credits_remaining` integer, required: Credits remaining for your organization.
  - `request_id` string, uuid, required: Unique ID of this request, also in `X-Request-Id`. Include it when contacting support.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: API key permissions or organization settings do not allow this request.
- `404`: Not found
- `429`: Rate limit exceeded. Organization concurrency rejections include structured error_data and subscription settings; follow Retry-After before retrying.

## Changes

- **2026-10-21** `61627728926b`: 4 warning
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `400`
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `401`
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `403`
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `404`
- **2026-10-19** `4ddcf49b9fe5`: 5 info
  - added the optional property `error_data` to the response with the `400` status
  - added the optional property `error_data` to the response with the `401` status
  - added the optional property `error_data` to the response with the `403` status
  - added the optional property `error_data` to the response with the `404` status
  - …1 more
- **2026-10-16** `2125f3e94e52`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/context/apis/brand-api/changes/monitors/:monitor_id/changes/get.md)

---

[API](https://skmtc.dev/context/apis/brand-api.md) · [All operations](https://skmtc.dev/context/apis/brand-api/llms.txt) · [OpenAPI document](https://skmtc.dev/context/apis/brand-api/revisions/9e2ab7841fb1?raw)
