---
title: "Extract content from a web page (POST)"
method: POST
path: "/v1/extract"
---

# Extract content from a web page (POST)

`POST /v1/extract`

## Request

- Base URL: `https://app.snap-render.com`
- URL: `https://app.snap-render.com/v1/extract`
- Auth: API key in header `X-API-Key`

Extract structured content from any web page using a JSON body. Supports the same 6 extraction types as GET. POST is recommended for programmatic use as it accepts native JSON types.

## Request body

- object
  - `url` string, required: URL to extract content from
  - `type` 'markdown' | 'text' | 'html' | 'article' | 'links' | 'metadata': Extraction type
  - `selector` string: CSS selector to scope extraction
  - `block_ads` boolean: Block ads
  - `block_cookie_banners` boolean: Remove cookie banners
  - `delay` integer: Wait after load in ms
  - `max_length` integer: Max content length
  - `cache` boolean: Use cached result (default: false)
  - `cache_ttl` integer: Cache TTL in seconds

## Response `200`

Content extracted

- ExtractResult
  - `url` string: The URL that was extracted
  - `type` 'markdown' | 'text' | 'html' | 'article' | 'links' | 'metadata': Extraction type used
  - `content` unknown
  - `wordCount` integer: Word count (for text, markdown, article types)
  - `processingTimeMs` integer: Processing time in milliseconds

## Other responses

- `400`: Invalid parameters
- `401`: Invalid or missing API key
- `429`: Rate limit or quota exceeded

---

[API](https://skmtc.dev/snap-render/apis/snaprender-screenshot-api.md) · [All operations](https://skmtc.dev/snap-render/apis/snaprender-screenshot-api/llms.txt) · [OpenAPI document](https://skmtc.dev/snap-render/apis/snaprender-screenshot-api/revisions/420ff88deeb2?raw)
