---
title: "Scrape webpage content"
method: POST
path: "/v1/scrape"
tags: ["Browser Tools"]
---

# Scrape webpage content

`POST /v1/scrape`

Extracts content from a specified URL.

## Request body

- ScrapeRequest
  - `delay` number — Delay before scraping (in milliseconds)
  - `format` string[] — Desired format(s) for the scraped content. Default is `html`.
  - `pdf` boolean — Include a PDF in the response
  - `projectId` string, uuid — Project to execute the scrape in.
  - `region` unknown
  - `screenshot` boolean — Include a screenshot in the response
  - `url` string, required — URL of the webpage to scrape
  - `useProxy` boolean — Use a Steel-provided residential proxy for the scrape

## Response `200`

Response from a successful scrape request

- ScrapeResponse — Response from a successful scrape request
  - `content` object, required
    - `cleaned_html` string — Cleaned HTML content of the webpage
    - `html` string — Raw HTML content of the webpage
    - `markdown` string — Webpage content converted to Markdown
    - `readability` object — Webpage content in Readability format
  - `links` object[], required
    - `text` string, required — Text content of the link
    - `url` string, required — URL of the link
  - `metadata` object, required
    - `articleAuthor` string — Author of the article content
    - `author` string — Author of the webpage content
    - `canonical` string — Canonical URL of the webpage
    - `description` string — Description of the webpage
    - `favicon` string — Favicon URL of the website
    - `jsonLd` unknown
    - `keywords` string — Keywords associated with the webpage
    - `language` string — Detected language of the webpage
    - `modifiedTime` string — Last modification time of the content
    - `ogDescription` string — Open Graph description
    - `ogImage` string — Open Graph image URL
    - `ogSiteName` string — Open Graph site name
    - `ogTitle` string — Open Graph title
    - `ogUrl` string — Open Graph URL
    - `publishedTime` string — Publication time of the content
    - `statusCode` integer, required — HTTP status code of the response
    - `timestamp` string, date-time — Timestamp when the scrape was performed
    - `title` string — Title of the webpage
    - `urlSource` string — Source URL of the scraped page
  - `pdf` object
    - `url` string, required — URL of the generated PDF
  - `screenshot` object
    - `url` string, required — URL of the screenshot image

## Other responses

- `503` — An error response from the API

## Changes

- **2026-06-16** `7b73b0d57792` — 1 breaking
  - request body became required
- **2026-06-07** `4985d7bcd32f` — 2 info
  - added the new optional request property `projectId`
  - added the optional property `linkToDocs` to the response with the `503` status
- **2026-01-08** `97dcad9b050e` — 1 breaking, 2 info
  - the `region` request property type/format changed from `string`/`` to ``/``
  - the response property `context/items/params` became required for the status `503`
  - the `metadata/timestamp` response's property pattern `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$` was added for the status `200`
- **2025-10-07** `9f3355d65c6c` — 7 breaking
  - removed the enum value `bom` of the request property `region`
  - removed the enum value `fra` of the request property `region`
  - removed the enum value `hkg` of the request property `region`
  - removed the enum value `iad` of the request property `region`
  - …3 more
- …earlier changes not shown

[Full history](https://skmtc.dev/steel-dev/apis/steel-api/changes/v1/scrape/post.md)

---

[API](https://skmtc.dev/steel-dev/apis/steel-api.md) · [All operations](https://skmtc.dev/steel-dev/apis/steel-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/steel-dev/steel-api/revisions/2248d956188a/schema)
