Back to all articles

Webshotio Screenshot API: Turn Any Public URL into a PNG in Seconds

Webshotio is a simple screenshot API for developers: pass a URL, get a PNG. Try the live GitHub Pages frontend or run it locally in minutes.

Webshotio screenshot API repository overview

I built Webshotio for one simple reason: I wanted a fast way to generate website screenshots from code.

You pass a public URL, and Webshotio returns a PNG screenshot.

It is a practical Node.js screenshot API powered by Express and Puppeteer, with a clean developer workflow and a live frontend you can test instantly.

Webshotio Links

What Is Webshotio?

Webshotio is a website screenshot API you can use for:

  • preview images
  • admin dashboards
  • QA snapshots
  • automation workflows
  • link thumbnails

If you are searching for a lightweight Puppeteer screenshot service, this is exactly that.

How the API Works

Main endpoint:

GET /screenshot

Important query parameters:

  • url (required): public http or https URL
  • width (optional): viewport width
  • height (optional): viewport height
  • waitMs (optional): wait before capture
  • download (optional): set a download filename

Quick example:

curl -o shot.png "http://localhost:3000/screenshot?url=https://example.com&width=1280&height=800&waitMs=1000"

Download-style response example:

curl -OJ "http://localhost:3000/screenshot?url=https://example.com&download=homepage"

Why Developers Like It

  • Easy to use: one URL gives you one PNG.
  • Configurable: choose width, height, and wait time.
  • Safer defaults: invalid/private targets are blocked.
  • Better under traffic: queue + limits prevent overload.
  • Practical in production: health/readiness endpoints included.

Frontend Test UI (GitHub Pages)

Webshotio includes a minimal frontend so you can test the API from your browser.

You can:

  • API base URL input
  • URL + viewport + wait controls
  • set an optional download name
  • preview the PNG result
  • open or download the generated image

It is hosted on GitHub Pages and points to the deployed API by default.

Webshotio GitHub Pages test frontend with screenshot result

The live UI link is listed in the Webshotio Links section above.

Real-World Use Cases

  • Create screenshot previews for shared links
  • Capture pages for QA and bug reports
  • Generate visual snapshots for client dashboards
  • Build screenshot automation for internal tools

Quick Local Setup

npm install
cp .env.example .env
npm start

Then run a quick check:

curl -s -w "\nHTTP %{http_code}\n" http://localhost:3000/health
curl -s -o /tmp/screenshot.png -w "HTTP %{http_code} SIZE %{size_download}\n" "http://localhost:3000/screenshot?url=https://example.com&width=1200&height=800"

Small But Important Notes

Webshotio is designed to be easy, but still includes practical protections for public usage:

  • URL checks
  • request validation
  • rate limiting
  • queueing and timeouts
  • health and readiness endpoints

So you get a simple developer experience without skipping the basics needed for reliability.

Final Thoughts

If you want a straightforward screenshot API for developers, Webshotio is a solid place to start.

It is simple to try, easy to run locally, and ready to integrate into real projects.

You can find the repo and live test frontend in the Webshotio Links section above.