# Full page options

> Reference for the full page options of the shotkit screenshot API, with an example request for each.

Capture the whole scrollable page instead of the viewport. The page is scrolled first so lazy-loaded images and sections render.

### `full_page`

Capture the full scrollable page. Not available for recorded formats (`gif`, `mp4`, `webm`, animated `webp`); use `animation_scroll` to record the whole page instead.

Type: `boolean` · Default: `false`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true}' \
  --fail-with-body -o shot.jpg
```

### `full_page_scroll`

Scroll to bottom first to load lazy images (auto with full_page).

Type: `boolean`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_scroll":false}' \
  --fail-with-body -o shot.jpg
```

### `full_page_scroll_delay`

Delay between scroll steps (ms).

Type: `number` · Default: `400` · Range: `0`–`5000`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_scroll_delay":800}' \
  --fail-with-body -o shot.jpg
```

### `full_page_scroll_by`

Pixels per scroll step (default: viewport height).

Type: `number` · Min: `50`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_scroll_by":500}' \
  --fail-with-body -o shot.jpg
```

### `full_page_max_height`

Cap the full-page height (px).

Type: `number` · Min: `1`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_max_height":6000}' \
  --fail-with-body -o shot.jpg
```

### `full_page_slices`

Split into vertical slices (URLs returned). Returns the slices as URLs: in the JSON body with `response_type=json`, otherwise in the `X-Full-Page-Slices-Url` header (a JSON file listing them). The full image is still returned too.

Type: `boolean` · Default: `false`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_slices":true,"response_type":"json"}' \
  --fail-with-body -o shot.json
```

### `full_page_slice_height`

Max height per slice.

Type: `number` · Default: `4000` · Range: `1`–`16000`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_slices":true,"full_page_slice_height":2000,"response_type":"json"}' \
  --fail-with-body -o shot.json
```

### `full_page_slice_overlap_height`

Overlap between slices.

Type: `number` · Default: `0` · Min: `0`

```bash
curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","full_page":true,"full_page_slices":true,"full_page_slice_height":2000,"full_page_slice_overlap_height":100,"response_type":"json"}' \
  --fail-with-body -o shot.json
```
