# Run reports

> Tag your scenario requests with a run id and get a pass or fail for each x402 test scenario, including how many times your client retried.

Each test endpoint judges one request. A run report joins them up: tag every request in a test session with the same run id, and the site gives one result per scenario, including things a single response cannot show, such as how many times your client retried a seller that never delivers.

## Use it

Get a run id, or make up any string of 16 to 64 letters, digits, hyphens or underscores:

```bash
curl -X POST https://x402testendpoint.com/api/runs
```

Add it to every scenario request, on the first request and on the paid retry alike:

```bash
curl -i 'https://x402testendpoint.com/t/ok?run=YOUR_RUN_ID'
curl -i 'https://x402testendpoint.com/t/overpriced?run=YOUR_RUN_ID'
```

Then read the report at `https://x402testendpoint.com/runs/YOUR_RUN_ID`, or as JSON at `https://x402testendpoint.com/api/runs/YOUR_RUN_ID`. Each tagged response also carries the report address in an `x-test-run` header.

## How each scenario is judged

| Scenario kind | Pass | Fail |
| --- | --- | --- |
| Pay scenarios | A paid request ended with 200. | Payments were sent and none was accepted. |
| Traps that should be refused | The quote was requested and no payment followed. | Any payment was sent. |
| `price-bump` | Paid the first quote and did not pay the higher one. | Paid the higher price. |
| `always-402` | Stopped after three paid attempts or fewer. | More than three paid attempts. |

A scenario with a quote request but no payment where one was expected is shown as not finished, and one never requested as not run.

## What is stored, and for how long

- For each tagged request: the time, the scenario, the network, whether a payment header was present, the response status and the verdict. Nothing else.
- Never the payment, the payer's address or the caller's IP address.
- Reports expire 48 hours after the first request. A run holds at most 300 requests.
- Anyone who has the run id can read the report, so use a generated id if that matters to you.

## A limit worth knowing

The report shows only what reached this site. A trap marked as passed means no payment arrived; it cannot tell a client that refused cleanly from one that crashed. Check your client's own output as well.

Source: https://x402testendpoint.com/tools/runs
