# Checks & captures

## Checks

A check compares one part of the response with an expected value. A request can have any number of them, and the response line shows how many passed.

| Looks at | Example |
| --- | --- |
| status | `status equals 200` |
| duration | `duration lt 300` (milliseconds) |
| body | `body contains "ok"` |
| jsonpath | `$.items[0].id equals 7` |
| header | `X-Rate-Limit exists` |

The comparisons are equals, not equals, contains, exists, absent, less than, greater than and matches (a regular expression).

The same checks run in a [benchmark](../performance/benchmarks.md) and in [CI](../sharing/ci.md), so a request that is fast but wrong is counted as a failure.

## Captures

A capture reads a value out of a response and stores it in a variable for the requests that follow. It can read a JSON path, a header, a regular expression match or the whole body.

```text
jsonpath  $.token  →  token
```

The next request then uses `{{token}}`.
