> ## 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.

# Body & field escape hatches

> Send arbitrary request bodies and override individual fields without waiting for new CLI flags.

Every command that takes a JSON body also accepts two escape hatches. Use them when the API supports a field that doesn't have a dedicated flag yet, or when you want to reuse a stored template.

## `--body-json`

Provides the full request body. The source can be:

* a literal JSON string
* `@path/to/file.json` to read from a file
* `-` to read from stdin

```sh theme={null}
jetemail email send --body-json '@welcome.json'
cat welcome.json | jetemail email send --body-json -
jetemail webhooks create --body-json '{"name":"prod","url":"https://api.example.com/hook","events":["outbound.delivered"]}'
```

## `--field key=value`

Set or override individual top-level fields. Repeatable. The value is parsed as JSON first (`count=5`, `active=true`, `tags='["a","b"]'`), falling back to a plain string.

```sh theme={null}
jetemail inbound domains create \
  --field domain=inbox.example.com \
  --field delivery_type=webhook \
  --field webhook_url=https://api.example.com/hook \
  --field 'webhook_headers={"X-Auth":"secret"}'
```

## Layering

Typed flags (`--from`, `--subject`, `--domain`, etc.) win over `--body-json` for the same field, so you can layer overrides on top of a stored template.

```sh theme={null}
# Reuse `welcome.json` for the bulk of the body, but override --subject and add --to
jetemail email send \
  --body-json '@welcome.json' \
  --to alice@example.org \
  --subject "Welcome, Alice"
```

Resolution order, last write wins:

1. `--body-json` source (template)
2. `--field key=value` overrides
3. Typed flags (`--from`, `--to`, `--subject`, etc.)

## When to use

* **`--body-json`**: storing reusable templates, replaying captured payloads, exotic shapes (nested objects, repeated keys).
* **`--field`**: one-off tweaks to a body the CLI already builds, or API fields that don't yet have a dedicated flag.
* **Typed flags**: everything else. They're validated, autocompletable, and clearer in scripts.
