Web Scraping Scrape page API
Scrape any web page and get its main content back as clean Markdown plus title and metadata.
Provider network
Providers ranked by traffic
Try it
Make your first request
{
"found": true,
"data": {
"url": "https://www.example.com/blog/launch",
"title": "Introducing Example 2.0",
"description": "Everything new in the biggest Example release yet.",
"markdown": "# Introducing Example 2.0\n\nToday we are shipping the biggest release in our history…"
}
}interface WebScrapeResponse {
data: {
description: string;
html?: string;
markdown?: string;
rawHtml?: string;
title: string;
url: string;
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-16 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/web.scrape \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.example.com/blog/launch"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| url | string | "https://www.example.com/blog/launch"The URL of the page to scrape. |
| blockAds | boolean | When true (upstream default), strip ad and cookie-consent elements before capture. Set false to keep them. |
| excludeTags | array | CSS selectors to drop before capture (for example ["nav", "footer", ".ads"]). Applied after includeTags. |
| formats | array | Which representations of the page to return. Any combination of: markdown (page content as Markdown), html (the page HTML exactly as the browser received it, including head and script tags). Each requested format is returned under the matching output field. Defaults to both. rawHtml is a deprecated alias of html, returned under a rawHtml field for callers that predate the rename; send html instead. |
| includeTags | array | CSS selectors to keep. When set, only content matching these selectors is captured (for example ["article", "main"] or ["#content"]). |
| mobile | boolean | When true, render the page with a mobile viewport and user agent instead of desktop. Some sites serve materially different content to mobile. |
| onlyMainContent | boolean | When true, return only the main article content, stripping navigation, headers, footers, and other boilerplate. Defaults to false to capture the full page. |
| waitFor | integer | Milliseconds to wait for the page to finish rendering before capture. Use this for JavaScript-heavy pages or single-page apps whose content loads after the initial paint. Capped at 15000 to stay within the request timeout. This wait is time you asked us to spend, so your response takes this much longer, and it is excluded from the latency published for this endpoint. |
| Response | ||
| found | boolean | true |
| data | object | |
| data.url | string | "https://www.example.com/blog/launch" |
| data.title | string | "Introducing Example 2.0" |
| data.description | string | "Everything new in the biggest Example release yet." |
| data.markdown | string | "# Introducing Example 2.0\n\nToday we are shipping the biggest release in our history…" |
| Price | ||
| Price per request | USD | $0.0007 |
| Price /1k req | USD | $0.70 |
FAQ
About the Web Scraping Scrape page API
The AnyAPI Web Scraping Scrape page API returns Web Scraping scrape page data as normalized JSON from one POST call to /v1/run/web.scrape. Scrape any web page and get its main content back as clean Markdown plus title and metadata. AnyAPI routes each request across 4 sources and falls back automatically when one fails. It costs from $0.70 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 93.9% of Web Scraping scrape page calls through AnyAPI succeeded, with a median response time of 2.6 seconds across 7,504 measured calls.