# Reference

## Output formats

Use `--output` / `-o` on any command:

| Value | Description |
|---|---|
| `table` _(default)_ | Bordered ASCII table, auto-fits terminal width |
| `json` | Pretty-printed JSON |
| `compact-json` | Single-line JSON |
| `colored-json` | Syntax-highlighted JSON (ANSI colors) |
| `yaml` | YAML |
| `markdown` | Pipe-delimited Markdown table |
| `csv-eu` | CSV with `;` separator |
| `csv-us` | CSV with `,` separator |
| `tsv` | Tab-separated values |

Control which columns appear with `--columns id|name|email` (pipe-separated dot-paths).

## Global options

These options are available on every command:

| Option | Short | Description |
|---|---|---|
| `--api-key` | | Override API key (env: `ALTOVIZ_CLI_API_KEY`) |
| `--endpoint` | | Override base URL (env: `ALTOVIZ_CLI_ENDPOINT`, default: `https://api.altoviz.com`) |
| `--output` | `-o` | Output format (see above) |
| `--columns` | | Pipe-separated dot-path column list |
| `--file` | `-f` | JSON/YAML input file, or `-` for stdin |
| `--verbose` | | Print HTTP request/response to stderr |
| `--no-color` | | Disable ANSI colors |
| `--quiet` | `-q` | Suppress all output except errors |
| `--yes` | `-y` | Skip confirmation prompts |
| `--show-time` | | Include time component in date columns |

## Exit codes

| Code | Meaning |
|---|---|
| `0` | Success |
| `1` | General failure (network error, server error) |
| `2` | Usage error (invalid arguments or options) |
| `3` | Resource not found (HTTP 404) |
| `4` | Permission denied (HTTP 401 / 403) |
| `5` | Conflict (HTTP 409 — resource already exists) |

When using `--output json`, API errors are also written to stdout as a structured object:

```json
{
  "error": true,
  "statusCode": 404,
  "detail": { "message": "Customer not found" }
}
```