Trusted by 2,000+ developers

Screenshot API Capture Any Website Programmatically

Turn any URL into a pixel-perfect screenshot with a single API call. Render pages as PNG, JPEG, WebP, AVIF, PDF, or video. The website screenshot API built for speed, reliability, and developer experience.

Free plan includes 150 screenshots/month. No credit card required.

https://api.nodium.io/api/v1/screenshot?url=example.com
URL
Input
Nodium
PNG/PDF
Output

How the Screenshot API Works

Three steps. One API call. Results in under 3 seconds.

1

Send a request

Pass any URL to the Nodium screenshot API endpoint along with your desired format, viewport size, and options. Authenticate with a simple API key header.

2

We render the page

Our fleet of headless Chromium browsers loads the page, waits for full rendering including JavaScript, lazy images, and web fonts, then captures the output.

3

Get your result

Receive the screenshot as a direct image binary, a hosted URL, or a base64 string. Choose PNG, JPEG, WebP, AVIF, PDF, or MP4 video format.

Every Format You Need

Capture website screenshots as images, documents, or video.

Images
PNG, JPEG, WebP, AVIF

Pixel-perfect raster images at any resolution. Choose lossless PNG for accuracy, JPEG for smaller files, or modern WebP and AVIF for the best compression-to-quality ratio.

PDF
A4, Letter, Legal, and more

Generate PDFs from any URL with custom paper sizes, margins, headers, and footers. Perfect for invoices, reports, and archiving. See our PDF generation API.

Video
MP4, WebM recordings

Record page interactions as video. Capture scroll animations, transitions, and dynamic content loading. Great for QA reviews, demos, and bug reports.

Built for Scale

Whether you need 10 screenshots a day or 10,000 an hour, Nodium handles the load.

50

Concurrent requests

per account

<3s

Average response time

including render

99.9%

Uptime SLA

on paid plans

Capture a Screenshot in Seconds

A single HTTP request is all it takes. Use any language or tool.

cURL
curl "https://api.nodium.io/api/v1/screenshot?url=https://example.com&format=png&width=1280&height=800" \
  -H "X-API-Key: ndm_your_api_key" \
  --output screenshot.png
JavaScript / Node.js
const response = await fetch(
  "https://api.nodium.io/api/v1/screenshot?" +
    new URLSearchParams({
      url: "https://example.com",
      format: "png",
      width: "1280",
      height: "800",
    }),
  {
    headers: { "X-API-Key": "ndm_your_api_key" },
  }
);

const imageBuffer = await response.arrayBuffer();
Python
import requests

response = requests.get(
    "https://api.nodium.io/api/v1/screenshot",
    params={
        "url": "https://example.com",
        "format": "png",
        "width": 1280,
        "height": 800,
    },
    headers={"X-API-Key": "ndm_your_api_key"},
)

with open("screenshot.png", "wb") as f:
    f.write(response.content)

Everything a Screenshot API Should Offer

Blazing Fast

Distributed browser fleet renders pages in under 3 seconds on average, including full JavaScript execution.

Any Website

Handle SPAs, dynamic content, login walls with cookies, custom headers, and pages behind authentication.

Signed URLs

Generate tamper-proof, expiring URLs for secure screenshot delivery. No API key exposure on the client.

Developer First

SDKs for Node.js, Python, PHP, Go, Ruby, Java, and C#. OpenAPI spec available for code generation.

Nodium vs. Alternatives

Why developers choose Nodium over self-hosted Puppeteer or other screenshot services.

FeatureNodium APISelf-hosted PuppeteerOther APIs
Setup time2 minutesHours/days10-30 minutes
Infrastructure costPay per screenshotServers + maintenancePay per screenshot
Concurrent requestsUp to 50Limited by RAM5-20 typical
Full-page scrollingSometimes
PDF generationSometimes
Video recordingManual setupRare
Signed URLsRare
Async webhooksSometimes
Global edge renderingSometimes

What Developers Build with the Screenshot API

Social media OG images

Generate dynamic Open Graph preview images for blog posts, product pages, and social sharing. Automate your og:image pipeline.

SEO auditing tools

Capture screenshots across devices to verify rendering, detect layout shifts, and monitor visual regressions on live sites.

Invoice & report generation

Render HTML templates as PDF documents. Generate invoices, receipts, and reports programmatically from your application data.

Visual regression testing

Automate screenshot comparisons in your CI/CD pipeline. Catch unintended visual changes before they reach production.

Web archiving

Preserve point-in-time snapshots of web pages for compliance, legal evidence, or historical records.

Link preview thumbnails

Generate real-time thumbnail previews for URLs shared in your application, similar to how Slack or iMessage renders link cards.

Frequently Asked Questions

Everything you need to know about the Nodium screenshot API.

What is a screenshot API?
A screenshot API is a web service that takes a URL as input and returns a rendered image, PDF, or video of that webpage. Instead of running your own headless browser infrastructure, you send an HTTP request to the API and receive the captured output. Nodium's screenshot API uses a fleet of headless Chromium instances to render pages with full JavaScript support, custom viewports, and multiple output formats.
How fast is the Nodium screenshot API?
Most screenshots are captured and delivered in under 3 seconds, including full page rendering with JavaScript execution. Simple pages often complete in under 1 second. The API supports up to 50 concurrent requests per account, and async webhooks allow you to queue large batches without waiting for each result.
What image formats does the screenshot API support?
Nodium supports PNG (lossless, best for accuracy), JPEG (lossy, smaller files), WebP (modern compression), and AVIF (next-gen format with the best compression). You can also generate PDF documents and MP4/WebM video recordings of page interactions.
How much does the screenshot API cost?
Nodium offers a free plan with 150 screenshots per month, no credit card required. Paid plans start at $12/month for 3,000 screenshots. Visit the pricing page for current plans and volume discounts.
What are the rate limits?
Free accounts can make up to 10 concurrent requests. Paid plans support up to 50 concurrent requests. The API also supports async mode with webhook callbacks, allowing you to queue hundreds of screenshots without hitting concurrency limits.
Should I use a screenshot API or self-host Puppeteer?
Self-hosting Puppeteer requires managing servers, browser instances, memory leaks, and scaling infrastructure. A screenshot API like Nodium handles all of that for you. You pay per screenshot with no infrastructure overhead, get built-in features like signed URLs, webhooks, and caching, and can scale from 10 to 10,000 screenshots per hour without changing your code.
Can the API handle JavaScript-heavy pages and SPAs?
Yes. Nodium uses full Chromium rendering, which means it executes JavaScript, handles single-page applications (SPAs), waits for async data loading, and renders dynamic content just like a real browser. You can also set custom wait times or wait for specific selectors to appear before capturing.
Does the API support authentication and cookies?
Yes. You can pass custom cookies, HTTP headers, and authentication tokens with your screenshot request. This allows you to capture pages behind login walls, staging environments, or password-protected content.

Start capturing screenshots for free

100 free screenshots every month. No credit card, no infrastructure to manage. Your first screenshot is one API call away.