---
title: API monitor — assert on JSON, headers & status, and chart response values
description: A 200 is not the same as correct: an endpoint can answer fine with the wrong data. The new API monitor validates the response, not just the status code…
canonical: https://watchfor.io/changelog/2026-08-07-api-monitor
---

[All updates](/changelog/page/7#2026-08-07-api-monitor) ✨ New Aug 7, 2026 · v 5.3.3

# API monitor — assert on JSON, headers & status, and chart response values

A 200 is not the same as correct: an endpoint can answer fine with the wrong data. The new API monitor validates the response, not just the status code — assert on the HTTP status, any JSON field (via JSONPath), headers and response time, and the check is up only when every assertion passes. Extract numbers straight from the JSON (queue depth, active users, a price) and WatchFor charts them over time: a real time-series pulled from your API. Underneath, it is a full HTTP monitor: SSL expiry, DNS/connect/TLS/TTFB timing, redirects and basic/digest/bearer auth.

Numbers pulled from the JSON response, each charted on its own scale.

## Why a status code isn't enough

A health endpoint can answer 200 with {"status":"degraded"} . A product API can return an empty list after a bad deploy. An HTTP check sees two successes. An API monitor reads the body.

## What it checks

- Assertions on the response: any JSON field by path ( data.status equals ok , data.items.# greater than 0 ), a header, or the plain text. The check passes only when every assertion holds.

- Extracted values : point at a number in the JSON, give it a name, and WatchFor stores it with every check and draws it as a chart. Queue depth, active users or a price becomes a time series.

- Everything an HTTP monitor does: certificate expiry, the DNS, connect, TLS and first-byte timings, redirects, and basic, digest or bearer auth.

## An example

Your /health endpoint returns {"db":"ok","queue":{"depth":12}} . You assert that db equals ok and extract queue.depth as queue_depth . If the database link breaks while the endpoint still answers 200 , the assertion fails and the incident says which one. If the queue creeps up over an afternoon, the chart shows the climb. To be alerted at a level, add an assertion on the same field, such as queue.depth less than 5000 .

## Get started

Choose New monitor → API , enter the URL and add your assertions and extractions. The [API monitor docs](/docs/monitors/api) cover every operator and the path syntax.

Since then: you can [run the request live and click a field](/changelog/2026-08-09-api-monitor-run-inspect) instead of typing paths.

Share this update

---

Canonical page: https://watchfor.io/changelog/2026-08-07-api-monitor · Site guide: https://watchfor.io/llms.txt
