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

# Output formats

> Tables in a terminal, JSON in a pipe. Same command, both worlds.

`jetemail` adapts to its environment automatically.

* In a **terminal**, `list`-style commands render compact tables. `email send` prompts for missing fields, shows a spinner, and prints a friendly success line.
* In a **pipe or non-TTY** (`jq …`, CI logs, AI agents), every command emits pretty JSON to stdout. Errors and spinners go to stderr so stdout stays clean.

## Global flags

| Flag            | Effect                               |
| --------------- | ------------------------------------ |
| `--json`        | Force JSON output even in a terminal |
| `--raw`         | Compact (single-line) JSON           |
| `-q`, `--quiet` | Suppress spinners and status chatter |

## Terminal mode

```sh theme={null}
jetemail outbound domains list
```

```
 Domain               UUID                                  Verified  DKIM
 example.com          5f3b…-7a21                            ✓         ✓
 mail.example.com     8c12…-9d04                            ✓         ✗
```

```sh theme={null}
jetemail send --to alice@example.org --from no-reply@example.com --subject hi --text hi
```

```
✓ Email queued
  to: alice@example.org
  subject: hi
  id: msg_abc123…
```

## Pipe / non-TTY mode

```sh theme={null}
jetemail outbound domains list | jq '.[] | .domain'
"example.com"
"mail.example.com"
```

```sh theme={null}
jetemail outbound domains list --raw | jq -r '.[].uuid'
```

`--raw` is compact JSON (single line) which is useful when streaming many records.

## Forced JSON in a terminal

```sh theme={null}
jetemail outbound domains list --json
```

Useful when copy/pasting structured output to another tool, or when scripting interactively.

## CSV outputs

A few endpoints return raw CSV instead of JSON. The CLI writes them to stdout unmodified:

```sh theme={null}
jetemail outbound suppression export > suppressions.csv
```

See [`outbound`](/cli/commands/outbound) for `suppression import` (the inverse).

## Errors

Errors print the HTTP status and parsed response body to stderr and exit with code `1`. See [Exit codes](/cli/exit-codes).
