Turn any web page into Markdown your model can read.
Send a URL, get back the article as clean Markdown with its title, author and date. Navigation, ads and cookie banners are removed, and pages that only exist after JavaScript runs are rendered in a real browser first.
The demo needs no account and allows 5 conversions every 10 minutes. Create an account for an API key with 1,000 free credits a month.
Into your own code in three steps
Create an account
1,000 credits every month are free, and no card is needed until you want more.
Create an API key
On the dashboard. It is shown once; send it as a bearer token.
Send your first request
With curl, the TypeScript client from the webforai package, or npx webforai on the command line.
curl -X POST https://platform.webforai.dev/v1/scrape \
-H "Authorization: Bearer $WEBFORAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com/article" }'POST /v1/scrapeOne page, right away- The Markdown and metadata come back in the same response.
POST /v1/batchUp to 100 URLs- Runs in the background with retries; read the results page by page when the job is done.
POST /v1/crawlA whole site- Follows links on the same site from a start URL, within the depth, page and path limits you set.
You only pay for a browser when the page needs one
Requests default to auto. It fetches the page plainly, and only if the HTML turns out to be an empty JavaScript shell or the site refuses the request does it run the page again in a browser. The response says which engine produced it, and that is the one you are billed for.
Set "region": "jp" to leave from Japanese IP addresses through the proxy pair instead.
fetch1 creditStatic pages: articles, docs, most blogs
browser2 creditsSingle-page apps and bot-protected sites
| Pin an engine | How it fetches | Japanese IPs | Screenshot |
|---|---|---|---|
| fetch | Plain HTTP request from Cloudflare's edge | — | — |
| browser | Headless Chromium; runs the page's JavaScript | — | Yes |
| proxy-fetch | HTTP request through a rotating proxy | Yes | — |
| proxy-browser | Headless Chromium behind the rotating proxy | Yes | Yes |
Pricing
One counter — credits — metered per successful page. From $1 per 1,000 pages, with 1,000 credits free every month and lower rates as volume grows.
Per 1,000 pages
What each engine costs once the free credits are used.
| Engine | Credits | Per 1k pages | At volume |
|---|---|---|---|
| autodefault — fetch, browser only when needed | 1–2 | $1.00–$2.00 | $0.50–$1.00 |
| fetchPlain fetch | 1 | $1.00 | $0.50 |
| browserBrowser rendering | 2 | $2.00 | $1.00 |
| proxy-fetchFetch via rotating proxy | 2 | $2.00 | $1.00 |
| proxy-browserBrowser via rotating proxy | 3 | $3.00 | $1.50 |
"At volume" is the rate above 1,000,000 credits in a month. Screenshot +1 credit, image rehosting +1 per started 5 images. Failed operations are never billed.
Credits per month
Pay as you go, no plans. Each rate applies only to the credits inside its band.
Without a subscription the API stops at the free allowance with 402 payment_required — no surprise bills. No card required to start.
Estimate your month
For the default auto engine: pages that need JavaScript are rendered in a browser and billed at the browser rate.
Estimated monthly bill
$59.00
60,000 credits · $1.18 per 1k pages
Start with 1,000 free credits
That is 1,000 static pages or 500 rendered ones, every month.