# download

The `download` step.

Clicks a trigger, captures the file it downloads and stores it as a job artifact with the response's content type. A PDF passes the [PDF security gate](https://docs.kaab.ist/concepts/documents-and-pdfs) first: a blocked one is never stored, and the step fails with its code.

Type: `object`

## Keys

| Key | Type | Description |
|---|---|---|
| `download.max_bytes` | `integer` | The largest file accepted, in bytes, up to `67108864` (64 MB). Defaults to `67108864`. |
| `download.name` | `string` | The artifact name, a template. Letters are transliterated (`ü` becomes `u`), other characters become `-`, the result is at most 128 characters, and a name without an extension gets the file type's; a literal name that keeps nothing is lint `E014`. |
| `download.trigger` | `target` | The element whose click starts the download. |

Every step also takes the [common step keys](https://docs.kaab.ist/reference/dsl/steps#common-keys): `expect`, `id`, `if`, `name`, `on_error`, `optional`, `retry`, `side_effect`, `timeout_ms`, `x_kaab`.
