CurlShot, an HTML/CSS to Image alternative
Pick CurlShot if most of your images are screenshots of live pages or HTML you send, and you want PDF, scrolling video, ad and cookie-banner blocking in the same API, with a lower price per 1,000 on the entry plans. Pick HTML/CSS to Image if you design images from reusable templates in its visual editor, want each image to keep a permanent hosted address while your account is active, or need Zapier and Make apps. Both render pages and HTML in a real Chrome, take full-page captures, hide cookie banners, offer dark mode, send webhooks and have an MCP server.
Facts about HTML/CSS to Image checked on .
Features, side by side
Show the features table (19 rows)
| Feature | CurlShot | HTML/CSS to Image |
|---|---|---|
| Free plan | 100 screenshots a month | 50 images a month |
| Screenshots of live pages | Yes | Yes |
| HTML and CSS as input | Yes | Yes |
| Markdown as input | Yes | Not in its parameter list |
| Full-page screenshots | Yes | Yes |
| Screenshot of one element (CSS selector) | Yes | Yes |
| Transparent background | Yes | Yes |
| Hide cookie banners | Yes | Yes |
| Block ads | Yes | Block requests by URL pattern, paid plans |
| Dark mode | Yes | Yes |
| PDF output | Yes | Paid plans |
| Video of the page scrolling | Yes | Not in its parameter list |
| Batch in one call | Up to 100 per call | Up to 25 per request, paid plans |
| Webhooks | Paid plans | Yes |
| MCP server for AI agents | Yes | Yes |
| Reusable templates and a visual editor | No | Yes |
| Permanent address for each image | Links expire; keep your own copy | While your account is active |
| Zapier and Make | No | Yes |
| Deliver to your own S3-compatible bucket | No | From 10,000 images a month |
What it costs per month
Monthly plans, billed monthly, before tax. The last column is the plan price divided by the screenshots it includes.
Show the prices (7 rows)
| Product and plan | Per month | Screenshots a month | Per 1,000 |
|---|---|---|---|
| CurlShot Free | Free | 100 | Free |
| CurlShot Starter | $19 | 3,000 | $6.33 |
| CurlShot Growth | $79 | 15,000 | $5.27 |
| CurlShot Scale | $249 | 60,000 | $4.15 |
| HTML/CSS to Image Basic | $14 | 1,000 | $14 |
| HTML/CSS to Image Basic (10,000) | $69 | 10,000 | $6.90 |
| HTML/CSS to Image Pro (100,000) | $375 | 100,000 | $3.75 |
HTML/CSS to Image counts images, not screenshots. Read the per-1,000 figures as a guide, not an exact match.
Sources: HTML/CSS to Image pricing, and the CurlShot pricing page.
Pick CurlShot when
- You mostly screenshot live pages and want a lower price per 1,000 on the smaller plans (see the table)
- You need PDF, a scrolling video, or ad blocking next to the image, from the same API
- You want a free plan of 100 screenshots a month to build on: HTML/CSS to Image gives 50 images
- Failed renders and cache hits do not count against your CurlShot plan
Pick HTML/CSS to Image when
- You design images from reusable templates, in a visual editor, and fill them from data
- Each image should keep one hosted address for as long as the account is active
- You want Zapier or Make apps, or renders delivered into your own S3-compatible bucket
- You need very high volume on one plan: its Scale plans go up to 1,000,000 images a month
- You already run on it and its image debugger and prices work for you: moving costs time
Move a request over, parameter by parameter
Every CurlShot option is described in the options reference.
Show the parameters table (18 rows)
| To do this | CurlShot | HTML/CSS to Image |
|---|---|---|
| Page address | url | url |
| HTML instead of a page address | html | html |
| CSS for the page | styles | css |
| Output format | format | format |
| Whole page | full_page | full_screen |
| Viewport width | viewport_width | viewport_width |
| Viewport height | viewport_height | viewport_height |
| Mobile viewport | viewport_mobile | viewport_mobile |
| Landscape viewport | viewport_landscape | viewport_landscape |
| Pixel density | device_scale_factor | device_scale |
| Hide cookie banners | block_cookie_banners | block_consent_banners |
| Dark mode | dark_mode | color_scheme |
| Wait before capture | delay | ms_delay |
| One element only | selector | selector |
| Print or screen styles | media_type | media_type |
| Time zone | time_zone | timezone |
| Transparent background | omit_background | transparent_background |
| Custom request headers | headers | headers |
Questions people ask
Is CurlShot a good alternative to HTML/CSS to Image?
For screenshots of live pages and for HTML you send as a request, yes: the options map one to one for most of what you send (see the table), there is a free plan, and the entry plans cost less per 1,000. HTML/CSS to Image is the better fit if your images come from reusable templates, if you want permanent hosted addresses, or if you build on Zapier or Make.
How do I move my requests from HTML/CSS to Image?
Change the address and the credentials (it uses an API ID and key with Basic authentication, CurlShot an access key), then rename the options with the parameter table on this page. Its endpoint returns a JSON link to the stored image; add response_type=json here to get the same shape, or take the file straight from the response.
Does HTML/CSS to Image have a free plan?
Yes, as of the date on this page. Its pricing page lists a free plan of 50 images a month with limited templates and email support, and paid plans from 1,000 images a month.
Do both count a screenshot the same way?
Not exactly. HTML/CSS to Image counts image credits and reuses an identical recent image without a new credit through its dedupe option. CurlShot counts one successful render as one screenshot, and a failed render or a cache hit costs nothing. Read each pricing page for the full rules.
Sources: HTML/CSS to Image pricing, HTML/CSS to Image API parameters. Checked on 9 November 2026; prices and features change, so check them before you decide.
Try it on your own pages
- HTML to imageRender your own HTML, CSS or Markdown into an image or a PDF with one API request. For social cards, certificates, receipts and reports.
- Screenshot APIA screenshot API for developers. One HTTP request turns a URL, HTML or Markdown into a PNG, JPEG, WebP or PDF. Full page, devices, blocking, cache, MCP.
- Open Graph imagesAn OG image API: send an HTML template, get a 1200 by 630 PNG share card back. One card per post or product, cached, with a Next.js metadata example.