Skip to main content
Give Scrape a URL and a JSON schema and it returns that shape, filled in from the page. It renders JavaScript first, so single-page apps and pages that build their content client-side work the same as static HTML.

Overview

Two operations, priced separately because they cost differently. POST /v1/scrape renders the page and runs an LLM extraction against your schema, and is billed per page. POST /v1/fetch renders the page and returns its raw HTML plus metadata with no extraction, at a quarter the price — reach for it when you only need og:image, JSON-LD, or the raw HTML and intend to parse it yourself. Only calls that returned a page are billed. A failed scrape, a timeout, or an unreachable host costs nothing. The response tells you what was metered in its pages or fetches field, so what you were charged is visible in the same payload as the result. What it does not do: there is no search endpoint. Scrape answers questions about a URL you already have — it will not find one for you, and a caller that needs ‘the best image for this event name’ has to bring its own candidate URLs. It also does not crawl: one call is one page, and following links is yours to orchestrate.

Endpoints

POST /v1/scrape — Fetch a page and extract structured data from it against a JSON schema.
The response reports pages — the quantity you were metered for this call. POST /v1/fetch — Fetch a page and return its raw HTML and metadata, without LLM extraction. A quarter the price.
The response reports fetches — the quantity you were metered for this call.

Request options

Pricing

Only calls that returned a result are billed. Failures cost nothing. Billed monthly in arrears — see Billing.

Authentication

Send a key as a bearer token. This service’s operations require the scrape:run and scrape:fetch scopes, granted independently — and the project must have Scrape enabled. See Authentication.