# Output formats

`bee-check` emits results in one of two formats, selected with
`--output`.

## `--output text` (default)

Human-readable, terminal-friendly. Roughly:

```
ref     c79394a6c311f816373ec9945365325e7fc0784cfa9a62deec1524d2c2bdc36a
status  Retrievable

vantages:
  http://localhost:1633     retrievable   312 ms  nb 71 PO 3
  https://b.example          retrievable   1102 ms nb 4a PO 0

gateways:
  https://api.gateway.ethswarm.org  retrievable   480 ms  HTTP 200
```

If `--per-chunk` was used, additional tables follow for chunk stats
per vantage, per neighborhood, and (verbose mode) the full chunk
matrix.

This format is for **eyes**, not scripts. It's not stable across
versions — the JSON format is.

## `--output json`

Machine-readable, stable shape. Emits the full report as a JSON
object matching [`spec_version: 1`](../reference/report-shape.md):

```json
{
  "reference": "c79394a6c311f816373ec9945365325e7fc0784cfa9a62deec1524d2c2bdc36a",
  "status": "retrievable",
  "vantages": [
    {
      "bee_url": "http://localhost:1633",
      "retrievable": true,
      "elapsed_ms": 312,
      "overlay": "7179...6c9a",
      "bee_version": "2.7.2-rc1-868c1d52",
      "proximity_to_root": 3
    }
  ],
  "spec_version": 1
}
```

Canonical scripting pattern:

```bash
bee-check <ref> --output json | jq '.status'
bee-check <ref> --output json | jq '.vantages[] | select(.retrievable == false)'
bee-check <ref> --per-chunk --output json | jq '.chunk_stats.per_neighborhood'
```

The JSON output is also what `bee-check-web` consumes via drag-and-
drop, so you can share a report file with a teammate who'll then
visualize it in the browser without re-running the probe.

## Stability guarantees

- **New fields** may appear in any release without bumping
  `spec_version`. Consumers must ignore unknown fields.
- **Renamed or removed fields** bump `spec_version`.
- The text format has **no stability guarantee** — don't grep it for
  scripting. Use `--output json`.
