> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.neetoform.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Output formats

> Pretty tables, the JSON envelope, quiet mode and TOON.

The CLI picks a format from where its output is going, and four global flags
override that choice. They work on every command.

| Flag      | Output                                                                          |
| --------- | ------------------------------------------------------------------------------- |
| none      | Pretty tables and key-value blocks on a terminal, the JSON envelope when piped. |
| `--json`  | The JSON envelope, even on a terminal.                                          |
| `--quiet` | The payload only, with no envelope.                                             |
| `--toon`  | TOON, a compact encoding for feeding results to an AI assistant.                |

If more than one is set, the precedence is `--toon`, then `--quiet`, then
`--json`, then pretty.

## Pretty

The default on a terminal. Arrays render as tables, single records as key-value
blocks, and list commands print a pagination summary and breadcrumbs to related
commands underneath.

```bash theme={"system"}
neetoform forms list
```

<Note>
  Tables show at most seven columns, chosen from the fields the API returned and
  trimmed to your terminal width. Which columns appear is therefore not stable
  across resources or terminals. Use `--json` for anything you intend to parse,
  which is the format every sample in the [command reference](/cli-reference/overview)
  uses.
</Note>

## JSON envelope

Used automatically when output is piped or redirected, and forced with `--json`.
The payload is wrapped in an envelope:

```json theme={"system"}
{
  "data": [
    {
      "id": "7db4b04a-6e17-4af6-a1d6-650c4cba3f91",
      "title": "Customer feedback",
      "state": "active",
      "is_published": true,
      "submissions_count": 128
    }
  ],
  "breadcrumbs": [
    {
      "label": "Submissions",
      "command": "neetoform forms submissions list <form-id>"
    }
  ],
  "pagination": {
    "current_page_number": 1,
    "total_pages": 4,
    "total_records": 97,
    "page_size": 30
  }
}
```

`data` holds the resource body. `breadcrumbs` is omitted when there are none,
and `pagination` appears only on list commands.

## Quiet

`--quiet` drops the envelope and prints the payload alone, which is what you
want inside a script:

```bash theme={"system"}
neetoform forms list --quiet | jq -r '.[].id'
```

For commands that create or update a record it prints just the identifier, and
for `delete` it prints `success`. That makes a new record's id easy to capture:

```bash theme={"system"}
id=$(neetoform team-members create --emails oliver@example.com --role Standard --quiet)
```

## TOON

`--toon` emits TOON, which carries the same data as JSON with the repeated keys
factored out. It is meant for handing results to an AI assistant, where it costs
noticeably fewer tokens than the equivalent JSON.

```bash theme={"system"}
neetoform forms list --toon
```

Read it as the JSON it stands for: a header names the fields once, and each
following line is one record's values in that order.

## Pagination

List commands take `--page` (1-indexed, default `1`) and `--page-size`
(maximum `100`). The envelope's `pagination` block reports
`current_page_number`, `total_pages`, `total_records` and `page_size`, so a
script can walk every page by incrementing `--page` until it reaches
`total_pages`.

```bash theme={"system"}
neetoform forms list --page 2 --page-size 50
```
