Capture any website as PNG, JPEG, WebP, or PDF with a single GET request. Works in bash scripts, cron jobs, and CI pipelines. Nothing to install.
200 free screenshots/month. No credit card required.
The whole API is a GET request. Your key goes in the X-API-Key header, options go in query parameters.
curl "https://app.snap-render.com/v1/screenshot?url=https://example.com" \
-H "X-API-Key: sk_live_your_key_here" \
--output screenshot.png
curl "https://app.snap-render.com/v1/screenshot\
?url=https://example.com\
&format=pdf&full_page=true\
&device=iphone_15_pro&dark_mode=true" \
-H "X-API-Key: sk_live_your_key_here" \
--output page.pdf
# crontab -e
0 6 * * * curl -s "https://app.snap-render.com/v1/screenshot?url=https://example.com/pricing&full_page=true" -H "X-API-Key: $SNAPRENDER_KEY" --output "/var/snapshots/pricing-$(date +\%F).png"
Ads and cookie banners are blocked by default. Full parameter reference in the docs.
google-chrome --headless --screenshot is fine for a quick capture on your laptop. On a server it stops being simple: you install Chrome and a font stack on every box, keep them updated, and accept whatever loads in the first moment of render. Cookie consent walls, ads, and half-loaded lazy images all end up in the shot, and JavaScript-heavy pages frequently capture before the content exists.
The API moves all of that behind one URL. Rendering waits for the page properly, banners and ads are stripped, full-page capture handles lazy loading, and parameters give you formats, devices, dark mode, and caching. Your servers keep zero browser dependencies, which also means nothing to patch when the next Chrome CVE lands.
For copy-paste recipes, see taking screenshots with cURL and bash and automating screenshots with cURL.
Every CI runner ships with cURL, so capturing your deployed pages after a release is one step: no browser install, no headless setup that breaks between runner images. Store the key as a secret, capture, and attach the image to the build.
- name: Capture homepage after deploy
run: |
curl -s "https://app.snap-render.com/v1/screenshot?url=https://your-site.com&full_page=true" \
-H "X-API-Key: ${{ secrets.SNAPRENDER_KEY }}" \
--output homepage.png
- uses: actions/upload-artifact@v4
with:
name: homepage-screenshot
path: homepage.png
More patterns in screenshots in CI/CD with GitHub Actions. Want to test output without an account? Use the free website screenshot tool.
Send one GET request: curl the /v1/screenshot endpoint with a url parameter and your API key in the X-API-Key header, then write the response to a file with --output. The page renders in real Chrome on SnapRender's servers and the finished image streams back. No browser, no display server, nothing to install beyond cURL itself.
Yes. Because a capture is a single cURL command, a one-line crontab entry gives you scheduled screenshots: archive a competitor's pricing page daily, snapshot your own homepage after each deploy, or build a visual changelog. Date-stamp the output filename and you have a history.
google-chrome --headless --screenshot works for quick local captures, but on servers it means installing Chrome and fonts, and the output often includes cookie consent banners and ads. It also has no caching, device emulation, or full-page handling for lazy-loaded content. The API gives you those in URL parameters and keeps your servers browser-free.
Yes. Every CI runner already has cURL, so one step captures your staging or production pages after a deploy: store the API key as a secret, curl the endpoint, and upload the image as a build artifact. No browser installation step, no flaky headless setup in CI.
Yes. The free plan includes 200 screenshots per month with every feature: all formats including PDF, full-page capture, device emulation, dark mode, and caching. No credit card is required to sign up.
The same API has official client libraries with the same options.
Grab a key, paste the cURL line, done. 200 free screenshots per month, no credit card.