HTML to Image API
webcapture turns a URL into a PNG, JPEG, or WebP image by rendering it in a real Chromium browser: JavaScript executes, and the capture waits inside the request's configured limits before the shutter opens. Same endpoint, same pricing, and the same engine as the HTML to PDF API.
Public http(s) targets only. Private and local addresses are refused; bot protection, access controls, unreachable pages, and page errors can prevent output. Target limits and render errors.
How it works
One authenticated call carries the page and the image options:
curl -X POST \
https://webcapture.io/v1/convert \
-H "Authorization: Bearer wc_your_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/dashboard", "format": "png", "viewport": {"width": 1280, "height": 800}}'
200 {"id": "cnv_9f2c01ab", "bytes": 187442, "remaining": 49,
"download": "https://webcapture.io/v1/conversions/cnv_9f2c01ab.pdf"}
The response carries the finished image. The download path keeps its legacy .pdf suffix for every format; the content type and the filename tell the truth. Pass ?wait=false to get a job ticket instead and poll the status endpoint, or subscribe a signed webhook on Pro or Scale. This page is the summary; the full option list and the error codes live in the API docs.
Three image formats, one call
| Format | Best for |
|---|---|
| PNG | Lossless captures: dashboards, charts, pixel-exact archives. |
| JPEG | Photographic pages where smaller bytes beat perfect edges. |
| WebP | Often the smallest delivery at a given quality, though not always; modern browsers decode it everywhere. |
The same call also returns format: "pdf" and format: "markdown"; the PDF side has its own product page.
Viewport, full page, and waiting
- fullPage defaults to true: the capture reaches the whole scroll height, not just the first viewport. Set it false for an above-the-fold shot.
- viewport sizes the layout between 200 and 7680 pixels wide before navigation, so responsive breakpoints render at the size you name.
- waitFor holds the shutter until a selector appears inside the wait budget, so client-rendered widgets can finish before the pixels are taken.
- colorScheme renders light, dark, or the site's own preference per request.
Where it wins
- Social and preview cards: open graph and share images generated from live pages on publish, not hand-made in an editor.
- Monitoring snapshots: a cron renders the same URL every run, and repeatable rendering (the same source, assets, fonts, and engine version) makes drift visible in the bytes.
- Agent pipelines: workflows that need pixels rather than documents hand a URL to one endpoint and get image bytes back on the connection.
Pricing, legible
| Plan | Price | Renders |
|---|---|---|
| Free | $0/month | 50 renders/month |
| Pro | $19/month | 5,000 renders/month |
| Scale | $69/month | 35,000 renders/month |
Every plan includes the full API and all output formats; images and PDFs draw from the same monthly quota. An exhausted quota returns 429 until the month rolls over, never an overage bill. Quotas are per account; when one pool is not enough, email us and we will size a plan.
See for yourself
The free URL to PDF converter runs this engine in your browser with no account, the field comparison prices the alternatives with the catches printed, and the claims above are checked against the API reference.
Method
Checked 2026-10-26 against the API reference (/docs) and the render pipeline this service runs. Questions or corrections: hello@webcapture.io.
Render your first page in seconds
Mint a key, POST a URL, and the finished document comes back in the same response; pass ?wait=false for a job ticket with poll and download URLs. The first 50 renders a month are free, and there is no credit card. Not ready for a key? The free URL to PDF tool renders public pages without one.