Screenshot API
for developers
Capture full-page or viewport screenshots of any URL or HTML as PNG or JPEG with one REST call. No headless browser to install, scale, or babysit — just an API key.
Sub-2s renders
Average response time
99.9% uptime
Service availability
Open-source SDKs
Python, MCP, and more
One request to capture any page
POST a URL to /v1/screenshot and get back image bytes. Use it from any language that speaks HTTP.
# Generate a screenshot
curl -X POST https://api.rendershot.io/v1/screenshot \
-H 'X-API-Key: sk_live_...' \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com","format":"png","ai_cleanup":"fast"}' \
--output screenshot.pngWhat is a screenshot API?
A screenshot API is a web service that captures an image of a web page on demand. Instead of installing Chromium, wiring up Playwright or Puppeteer, and keeping a fleet of browsers alive, you make a single HTTP request and get a rendered PNG or JPEG back.
Rendershot is a website screenshot API built on real Chromium. You send a URL or raw HTML, choose your format and viewport, and the rendering happens on our infrastructure — including the parts that are painful to run yourself: font loading, JavaScript execution, lazy-loaded content, and memory management across thousands of captures.
Because it's plain REST, you can capture a screenshot from Python, Node.js, Go, PHP, Ruby, or any HTTP client — and wire it into cron jobs, CI pipelines, no-code tools, or an AI agent via the MCP server.
Everything you need to capture pages
The control of a headless browser, without running one.
Full-page & viewport
Capture the entire scrollable page or just the viewport. Set full_page, width, and height per request.
PNG & JPEG output
Choose your format with a single field. Get back raw image bytes ready to save, stream, or upload.
URL or raw HTML
Screenshot a live URL, or send your own HTML string to render markup that isn't hosted anywhere yet.
Custom viewport sizing
Emulate any screen size with width and height to capture mobile, tablet, or desktop layouts.
Wait conditions
Use wait_for to hold the capture until the network is idle, so dynamic and JS-heavy pages render fully.
AI cleanup
Automatically strip cookie banners, chat widgets, and popups before capture for clean, distraction-free shots.
Authenticated pages
Pass cookies, headers, or basic auth to screenshot pages behind a login — dashboards, portals, and apps.
Async, bulk & scheduled
Poll long renders in async mode, submit up to 20 in one bulk call, or schedule recurring captures with cron.
What developers build with it
A few of the most common screenshot API use cases.
Dynamic OG & social images
Render branded preview images for every blog post, product, or profile from an HTML template.
Visual regression & monitoring
Capture pages in CI and diff them over time to catch layout breaks before your users do.
Website thumbnails & previews
Generate thumbnails of any URL for directories, dashboards, link cards, and galleries.
Archiving & compliance
Snapshot pages on a schedule to keep a visual record of what a page looked like at a point in time.
Comparing screenshot APIs?
See how Rendershot stacks up on price, speed, and features — or just start on the free tier and try it on your own URLs.
Screenshot API FAQ
What is a screenshot API?
A screenshot API lets you capture an image of any web page programmatically with a single HTTP request, instead of installing, running, and scaling a headless browser yourself. You send a URL (or raw HTML) to Rendershot and get back a PNG or JPEG of the rendered page.
How do I capture a full-page website screenshot?
Send a POST request to /v1/screenshot with the target URL and set "full_page": true. Rendershot scrolls and renders the entire page in real Chromium and returns the complete image as raw bytes.
Can I screenshot raw HTML instead of a URL?
Yes. Send your markup in the "html" field instead of "url". This is ideal for rendering templates — OG images, invoices, and reports — that aren't hosted at a public URL.
Is there a free screenshot API?
Yes. Rendershot's free plan includes 200 renders per month with no credit card required. You can capture screenshots and generate PDFs on the free tier and upgrade only when you need more volume.
Which languages can I use the screenshot API from?
Any language that can make an HTTP request — the API is plain REST. We provide ready-to-use examples for cURL, Python, Node.js, Go, Java, .NET, PHP, and Ruby, plus an open-source Python SDK and an MCP server for AI tools.
How fast is the screenshot API?
Most pages render in under 2 seconds. Each worker owns a dedicated Chromium instance, and you can run many captures in parallel without managing any browser infrastructure yourself.
Start capturing screenshots in minutes
Free plan includes 200 renders/month. No credit card required.
Start for free →