---
title: "Scrape web page"
method: POST
path: "/api/v1/platform/scrapers/web/scrape"
tags: ["Scrapers"]
---

# Scrape web page

`POST /api/v1/platform/scrapers/web/scrape`

Fetch a web page and return readable text plus requested markdown, HTML, links, metadata, or schema-guided JSON.

## Request body

- PlatformWebScrapeDto
  - `url` string, required — URL to scrape
  - `renderJs` boolean — Render JavaScript before scraping
  - `formats` string[] — Output formats to return. Defaults to ["text"]. Request "json" only with jsonSchema.
  - `jsonSchema` object — JSON Schema used for schema-guided extraction when formats includes "json".
  - `instructions` string — Additional extraction instructions used only when formats includes "json".
  - `maxAgeMs` number — Maximum accepted cache age in milliseconds. Use 0 or omit to force a fresh scrape.
  - `maxAgeDays` number — Maximum accepted cache age in days. Use 0 or omit to force a fresh scrape. Ignored when maxAgeMs is provided.

## Response `200`

Scraped web page content.

- object
  - `data` WebScrapeResponseDto, required
    - `url` string, required
    - `text` string, required
    - `statusCode` number, nullable
    - `markdown` string, nullable
    - `html` string, nullable
    - `links` string[]
    - `metadata` WebScrapeMetadataResponseDto
      - `title` string, nullable
      - `description` string, nullable
      - `canonicalUrl` string, nullable
      - `finalUrl` string, nullable
      - `contentType` string, nullable
      - `statusCode` number, nullable
      - `textLength` number, nullable
      - `responseBytes` number, nullable
      - `capture` WebScrapeCaptureMetadataResponseDto
        - `mode` string, required
        - `completionReason` string, required
        - `scrollsCompleted` number, required
        - `maxScrolls` number, required
        - `expansionClicks` number, required
        - `maxExpansionClicks` number, required
        - `durationMs` number, required
    - `json` object
  - `meta` PublicResponseMetaDto, required
    - `requestId` string, required

## Other responses

- `400` — The request body or parameters are invalid.
- `401` — Authentication is required.
- `402` — The organization does not have enough credits for this request.
- `500` — An unexpected error occurred.
- `502` — The upstream service could not complete the request.
- `503` — The service is temporarily unavailable.
- `504` — The upstream service timed out before completing the request.

---

[API](https://skmtc.net/thehog/apis/the-hog-api.md) · [All operations](https://skmtc.net/thehog/apis/the-hog-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thehog/the-hog-api/versions/f5056017668a/schema)
