Backed byY CombinatorCombinator

Web Scraping {API}

Turn any URL into clean Markdown, raw HTML, images, or structured JSON — with one API call.

JavaScript rendering, bot-detection bypass, and proxy escalation are handled server-side on every request. You send a URL; you get back clean, LLM-ready data.

Free tier included. No credit card, no proxy configuration, no headless browsers to babysit.

Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo

What is a web scraping API?

A web scraping API is a service that extracts data from websites through a single HTTP request. Instead of building and maintaining your own scraping infrastructure — headless browsers for JavaScript rendering, rotating proxy pools, CAPTCHA handling, retry and backoff logic — you send the API a URL and get back clean, structured content. The API absorbs the adversarial parts of scraping so your integration stays a simple request and response.

The modern web makes this harder than it sounds. Most sites now render content client-side, so a plain HTTP fetch returns an empty shell. Bot-detection systems fingerprint requests and block datacenter IPs. Layouts change without notice and silently break hand-written selectors. A good scraping API absorbs all of that: it renders JavaScript when the page needs it, escalates through residential proxies when a request is blocked, and returns content in a format your code — or your model — can consume directly.

That last part matters more than it used to. LLMs process Markdown far more efficiently than raw HTML, which wastes tokens on tags, classes, and tracking noise. Context.dev's web scraping API was built for this era: every page comes back as clean GitHub Flavored Markdown by default, documents like PDF and DOCX are parsed into text, and an AI extraction endpoint returns structured JSON against a schema you define — no selectors to write, no parsers to maintain.

What You Get

Production scraping infrastructure, exposed as one clean API.

JavaScript rendering built in

Single-page apps built with React, Vue, or Angular render fully before extraction. You never pick a mode — the API detects when a headless browser is needed and uses one automatically.

Stealth on every request

Bot-detection bypass and automatic proxy escalation are included on every plan, on every call. No credit multipliers, no premium proxy add-ons, no CAPTCHA-solving surcharges.

Every output format

Clean GitHub Flavored Markdown, raw HTML, page images, sitemaps, screenshots, or structured JSON extracted against your own schema — from the same API key.

Documents, not just pages

The scraper parses PDF, DOCX, DOC, and XML content into clean, LLM-ready text. Point it at a whitepaper or a sitemap file and get usable output back.

Pay only for success

Failed requests and blocked pages are never billed. Credits are consumed only when the API returns the content you asked for.

Built for AI pipelines

Markdown output is roughly 5x more token-efficient than raw HTML, so your RAG pipeline or agent spends its context window on content instead of markup.

How It Works

Four things happen between your request and your data — you only write the first one.

— step 01

Send a URL

One GET request with your target URL and optional parameters for links, images, and documents

— step 02

We fetch the page

JavaScript rendering, bot-detection bypass, and proxy escalation happen automatically as needed

— step 03

Content is cleaned

Ads, nav chrome, cookie banners, and tracking noise are stripped; structure is preserved

— step 04

Data comes back

Markdown, HTML, images, or structured JSON — ready for your pipeline, vector store, or agent

API Response

A single GET request returns LLM-ready Markdown for any URL.

GET /v1/web/scrape/markdown?url=https://context.dev&includeLinks=true
{
  "success": true,
  "url": "https://context.dev",
  "markdown": "# Context.dev — The Internet's Brand API\n\nAPI to personalize your product with logos, colors,\nand company info from any domain.\n\n## Features\n\n- **Company Logos** — Fetch high-res logos from any domain\n- **Brand Colors** — Extract full color palettes\n- **Company Data** — Address, socials, description and more\n..."
}

Start scraping in three lines

The same call works from JavaScript, Python, Ruby, Go, PHP, or plain curl. SDKs are typed, versioned, and published to npm, PyPI, and friends.

TypeScriptscrape.ts
import ContextDev from 'context.dev';

const client = new ContextDev({ apiKey: process.env.CONTEXT_DEV_API_KEY });

const { markdown } = await client.web.webScrapeMd({
  url: 'https://example.com/pricing',
});
Pythonscrape.py
from context.dev import ContextDev

client = ContextDev(api_key="YOUR_API_KEY")

response = client.web.web_scrape_md(
    url="https://example.com/pricing",
)
print(response.markdown)
curlterminal
curl -X GET "https://api.context.dev/v1/web/scrape/markdown?url=https://example.com/pricing" \
  -H "Authorization: Bearer YOUR_API_KEY"

What teams build with it

AI agents and RAG pipelines

The most common use case in 2026: giving a model live web access. Agents call the scrape endpoint to read pages mid-task; RAG pipelines crawl documentation sites and knowledge bases into vector stores. Markdown output keeps token costs down, and web context for LLMs stays fresh without re-engineering your ingestion.

Competitive and price monitoring

Scrape competitor pricing pages, product catalogs, and changelogs on a schedule, then diff the output. Because Markdown strips presentation noise, diffs reflect real content changes rather than markup churn — see website change monitoring.

Lead and company enrichment

Point the API at a prospect's domain and combine page content with the brand data endpoints— logos, colors, socials, address, and NAICS/SIC industry codes — to build enriched records that a generic scraper alone can't produce.

Search-grounded answers

The web search endpoint runs a query and scrapes each result to Markdown in one round-trip, so you can ground model answers in current sources without stitching together a search API and a scraper yourself.

Content migration and archiving

Full-site crawls convert legacy sites, wikis, and documentation into portable Markdown — useful for CMS migrations, compliance archives, and building corpora for fine-tuning.

Why not build your own scraper?

You can absolutely scrape without an API — we've written guides to doing it well in Node.js and Python, and a roundup of the best open-source scraping tools. For a handful of friendly, static pages, a library and an afternoon are all you need.

The economics change at production scale. A scraper that works today breaks when the target site ships a redesign, adds Cloudflare, or starts fingerprinting datacenter IPs. Now you're maintaining browser farms, sourcing residential proxies, and writing retry logic — engineering time that compounds every month and differentiates nothing about your product. A web scraping API converts that maintenance burden into a metered bill: one request in, clean data out, and the anti-bot arms race is someone else's full-time job.

If you're comparing providers, we publish honest feature-by-feature breakdowns against Firecrawl, ScraperAPI, and ScrapingBee. The short version: most scraping APIs charge extra for JavaScript rendering and premium proxies; Context.dev includes both on every request and adds resolved brand and company data no pure scraper returns.

Simple, success-based pricing

A standard scrape costs one credit, and you're never billed for failed or blocked requests.

Sign up with a work email and get 500 free API credits at 30 requests per minute — enough for 500 Markdown scrapes; free-email signups get 250 credits at 10 requests per minute. Paid plans scale linearly per credit with no annual contract and no surprise multipliers for JavaScript rendering or stealth. Full details are on the pricing page.

Frequently asked questions

Common questions about the Context.dev web scraping API.

What is a web scraping API?
A web scraping API is a service that extracts data from websites through a single HTTP request. Instead of building and operating your own scraping infrastructure — headless browsers, rotating proxies, CAPTCHA handling, retry logic — you send the API a URL and it returns clean content: Markdown, HTML, images, or structured JSON. The API absorbs the hard parts of scraping (JavaScript rendering, bot detection, IP blocks) so your code stays a simple request-and-response.
How is a web scraping API different from a library like BeautifulSoup or Puppeteer?
Libraries parse or render pages on machines you run. That works until sites block your IP, deploy bot detection, or require JavaScript rendering at a scale your infrastructure cannot handle. A web scraping API runs that infrastructure for you — browsers, proxies, and anti-bot bypass live on the API side, and you only write the request. Most teams start with a library and switch to an API when maintenance costs exceed the subscription.
Can I use the web scraping API from Python or JavaScript?
Yes. Context.dev ships official SDKs for TypeScript/JavaScript, Python, Ruby, Go, and PHP, and the REST API works from any language that can send an HTTP request. In JavaScript it is client.web.webScrapeMd({ url }); in Python it is client.web.web_scrape_md(url=...). Both return clean Markdown in one call.
Does it handle JavaScript-heavy websites?
Yes. When a target page is a single-page app or requires client-side rendering, the API renders it in a headless browser before extraction and converts the post-render DOM. You do not choose a rendering mode or pay a rendering surcharge — the API picks the right strategy per URL.
What output formats does the API support?
GitHub Flavored Markdown, raw HTML, page images, sitemap URL lists, screenshots, and structured JSON extracted against a schema you define. Beyond web pages, the scraper parses PDF, DOCX, DOC, and XML documents into clean text.
Is web scraping legal?
Scraping publicly accessible data is generally permissible in most jurisdictions, but the details matter: site terms of service, copyright, rate limits, and privacy laws like GDPR and CCPA all apply, and personal data carries stricter obligations than public business data. This is not legal advice — if your use case is sensitive, consult counsel.
How much does the web scraping API cost?
Signing up with a work email gets you 500 free API credits at 30 requests per minute; free-email signups get 250 credits at 10 requests per minute. A standard scrape costs one credit, and paid plans scale per-credit with no annual contract. See the pricing page for current plan details.
Am I billed for failed or blocked requests?
No. Credits are only consumed on successful responses. If a page fails to load or a site blocks the request (rare, given automatic proxy escalation), you are not charged.
How does Context.dev compare to Firecrawl or ScraperAPI?
All three convert URLs into machine-readable output. Context.dev includes stealth bot bypass and proxy escalation on every request at no extra charge, parses documents (PDF, DOCX, XML) as well as pages, and pairs scraping with resolved brand and company data — logos, colors, fonts, NAICS/SIC codes — that generic scrapers do not return. See the Firecrawl and ScraperAPI comparison pages for a feature-by-feature breakdown.
Can I crawl an entire website, not just one page?
Yes. The crawl endpoint accepts a root URL and returns Markdown for every page it discovers, with configurable depth, page limits, URL include/exclude filters, and subdomain following. For URL discovery without content, the sitemap endpoint lists every page on a domain in one call.

Ship an agent that actually knows things.

Free tier, 10-minute integration, and the same API powering agents at Mintlify, daily.dev, and Propane. No credit card to start.