Rendex
Render anything. Instantly.

Render your HTML charts, reports, and pages to an image or PDF.

From a URL or Markdown too — one POST to a rendering API built for automation. Wire it into n8n, Make, Zapier, or any AI agent over MCP. Signed webhooks, batch, and 300+ edge locations.

Live · edit the HTML and hit Render
Output · PNG · 1200×630200 OK · png · 211 ms
How it works

Call → render → image. Three steps, no detour through a browser farm you have to manage.

POST your payload, get bytes back. Same engine across every plan, every region, every interface — REST, SDK, or MCP.

STEP 01CallPOST to /v1/screenshot with HTML, URL, or Markdown — plus an optional data{} object to fill templates.
curl https://api.rendex.dev/v1/screenshot \
  -H "Authorization: Bearer $KEY" \
  -d '{"markdown":"# Invoice {{n}}","data":{"n":"A-100"},"format":"pdf"}'
STEP 02RenderHeadless Chromium on the edge nearest your caller.
{ "engine": "chromium-124", "edge": "iad", "took_ms": 211 }

No infra to provision. No browsers to crash-loop. We retire workers between requests so one bad page can't poison the next.

STEP 03GetStream back PNG/PDF, redirect to a signed URL, or webhook.
HTTP/1.1 200 OK
Content-Type: image/png
Content-Length: 84321
X-Rendex-Edge: iad · X-Rendex-Took-Ms: 211
Built for AI agents · MCP

One MCP endpoint — Claude, Cursor, and your own agents render in a single tool call.

Same render engine, exposed as MCP tools your agent runtime already understands.

For AI agents

Give your agent a render tool, not a browser farm.

MCP is how Claude, Cursor, and other agent runtimes load external tools. Rendex exposes its render engine as MCP tools — your agent gets render_artifact, rendex_screenshot, rendex_extract and more, instantly.

  • Arender_artifact Markdown or HTML → a branded PDF, PNG, and hosted share link in one call — built for agent outputs.
  • Srendex_screenshot HTML, Markdown, or URL → image or PDF. Same viewport, waitForSelector, and format options as REST.
  • Erendex_extract URL → clean reader-mode Markdown, JSON, or article HTML, pulled from the fully-rendered DOM.
  • +render_link · account · watch Mint hosted render links, check plan + usage in-chat, and monitor pages for changes — 13 MCP tools in all.
{
  "mcpServers": {
    "rendex": {
      "url": "https://mcp.rendex.dev/mcp",
      "headers": {
        "Authorization": "Bearer $RENDEX_KEY"
      }
    }
  }
}
13 tools · render_artifact · screenshot · extract · watchv1
Features

Seven things — picked because they matter, not because we needed to fill twenty-five tiles.

Render, PDF, Markdown & templating, hosted URLs, extraction, batch, reliability. Tab through what you care about.

1

HTML → image

Raw HTML in, PNG or JPEG out. ~95% of real Rendex traffic. Custom viewport, retina @2x, dark-mode emulation.

2

URL → image

Point at any URL. waitForSelector, networkidle wait, ad + cookie-banner blockers.

3

Full-page capture

Scroll-stitched screenshots up to 16,384 px tall.

4

Device presets

One device field — iphone_15, pixel_8, ipad — sets viewport, scale, and user-agent for you.

5

Resize & thumbnails

Downscale the output with resizeWidth / resizeHeight — aspect ratio preserved when you set just one — straight into an <img src> thumbnail.

render.config.json
{
  "html": "<…>",
  "format": "png",
  "device": "iphone_15",
  "waitForSelector": "img.hero",
  "fullPage": true,
  "blockCookieBanners": true,
  "hideSelectors": [".chat-widget"],
  "resizeWidth": 600
}
Desktop crop · 1200×630image/png · @2x
Full-page · 1200×4200scroll-stitch
Render · responsive pageone `device` field · viewport + scale + UA
Try it · capability playground

Add a capability, watch it land three ways at once.

Point Rendex at a URL and toggle a capability. The result reshapes, the request grows a highlighted line for developers and AI agents, and the matching field lights up in a no-code node for n8n, Zapier, and Make. Same API, shown the way each person actually works.

POSThttps://northwind.io
Device
Add capabilities
Resultpng · 1280×800 · @2x
northwind.io
AD PLACEMENT · 728 × 90
200 OK · image/pngrender 150 ms
Request bodyPOST /v1/screenshot
{
"url": "https://northwind.io",
"width": 1280,
"height": 800,
"format": "png",
}
New Rendex Watch

Now it watches pages too, not just renders them.

Point Rendex Watch at any URL and get a real-Chrome before/after visual diff with a highlighted overlay — alerts by email (every plan) or webhook (Starter+). Create a watch point-and-click in your dashboard or with one API call, on the same rdx_ key and credit pool.

status.northwind.iowatch.changed
Rendex Watch before-and-after visual diff of a status page
6.7% changed · 3 regionsbefore → after → overlay
Built for production & EU teams
GDPR-readyDPA on requestNo HTML stored on standard rendersSSRF + Safe BrowsingVAT invoicesPrivacy & DPA →
Pricing

Four tiers. Hard cap on every plan. No overage, no asterisks.

Monthly or annual — 2 months free yearly. The cap is the deal, no surprise invoices, ever. EU VAT and B2B reverse-charge are captured at checkout.

USD · hard cap
Free
$0/ mo
Hard cap · 100 / mo

Build, test, ship a prototype. Same engine, same edge — just a smaller monthly bucket.

  • Calls / mo100
  • Req / min3
  • URLs / batch
  • Concurrent3
  • API keys1
  • Geo-target
  • Watches1 (daily)
  • WatermarkTiled mark
Start free
Basic
$19/ mo
or $16/mo billed annually — 2 months freeHard cap · 400 / mo

Get off free without overpaying. Authenticated rendering and batch unlocked, 4× the free bucket — for evaluation and small side projects before you scale up to Starter.

  • Calls / mo400
  • Req / min10
  • URLs / batch5
  • Concurrent5
  • API keys2
  • Geo-target
  • Watches2 (every 3 hr)
  • WatermarkNone
Get Basic →
Starter — Recommended
$69/ mo
or $58/mo billed annually — 2 months freeHard cap · 10,000 / mo

The full platform in production — every endpoint on one key. 20× the rate limit, 5 keys, bigger batches, and authenticated rendering.

  • Calls / mo10,000
  • Req / min60
  • URLs / batch25
  • Concurrent50
  • API keys5
  • Geo-target
  • Watches10 (hourly)
  • WatermarkNone
Get Starter →
Pro
$179/ mo
or $149/mo billed annually — 2 months freeHard cap · 100,000 / mo

For teams running production workflows. Geo-targeting, custom S3 storage and higher concurrency.

  • Calls / mo100,000
  • Req / min300
  • URLs / batch100
  • Concurrent200
  • API keys10
  • Geo-target50+ countries
  • Watches50 (every 30 min)
  • WatermarkNone
Get Pro
Enterprise

Higher limits, custom SLA, unlimited calls, and up to 1,000 website watches at 5-minute checks for teams running rendering at scale. We'll size a plan to your volume.

FAQ

The questions we actually get from devs and automation builders.

Short answers, real code snippets, no marketing.

01How does the free tier work?
You get 100 API calls per month, forever. No credit card required to sign up. The free tier never expires — it's designed to let you evaluate the API and build prototypes without any commitment. Free renders carry a light "rendex.dev" watermark tiled across the image (a footer line on PDFs) — your content stays readable underneath. Every paid plan — starting with Basic ($19/month) — is fully watermark-free.
02Do free renders have a watermark?
Yes — output on the free tier carries a "rendex.dev" watermark tiled across PNG/JPEG/WebP images (your content stays readable underneath) and a footer line on PDFs. Every paid plan — starting with Basic ($19/month) — is fully watermark-free. Text extraction is never marked. The mark is rendered into the pixels/PDF server-side, so it can't be stripped in code.
03What image formats are supported?
PNG, JPEG, WebP, and PDF. You can control the output quality for JPEG and WebP (1-100) and choose the format that best fits your use case. PNG for pixel-perfect screenshots, JPEG for smaller file sizes, WebP for the best of both, and PDF for documents and archival.
04How fast are screenshots?
Most screenshots complete in under 3 seconds, with simple pages often under 1 second. The API runs on Cloudflare's edge network across 300+ locations, so requests are processed close to both you and the target website.
05Do you have official SDKs?
Yes. We ship official TypeScript and Python SDKs with full type safety and zero external dependencies. Install with "npm i @copperline/rendex" or "pip install rendex". Both return typed responses — you get your first screenshot in 3 lines of code.
06Can I capture full-page screenshots?
Yes. Set "fullPage": true in your request and the API automatically scrolls the entire page, capturing everything including below-the-fold content. Custom viewport dimensions from 320px to 3840px and retina up to 3x are supported.
07Can I capture a specific part of a page?
Yes. Use the "selector" parameter with any CSS selector to capture a specific element — a hero section, pricing table, navigation bar, or any component. For example, "selector": ".pricing-card" captures just that element. You can also use "waitForSelector" to wait for dynamic content to render before capturing.
08Is there an MCP server for AI agents?
Yes. Rendex ships with a Model Context Protocol (MCP) server that works with Claude, ChatGPT, Cursor, Windsurf, and any MCP-compatible client. AI agents can capture screenshots as a native tool — no REST integration needed.
09What happens if I exceed my plan limit?
Your bill stays predictable. Every plan has a hard monthly cap, so you'll never get a surprise charge for overage. Once you hit your cap, requests return HTTP 429 until your next billing cycle — and you can upgrade in one click to resume immediately, since upgrades take effect right away.
10Do you support dark mode captures?
Yes. Set "darkMode": true and the API emulates the prefers-color-scheme: dark media query, so websites that support dark mode will render in their dark theme.
11Where is the API deployed?
Rendex is deployed across 300+ edge locations worldwide. There are no cold starts — every request gets immediate processing on the nearest edge node.
12Can I capture pages from different countries?
Yes. Pro and Enterprise plans include geo-targeted capture from 50+ countries. Set the "geo" parameter to any ISO country code (e.g., "US", "DE", "JP") and optionally refine by state and city. The page renders exactly as a local user would see it — localized pricing, language, and ads included.
13How does batch processing work?
Submit up to 500 URLs in a single POST request to /v1/screenshot/batch. Each URL is processed in parallel with shared default parameters and optional per-URL overrides. You can poll batch status or set a webhook URL to receive a callback when the entire batch completes.
14Do you support webhooks?
Yes. Set a webhook URL on any async job or batch request and receive an HMAC-SHA256 signed callback on completion or failure. Webhook payloads include the job result URL, metadata, and a delivery ID for idempotency. Delivery retries with exponential backoff up to 3 attempts.
15Can I generate PDFs from URLs or HTML?
Yes. Set "format": "pdf" on any request to render a URL or raw HTML to a paginated PDF. You can configure page size (A4, Letter, custom), margins, orientation, scale, and background printing. Perfect for reports, invoices, and documentation — no wkhtmltopdf or Puppeteer needed.
16Can I render HTML to an image without hosting a page?
Yes. Pass raw HTML via the "html" parameter instead of a URL. Rendex renders it to PNG, JPEG, WebP, or PDF. Generate social cards, invoices, OG images, and email previews — all without hosting a page. Full CSS support including Flexbox, Grid, and Google Fonts.
17Can I render Markdown to an image or PDF?
Yes. Pass your content via the "markdown" parameter and Rendex converts it to a styled HTML document with GitHub-flavored typography, then renders it to PNG, JPEG, WebP, or PDF — no CSS or hosted page required. It is the fastest path for AI agents (which emit Markdown natively), READMEs, changelogs, and release notes. The markdown parameter is mutually exclusive with url and html.
18Can I get an OG image as a hosted URL instead of bytes?
Yes. POST your render to /v1/render/link and Rendex returns a signed URL you drop straight into <meta property="og:image"> or an <img src> — no backend or storage on your side. The first request renders and caches it on the edge; every repeat (every crawler, every share) serves the cached copy, so a widely-shared link costs one render, not one per crawl. You can also add "hosted": true to any normal render to get a CDN-backed { url, expiresAt } back instead of the image. Available on every plan, including Free.
19Can I turn a URL into clean Markdown for an LLM or RAG pipeline?
Yes. POST a URL to /v1/extract and Rendex returns reader-mode Markdown, JSON, or article HTML pulled from the fully-rendered page — so it works on JavaScript-heavy single-page apps, not just static HTML. It's the fastest way to feed an LLM clean text instead of raw markup. Want the screenshot and the extracted text in one call? Set "extract": true on /v1/screenshot/json. Extraction is available on every plan, including Free.
20Can I generate invoices or reports from a template and data?
Yes. Send a "data" object alongside your HTML or Markdown and Rendex renders it as a logic-less Mustache template before capture, filling {{placeholders}} from your data. Use {{#items}} to loop over arrays and {{a.b}} for nested values; values are HTML-escaped by default. One reusable template plus a data object generates invoices, reports, certificates, and cards — ideal for no-code automations and AI agents. Templating is valid only with html or markdown (combining data with a url returns a 400).
21Can Rendex monitor a page for changes?
Yes. Rendex Watch re-renders any public URL on a schedule and alerts you when it changes — a real-Chrome before/after visual diff with a highlighted overlay, a full-page text diff, or both (the default, so it catches any change out of the box). Every alert leads with a crop of exactly what changed plus a plain-English summary of what and where — on every plan — delivered by email (every plan) or a signed webhook (Starter and up). Create and manage watches in the dashboard or over the /v1/watches REST API, with native tools in MCP, n8n, and Zapier — all on the same API key and credit pool as your renders. More at /watch.
22What's the difference between Rendex and a screenshot-only API?
Rendex is a rendering platform — not just a screenshot tool. Beyond URL screenshots, it handles PDF generation, HTML-to-image rendering, URL→Markdown extraction, hosted render links (og:image), batch processing, async webhooks, geo-targeted capture, website change monitoring (Rendex Watch), and MCP integration for AI agents. One API, one key, one billing relationship for all your rendering needs.
23Is my data safe with Rendex?
Yes. Rendex does not store screenshots or rendered content beyond the time needed to deliver your response. Async job results are stored temporarily in encrypted storage and automatically expire. All API communication is over HTTPS. S3 credentials for custom storage are encrypted with AES-256-GCM at rest.
24Do you scan URLs for malware before rendering?
Yes. Every URL is checked against Google Safe Browsing before rendering. If a URL is flagged as malicious — phishing, malware, or social engineering — the request is rejected with a clear error. This protects your infrastructure and end users from rendering dangerous content.
25Can the API access internal or private URLs?
No. Rendex blocks requests to private IP ranges (10.x, 172.16.x, 192.168.x), localhost, link-local addresses, and cloud metadata endpoints (169.254.169.254) — and it resolves each hostname first, so a public-looking domain can't be pointed at an internal address either. URLs that resolve to those ranges are rejected before any render happens.
26How do I use Rendex in an n8n workflow?
Install the official Rendex community node (n8n-nodes-rendex) from Settings → Community Nodes, add a Rendex node, and authenticate with your API key. Set the Screenshot resource to Capture, choose HTML or URL as the source, and the rendered image or PDF lands in the node's binary output — ready to pipe into S3, email, or any other node. Full guide at /docs/n8n.
27Can I render HTML to an image in Make.com?
Yes. Make doesn't have a native Rendex app, but its built-in HTTP module is all you need. POST your HTML to https://api.rendex.dev/v1/screenshot with an Authorization Bearer header, and Rendex returns the rendered PNG, JPEG, WebP, or PDF for any downstream module. Step-by-step at /docs/make.
28Does Rendex work with Zapier?
Yes. The native Rendex app for Zapier connects to 7,000+ apps with no code — search 'Rendex' in the Zapier app directory, paste your API key, and add a Capture Screenshot or Generate PDF action to any Zap. See /docs/zapier.
29Can I generate invoices or OG images from a no-code automation?
Yes. Send your HTML template to Rendex from n8n, Make, or Zapier and it renders straight to PNG, JPEG, WebP, or PDF — no hosted page required. It's a common pattern for invoices, social cards, certificates, and email previews, with the result attached, uploaded, or emailed in the next automation step.
30Are you GDPR-compliant, and can I get a DPA?
Yes. On a standard synchronous render, the HTML, URL, or Markdown you send is processed transiently and isn't retained after we deliver your response. If you opt into an asynchronous job, batch, or hosted output, the submitted capture parameters are stored only as long as the job needs them — credentials, cookies, and request headers are redacted at the edge before storage, and the params are nulled within 90 days — while the rendered output sits in encrypted storage that automatically expires. We offer a standard Data Processing Agreement (DPA) under the GDPR and UK GDPR on request; email legal@rendex.dev. Our sub-processors are listed in the Privacy Policy, and rendering runs on Cloudflare's global edge.
31Do you provide a VAT-compliant invoice for my business?
Yes. We collect your business or VAT tax ID at checkout, so it's recorded on the Stripe invoice your finance team can expense — EU B2B reverse-charge included. Billing runs through Stripe, and you can switch between monthly and annual billing anytime from your dashboard.
Ship a render in 30 seconds

Grab a key. Paste this. You're rendering.

Free tier is a real tier — same engine, same edge, same MCP. Lift the cap when you need to, not before.

your terminal
curl "https://api.rendex.dev/v1/screenshot" \
  -H "Authorization: Bearer $RENDEX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"html":"<h1>Hello</h1>"}' \
  -o out.png
POST · /v1/screenshot≈ 200 ms
PNG.png@2x retina · transparent · sRGB
JPEG.jpgquality 1–100 · progressive · 4:2:0
PDF.pdfA4 / Letter / custom · outline · margins
WebP.webplossy or lossless · animated supported