Any URL, converted to Markdown an LLM can actually read.
webforai platform wraps the webforai extraction library in a metered HTTP API. Four acquisition engines — plain fetch, browser rendering, proxied fetch, proxied browser — behind one request body, and an auto default that renders client-side pages only when they need it.
500 free credits every month — no card required.
curl -X POST https://platform.webforai.dev/v1/scrape \
-H "Authorization: Bearer wfa_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/article",
"engine": "auto",
"convert": { "extractor": "auto", "frontmatter": true }
}'Try it on any URL
The same conversion pipeline as POST /v1/scrape, running the auto engine — plain fetch, escalating to browser rendering when the page needs JavaScript. No account needed — rate-limited to 5 requests per 10 minutes.
No conversion yet
Paste a URL and press Convert — the Markdown and a rendered preview appear side by side.
Scrape
One URL in, Markdown plus metadata out. Runs synchronously on a plain Worker, so a single page returns in one request.
Batch
Up to 100 URLs per job. Runs as a Cloudflare Workflow with retries; results are paged from the job results endpoint.
Crawl
Seed URL, same-origin BFS with depth and page limits plus include/exclude path patterns. Same conversion core as scrape.
Four acquisition engines, one auto mode
The engine decides how the HTML is fetched; extraction and Markdown conversion are identical across all of them. The default auto starts cheap and escalates to browser rendering when a page turns out to be a client-side shell or refuses the plain fetch — you are billed for the engine that produced the result.
| Engine | How it fetches | Proxy | Screenshot | Credits |
|---|---|---|---|---|
| auto | Cheapest engine first, escalates to browser rendering when the page needs JavaScript or blocks plain fetches | with region | yes | 1–5 |
| fetch | Plain HTTP fetch from the edge | no | no | 1 |
| browser | Headless browser rendering | no | yes | 5 |
| proxy-fetch | HTTP fetch through a rotating proxy | yes | no | 2 |
| proxy-browser | Headless browser behind the rotating proxy | yes | yes | 5 |
Options add credits on top: screenshot +1, image rehosting +1 per started 5 images. Failed operations are never billed.
Pricing
Everything is denominated in credits and metered per successful operation. One counter, no plan matrix.
Free allowance
No card required.
500
credits per calendar month
That is 500 plain-fetch scrapes, or 100 browser-rendered pages. Past the allowance the API answers 402 payment_required until you subscribe.
Usage-based
Stripe metered subscription, billed monthly.
$0.002
per credit beyond the first 500
Graduated tiers on a single Stripe billing meter. Usage is recorded only after an operation succeeds, so retries and failures never appear on the invoice.
Start with the free allowance
Create an account, mint a key, send the first request in a minute.