---
title: "Retrieve a monitor change"
method: GET
path: "/monitors/changes/{change_id}"
tags: ["Monitors"]
---

# Retrieve a monitor change

`GET /monitors/changes/{change_id}`

## Request

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

Retrieve a detected change, including its diff and available evidence.

## Path parameters

- `change_id` string, required: ID of the detected change.

## Response `200`

Change details

- MonitorsChangeResponse
  - `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.
  - `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/changes/:change_id/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)
