Website screenshot API — capture any URL as an image or PDF
Send a public URL and get back a PNG, JPEG, WebP or PDF of the page — the visible viewport or the full scroll height, at up to 3× for retina screens. No browser farm to run, no queue to maintain.
100 renders / month free · no card · paid plans are never blockedHow it works
Send the URL
POST the page address to /v1/screenshots with the viewport you want — 1200 × 630 by default, up to 2400 pixels each way.
Choose the capture
Set fullPage for the whole scroll height, scale for sharper output, or output "pdf" with a paper size such as A4 or Letter for a paginated document.
Get the file back
The response holds a URL to the stored image or PDF. For slow pages, send async: true or a webhookUrl and we call you when it is ready.
One API call
curl https://api.mostlyrender.com/v1/screenshots \
-H "Authorization: Bearer mr_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","fullPage":true,"output":"png"}'Questions
How much does a website screenshot cost?
One screenshot is one render on your plan. The Free plan includes 100 renders a month; Starter is $19 for 2,000, Pro $49 for 10,000 and Scale $149 for 50,000. Past that, paid plans bill overage at $3–$5 per 1,000 instead of blocking your captures.
Can I capture the full page, not just the viewport?
Yes. Set fullPage: true and the capture covers the page’s whole scroll height. width and height set the viewport (1200 × 630 by default, up to 2400 pixels each), and scale up to 3 renders at a higher device pixel ratio for retina output.
Can I save a web page as a PDF?
Yes. Set output to pdf. Without a paper size you get one full-height capture; add paper — A4, A3, A5, Letter, Legal, Tabloid or Ledger — and the page is paginated into a document with margins.
Which URLs can I screenshot?
Any public http or https address. Private, internal and cloud-metadata addresses are refused, including when a public URL redirects to one, so the API cannot be pointed at your internal network. Pages that need a login are not supported.
Can I take screenshots asynchronously?
Yes. Add async: true and the API answers 202 with a job id straight away. Add a webhookUrl to receive a signed callback when the capture is done, or notifyEmail to get an email.
Are repeated screenshots cached?
No. Every call captures the page as it is at that moment and counts as one render — what you want for monitoring and archiving. Images built from your own data with templates and signed URLs are cached and not billed again.
Does it hide cookie banners or block ads?
No. The capture shows the page as a first-time visitor sees it, cookie banner included. For a clean image, capture a page you control or render your content from a template instead.