Introducing web search monitors

Web scraping API. Return it your way.

Turn websites and PDFs into Markdown, HTML, structured fields, images, and screenshots. Choose the formats your product needs in one request.

Get API key

Powering agents and products with the world's data.

Super.com logo
Passionfroot logo
Zero logo
Upstash logo
Mintlify logo
Chatwoot logo
Similarweb logo
Klarna logo
Ferndesk logo
DocsBot logo
Daily.dev logo
Sixtyfour logo
Comp AI logo
Squad logo

Scrape anything at a glance

The Context.dev web scraping API turns any public URL or PDF into clean Markdown, HTML, screenshots, images, CSS-parsed fields, or JSON that matches your JSON Schema, in one request. Every request renders JavaScript in a real browser with anti-bot handling and proxies included, so there is no rendering or premium-proxy surcharge.

A page costs 1 credit across every requested format, 2 with browser actions, and 5 with AI JSON extraction. Blocked and failed requests are not billed; only a missing page (404) costs the base price. The free plan includes 1,000 credits a month, official SDKs cover TypeScript, Python, Ruby, Go, and PHP, and the same API is available as a hosted MCP server and a CLI.

POST/v1/web/scrape

Read the API reference
per page, across every format
1 credit
JavaScript rendering, anti-bot, proxies
Included
per page with AI JSON extraction
5 credits
free credits every month
1,000

Any page, any format. One request.

Choose the outputs your product needs and get them back together, from clean Markdown to a full-page screenshot.

  • Choose your output

    Request multiple formats together. Read clean content, keep the HTML, or capture the page visually.

  • Extract JSON with AI

    Send a JSON Schema and get typed fields back from any page, without writing selectors.

  • Read dynamic pages

    Every request renders JavaScript. Add browser actions and wait controls when content depends on clicks or scrolling.

Start with a URL. Get usable data.

Request the outputs you need through the SDK. Use the same API key when you are ready to map domains, run batches, or create monitors.

npm install context.dev
Read the API reference
scrape.ts
import ContextDev from 'context.dev';

const client = new ContextDev({ apiKey: 'YOUR_API_KEY' });

const page = await client.web.scrape({
  url: 'https://linear.app',
  formats: {
    markdown: true,
    html: true,
    screenshot: true,
  },
  sharedParams: { mainContentOnly: true },
});

if (page.markdown.success) console.log(page.markdown.data);
if (page.screenshot.success) console.log(page.screenshot.data);

From a single page to your next feature.

Feed your knowledge pipeline, or collect pages across a much larger job with the same API key.

  • Ground RAG in fresh content

    Crawl a sitemap, convert every page to clean Markdown, and send it straight into your embeddings, with no brittle parsers in between.

  • Run batches at scale

    Scrape thousands of URLs in one job, or crawl an entire site, then collect the results when the batch completes.

A few things to know.

More details in the API documentation.

Is there a free web scraping API?

Yes. The free plan includes 1,000 credits every month with no credit card. A standard scrape costs 1 credit, so that covers 1,000 pages, with JavaScript rendering and proxies included. Paid plans start at $20 a month for 10,000 credits.

Does the API render JavaScript?

Yes. Every request loads in a real browser, so single-page apps and lazy-loaded content come back complete. Add browser actions when a page needs clicks or scrolling first.

Can I request several formats at once?

Yes. Enable the formats you need in the same scrape request. Markdown, HTML, images, screenshots, parsed fields, and the original response body have their own output controls.

Can I scrape PDFs as well as websites?

Yes. Pass the public document URL to Scrape and request Markdown or HTML. PDF parsing options let you choose pages and enable OCR for scanned content. Use Parse File when you already have the file bytes.

How do I request fresh content?

Set maxAgeMs to 0 to request a fresh capture. A higher value lets the API reuse content captured within that time window.

How do I scrape a large list of URLs?

Use Batches to submit up to 100,000 URLs or crawl a website asynchronously. Keep the job ID to track progress, collect paginated results, or receive a completion webhook.

How does the API handle JavaScript-heavy websites and anti-bot protection?

Every scrape loads the page in a real browser and routes through managed proxies with anti-bot handling on the standard request path, so client-rendered content and common bot challenges are handled without a premium-proxy flag or an extra credit multiplier. Pages that need interaction accept up to 5 browser actions and wait controls for 2 credits. No provider gets through every protection on every site, so each output reports its own success flag and error code, and blocked requests are not billed.

Am I billed for failed requests?

Most failed requests are not billed. Not-found responses (404) are billed at the request’s base price. Scrape can return a 200 with failed outputs: it charges when at least one output succeeds or the target page is missing. Check key_metadata.credits_consumed for the amount charged. Crawls and batches charge per successful page.

Which languages and SDKs can I use?

Official SDKs cover TypeScript (npm install context.dev), Python (pip install context.dev), Ruby, Go, and PHP, and any language can call the REST API with one bearer token. A CLI covers terminal and agent shells, and the hosted MCP server at https://mcp.context.dev/mcp gives Claude, Cursor, Codex, and ChatGPT the same scrape, crawl, and search tools.

What are the rate limits?

Limits cap concurrent requests per organization: Free allows 2, Developer 10, Pro 100, Growth 250, and Scale 500, with no per-minute cap by default. The dashboard shows your effective limits, and Enterprise plans can have custom limits.

Scrape your first page in minutes.

Turn any URL into the format your product needs. The same API key works for crawling, batches, and monitors.

1,000free credits

Every month. No credit card required.

Start for freeRead the docs