Rendering API vs Screenshot API: What's the Difference?

Rendex Team··7 min read
renderingcomparisonapi
TypeScript code showing a rendering API call with format: pdf and html: input, comparing rendering API vs screenshot API capabilities

The terms “screenshot API” and “rendering API” are used interchangeably in developer docs, but they describe different scope. A screenshot API captures a visual snapshot of a URL. A rendering API transforms web content into multiple output formats: images, PDFs, or raw image fragments. That difference matters when you are choosing a tool to build on.

TL;DR

Screenshot APIs do one thing: take a picture of a web page. A rendering API does that plus more: PDF export, HTML-to-image from raw markup, element selector capture, and async batch processing. If your use case touches anything beyond PNG capture from a URL, a rendering API is the right starting point.

At a Glance

CapabilityScreenshot APIRendering API
Output formatsPNG, JPEGPNG, JPEG, WebP, PDF
Input: raw HTMLNoYes
Selector captureRarelyYes (CSS selector)
Async batch processingSome APIsYes (queue-backed)
Geo-targeted renderingRareYes (195 countries, Pro+)
AI agent / MCP supportREST onlyREST + MCP server

What a Screenshot API Does

A screenshot API takes a URL, loads it in a headless browser, and returns an image. The value is infrastructure offloading: running Chromium in production is memory-intensive and operationally expensive. An API handles that for you.

Most screenshot APIs were built between 2015 and 2020, when headless Chrome became widely available. The typical interface is a single endpoint that accepts a URL and returns a PNG or JPEG:

screenshot.sh
# Screenshot API: URL in, image out
curl -X POST https://api.rendex.dev/v1/screenshot \
  -H "Authorization: Bearer rdx_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "format": "png"}' \
  --output screenshot.png

# Get your API key at https://rendex.dev/login

This works well for monitoring dashboards, link preview thumbnails, and content archiving. When that is all you need, a screenshot API is the right tool.

The limitation is scope. Screenshot APIs accept URLs, return images, and stop there. You cannot pass raw HTML. You cannot get a PDF. You cannot capture a specific page element without building your own selector logic on top.

What a Rendering API Does

A rendering API uses a headless browser as a general-purpose document renderer. Screenshots are one output. PDF generation, HTML-to-image conversion, and element selector capture are others. The input can be a URL or raw HTML passed directly in the request body.

The code below shows four distinct operations against the same API endpoint:

rendering-api-examples.ts
import { Rendex } from "@copperline/rendex"
// npm install @copperline/rendex
// Get your API key at https://rendex.dev/login

const rendex = new Rendex("rdx_your_key")

// 1. Screenshot from a URL — same as any screenshot API
const png = await rendex.screenshot({ url: "https://example.com" })

// 2. PDF from a URL — rendering API territory
const pdf = await rendex.screenshot({
  url: "https://example.com/invoice",
  format: "pdf",
  pdfFormat: "A4",
  pdfPrintBackground: true,
})

// 3. Image from raw HTML — no URL needed
const card = await rendex.screenshot({
  html: `<div style="padding:40px;font-family:sans-serif">
    <h1>Report Q1 2026</h1>
    <p>Revenue: $142,000</p>
  </div>`,
  width: 800,
  height: 300,
  format: "png",
})

// 4. Capture a specific element by CSS selector
const chart = await rendex.screenshot({
  url: "https://example.com/dashboard",
  selector: "#revenue-chart",
  format: "png",
})

Each call uses the same API key, the same SDK method, and the same billing credits. The differences are in the parameters, not the infrastructure.

Three Concrete Differences

1. Raw HTML input

Screenshot APIs require a public URL. Your server generates HTML, deploys it somewhere, then calls the API. That adds a round-trip and requires a publicly accessible host.

Rendering APIs accept raw HTML directly in the request body. You build a template in your application code, pass it in, and get an image or PDF back. This is the standard approach for invoice generation, OG image creation, and report rendering where the HTML is dynamic and hosting a temporary URL is impractical.

Try this in the browser with the HTML-to-image tool: paste any HTML and get back a PNG or PDF without writing any code.

2. PDF output

PDFs have page boundaries, configurable margins, landscape orientation, and background printing options. Screenshots do not. If your use case ever touches documents (invoices, reports, receipts, compliance archives), you need a rendering API from day one. Retrofitting PDF support onto a screenshot-only integration typically requires rewriting the whole pipeline.

pdf-from-html.ts
// Generate a printable invoice PDF from an HTML template
const invoice = await rendex.screenshot({
  html: `<!DOCTYPE html>
<html>
<body style="font-family:sans-serif;padding:40px">
  <h1>Invoice #2026-042</h1>
  <p>Amount due: $1,200.00</p>
  <p>Due date: 2026-05-01</p>
</body>
</html>`,
  format: "pdf",
  pdfFormat: "A4",
  pdfMargin: { top: "20mm", bottom: "20mm", left: "20mm", right: "20mm" },
  pdfPrintBackground: true,
})

3. AI agent / MCP support

AI agent frameworks (Claude, Cursor, Continue) use the Model Context Protocol to call external tools. A pure screenshot API exposes REST endpoints only: an agent must make raw HTTP calls and parse responses itself.

A rendering API with an MCP server lets agents call rendering operations as native tools, with typed parameters and structured results. Rendex publishes a remote MCP server at mcp.rendex.dev and a local package at @copperline/rendex-mcp. Agents configured with either can capture screenshots, generate PDFs, and render HTML without any custom integration code.

See MCP Tools for Web Rendering: A Developer Guide for the exact configuration steps.

When to Use Each

ScenarioScreenshot APIRendering API
Capture a public URL as PNGYesYes
Generate PDFs from HTML templatesNoYes
Render HTML string to imageNoYes
Capture a specific page elementRarelyYes
Batch 100+ URLs asynchronouslySome APIsYes
AI agent via MCPNoYes

Use a screenshot-only API if PNG capture from public URLs is genuinely all you need and you want the lowest possible per-call cost. Use a rendering API if you need PDF output, HTML input, selector capture, or MCP support now or in the foreseeable future.

For a comparison across specific providers, see Best Screenshot APIs 2026. For rendering APIs in AI agent pipelines, see Best Rendering APIs for AI Agents.

Rendex: One API for All Rendering Jobs

Rendex launched as a screenshot API and ships as a rendering platform. The same API key and the same SDK method handle screenshots, PDFs, HTML-to-image, selector capture, and geo-targeted rendering from 195 countries. One integration covers the full output surface, not just screenshots.

The free tier covers 100 calls per month. Get an API key to test it, or try the HTML-to-image tool to convert raw HTML to a PNG or PDF in your browser without writing any code.

Try Rendex Free

100 screenshots/month. No credit card required.

Get API Key