Ask the web a question.
Your agent gets the answer.
A web tool for coding agents. You ask in plain language and get structured JSON back — not HTML. Metered per page fetched; failed pages are free. Built for Cursor, Claude Code, and any MCP client.
100-page trial · 14 days · no card · or set it up manually
Built for the agent tool-call loop
Ask a question, get the answer.
Point at a URL, ask in plain language — no selectors, no schema. Real crawl, real extraction — same pipeline as the API.
Tap Run it · demo runs are free of pack billing · full playground
View run details
no entries yet — run a request
that run failed — nothing billed
From question to answer in three steps
Point at a URL
Give Plainscrape a page or site — a docs page, a product page, a changelog, anything public.
Ask in plain language
Say what you need: “What's the current price and plan names?” No CSS selectors, no XPath, no parsing code.
Get structured data back
Plainscrape returns a clean, typed answer your agent can use in the same tool call. JavaScript-heavy pages are rendered for you, so your agent gets the content instead of an empty shell.
Built for the agent tool-call loop
Ask, don't scrape
Describe the data you want in plain language. Plainscrape works out how to get it, so there are no selectors to write and nothing to fix when a site changes its markup.
Made for MCP
One config block adds Plainscrape to Cursor, Claude Code, Windsurf, VS Code, and Cline. Your agent discovers the tool and calls it — no glue code.
Token-efficient answers
You get the data you asked for, not a dump of raw HTML. Fewer tokens per call means cheaper, faster agent runs.
Honest metering
Metered per page fetched. Failed fetches aren't charged, and there are no feature multipliers hiding in the credit maths.
Pay for pages fetched, not attempts.
Metered per successful page. No credits to hoard, no surprise multipliers, no charge when a page fails. Your forecast is pages × rate — simple math.
packs, expiry, and competitor rate cards → pricing · measured runs → benchmarks
| A plain HTML page | 1 page |
| A JavaScript-rendered page | 1 page |
| Through proxies, with extraction | 1 page |
| A page that failed or was blocked | 0 — free |
| What you can forecast | pages × rate |
Competitor credit ladders (ScrapingBee, Firecrawl, and others) live on pricing and benchmarks — this table is only our meter.
FAQ
Those return the page (as markdown or HTML) and leave the parsing to you or your model. Plainscrape is question-first: you ask what you need and get the structured answer directly, so your agent spends tokens reasoning instead of parsing. Longer answer: structured JSON, not HTML.
Yes. Add the MCP server with one line and your agent can call Plainscrape as a tool. It also works with Windsurf, VS Code, and Cline, or you can call the REST API directly. Cursor: /integrations/cursor. Claude Code: /integrations/claude-code.
No. Describe the data in plain language. There are no selectors to write or maintain. Why HTML redesigns shouldn't break the job.
Per page fetched. Failed pages aren't charged, and there are no feature multipliers hiding in the credit math. New accounts get a one-time 100-page trial (14 days, no card). After that, pages come from packs — nothing resets on the 1st of the month.
Yes — rendering is handled for you, so your agent gets the content instead of an empty shell. JavaScript-rendered pages.
Submits are gated against non-public network addresses. API keys are hashed and shown once. We store a truncated instruction, a small output sample, and operational events (typically 90 days) — there is no nightly wipe of accounts; email hello@plainscrape.com to request deletion. URL and instruction go to the extraction box. There is no SOC 2 report. Details: privacy and security.
Built for Cursor, Claude Code, and any MCP client.
Add Plainscrape in one config block. Your agent discovers the tool and calls it — no glue code. Or hit the REST API directly if you prefer.
100-page trial. 14 days. One-time.
Get an API key Add to Cursorno card · MCP or REST · failed pages free · or set it up manually