Free plan — 200 renders/month, no credit card required

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.png

What 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 →