Capture any website as PNG, JPEG, WebP, or PDF with four lines of Python. No Selenium, no webdriver, no browser binaries to install.
200 free screenshots/month. No credit card required.
Install the official SDK from PyPI, paste your API key, and capture. Python 3.8+ supported.
pip install snaprender
from snaprender import SnapRender
snap = SnapRender(api_key="sk_live_your_key_here")
image = snap.capture("https://example.com")
with open("screenshot.png", "wb") as f:
f.write(image)
image = snap.capture(
"https://example.com",
format="jpeg",
full_page=True,
dark_mode=True,
device="iphone_15_pro",
cache=True,
)
Ads and cookie banners are blocked by default. The same client also handles signed URLs, content extraction, batch jobs, and webhooks.
Selenium needs a webdriver that matches your browser version. Playwright needs playwright install, which downloads several hundred megabytes of browser binaries. Both need those browsers present, healthy, and updated on every machine that runs your code: your laptop, your CI runner, your production hosts. For browser testing that overhead is justified. For taking screenshots, it is not.
A screenshot API removes the browser from your side entirely. The snaprender package is a small HTTPS client: you call snap.capture(url) and real Chrome on our servers loads the page, strips the cookie banners and ads, and returns the finished image as bytes. Your requirements.txt stays clean and your Docker image does not grow by half a gigabyte.
This matters most in constrained environments. Lambda layers have size limits that headless Chrome regularly breaks. Notebooks on Colab or a shared JupyterHub often cannot install system browsers at all. An API call works in all of them, the same way it works on your laptop. Our guide to screenshotting websites in Python walks through more complete examples.
| SnapRender SDK | Selenium / Playwright | |
|---|---|---|
| Setup | pip install, done | Browser binaries + driver matching |
| Works in Lambda / Cloud Run | Yes, no layers | Custom images, size limits |
| Works in notebooks | Yes | Often blocked by the host |
| Cookie banners and ads | Blocked by default | Custom code per site |
| Browser updates | Handled for you | Yours to maintain |
Because the SDK is pure HTTP, the same four lines work in a Django view, a Flask endpoint, a FastAPI background task, an Airflow DAG, a Lambda handler, a Cloud Run job, a cron script on a bare VPS, and a cell in a Jupyter notebook. Capture a competitor's pricing page on a schedule, archive articles as PDFs, generate thumbnails for every URL in your database, or feed page images to a vision model.
Need the result hosted instead of returned? Ask for a signed URL and embed the screenshot directly in dashboards or emails without storing the file yourself. Want to see the rendering quality before signing up? Run a capture in the free website screenshot tool: it uses the same engine as the API.
Install the snaprender package from PyPI, create a client with your API key, and call snap.capture(url). The page is rendered in real Chrome on SnapRender's servers and the screenshot comes back as bytes you can write to a file or upload to storage. There is no webdriver to install, no browser version matching, and no headless display setup.
Yes. The SDK is a thin HTTPS client, so it runs anywhere Python runs: AWS Lambda, Google Cloud Run, Jupyter and Colab notebooks, Airflow tasks, Django and Flask apps, and cron scripts. You never need to package Chromium with your code or fight Lambda layer size limits.
Selenium and Playwright automate a browser that you install, run, and keep healthy on your own machines. A screenshot API moves the browser to the provider's servers: you make one HTTP call and receive the finished image. That removes webdriver management, browser binary downloads of several hundred megabytes, version pinning, and crash recovery from your codebase.
Yes. Pass full_page=True for the entire scrollable page, device="iphone_15_pro" for mobile emulation, dark_mode=True for dark theme captures, and format="pdf" to save the page as a PDF. Ads and cookie banners are blocked by default.
Yes. The free plan includes 200 screenshots per month with every feature: all formats, full-page capture, device emulation, dark mode, and caching. No credit card is required to sign up.
The same API has official quickstarts for other languages.
Related guide: How to screenshot a website in Python.
No webdriver, no browser binaries, no maintenance. 200 free screenshots per month, no credit card.