# extract

The `extract` step.

Reads data from the page with an extract schema. The last extract into `data` produces the job's result; several merge shallowly, later keys winning.

Type: `extract`

## Keys

| Key | Type | Description |
|---|---|---|
| `extract.into` | `"data" \| "vars"` | Where the extracted values go: `data` (the default), the job's result, or `vars`, for use in later templates and conditions. |

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

## Example

```json
{
  "extract": {
    "heading": "h1"
  }
}
```

From the contract fixture `capture-response`, a program the test suite validates.
