Screenshot API Integrations
Add website screenshots to your app in any language. Copy-paste code examples for Node.js, Python, PHP, Go, Java, Ruby, and cURL.
Node.js
Capture screenshots with native fetch() or axios. Zero npm dependencies, works with Express.js and Next.js out of the box.
View integrationPython
Use requests or httpx to capture screenshots. Sync and async examples, FastAPI proxy endpoint, retry logic included.
View integrationPHP
Capture screenshots with file_get_contents, cURL, or Guzzle. Laravel controller example, error handling, and retry logic included.
View integrationGo
Capture screenshots with the standard net/http library. Goroutine-based parallel captures, HTTP handler proxy, retry logic included.
View integrationJava
Capture screenshots with the built-in HttpClient or OkHttp. Spring Boot controller example, retry logic, and thread-safe concurrency.
View integrationHow it works
The ScreenshotRun API is a single HTTP GET endpoint. You pass a URL and parameters in the query string, include your API key in the Authorization header, and get back a screenshot. No SDK to install, no browser engine to download, no background processes to manage.
Every language on this page follows the same pattern: build a URL, make a GET request, handle the binary response. The API runs a real Chromium instance on our infrastructure, waits for the page to fully render (including JavaScript, lazy-loaded images, and web fonts), and returns the result as PNG, JPEG, WebP, AVIF, or PDF.
Why developers choose an API over running Puppeteer or Playwright
Browser automation libraries work well for local scripts and testing. In production, they bring operational complexity that grows with scale. Each headless Chrome process needs a few hundred megabytes of RAM. Docker images with Chromium pass a gigabyte. Fonts render differently across Linux distributions. Cookie banners, ad overlays, and chat widgets require per-site maintenance to hide.
An API call sidesteps all of this. Your application sends one request and receives an image. No Chromium binary in your deployment, no worker pool to tune, no font packages to install on every server. The tradeoff is straightforward: you pay per screenshot instead of paying in engineering time and server resources.
What you can do with one request
The API covers more ground than a basic screenshot. A single GET request can capture a full-page scroll, render a mobile viewport, switch to dark mode, target a specific HTML element by CSS selector, block cookie banners and ads, inject custom CSS or JavaScript before capture, and output the result in six different formats. These parameters combine freely, so one call can produce a retina dark-mode full-page WebP of a specific dashboard component with ads and chat widgets stripped out.
Each integration guide on this page shows working code for these capabilities in your language of choice. Pick the one that matches your stack, copy the examples, and start capturing.