Changelog
What's new in Rendex
New features, improvements, and fixes for the Rendex rendering API.
- feature
Watch tells you what changed — AI summaries, crop-to-change & any-change by default (1.8.0)
- AI "what changed" summary: every Watch change now carries a one-line, plain-English description of what changed — in the watch.changed webhook (a new summary field), the alert email, and the dashboard. A free templated line ships on every plan (including for visual-only changes with no text delta); Pro and Enterprise can opt a watch into a Workers-AI-written sentence.
- Crop-to-change: change alerts now lead with a tight crop of exactly what changed instead of a full-page overlay. The watch.changed webhook gains cropUrl (a signed image cropped to the change) and changedRegion (normalized 0..1 coordinates of where on the page it changed); the email leads with the crop plus a "near the top / middle / bottom of the page" hint and keeps the full-page overlay one click away.
- Any-change detection by default: diffMode now defaults to "both" (visual + text) across the API, SDKs, MCP, n8n, Zapier, and Make — a new watch catches any change out of the box. Detection is scale-invariant, so a small change far down a very long page is still caught rather than lost in a whole-page average.
- Full-resolution visual diff on tall pages: long single-page sites are now compared at full resolution (segmented internally), so subtle changes below the fold are detected reliably.
- Available everywhere Watch is: the REST API, the JavaScript and Python SDKs (createWatch/updateWatch expose the AI-summary opt-in; verifyWebhook surfaces summary, cropUrl, and changedRegion), the MCP tools, and the n8n, Zapier, and Make integrations.
- feature
account() in the SDKs + native Account & Artifact in n8n and Zapier
- rendex-js and rendex-python 1.6.0 add account() — one call (GET /v1/account) that returns your plan, this month's usage (used / limit / remaining and the reset date), the per-minute rate limit, and a recommended upgrade link. Read-only and free; it never spends a credit.
- The n8n node and Zapier app (1.7.0) gain native Account and Artifact operations: read your plan and usage, and turn Markdown or HTML into a branded PDF + PNG + hosted share link in one step without dropping to a raw HTTP call.
- launch
render_artifact + an OAuth-connected remote MCP for ChatGPT, Claude & any agent
- render_artifact: turn Markdown or HTML into a branded, downloadable artifact — a PDF, a PNG, and a hosted share page — in one call (POST /v1/artifact). Apply a logo, accent color, font, header, and footer, and choose the PDF page size, orientation, and margins. Built for agent outputs: reports, invoices, summaries, release notes, and dashboards. Available in the API, the JavaScript and Python SDKs, and MCP.
- Remote MCP over OAuth 2.1: connect Rendex to ChatGPT, Claude, Cursor, or your own agent at https://mcp.rendex.dev/mcp with no API key — sign in once with your Rendex email and each agent bills against your own plan and credit pool (authorization-code + PKCE). A static Authorization: Bearer rdx_ key still works too.
- rendex_account: a read-only MCP tool that reports your plan, this month's usage and reset date, and a one-tap upgrade link — so an agent can answer "how much have I used, and how do I get more?" without leaving the chat.
- feature
Rendex Watch — monitor any page, now across SDKs, MCP, n8n & Zapier
- Rendex Watch monitors a URL on a schedule and detects when it changes — a real-Chrome before/after visual diff (with a highlighted overlay), an extracted-text diff, or both — using the same rdx_ key and shared credit pool as screenshots, PDF, and extraction.
- REST API: full CRUD under /v1/watches — create, list, get, update (pause/resume/re-point), delete, run-now, read run history with signed before/after/overlay image URLs, and POST /v1/watches/test to dry-run a config before saving.
- SDKs: the JavaScript and Python SDKs add createWatch/listWatches/getWatch/updateWatch/deleteWatch/runWatch/listWatchRuns/testWatch, plus a verifyWebhook() helper that validates the HMAC-signed watch.changed / watch.recovered / watch.error events.
- MCP: native watch_create / watch_list / watch_get / watch_run / watch_test / watch_runs / watch_delete tools so AI agents can set up and read monitors.
- n8n & Zapier: a native Watch resource (create/get/list/update/delete/run) and a change trigger — the 'Rendex Watch Trigger' polling node in n8n and the 'Website Changed' trigger in the Zapier app — that starts a workflow when a monitored page changes.
- Alerts: change events are delivered as HMAC-signed webhooks (Starter and above) and email (every plan). Plan walls are frequency, watch count, and the webhook channel — the visual + text diff itself is available on every plan.
- feature
Hosted render URLs, URL→Markdown extraction, device presets & resizing
- Hosted rendering: mint a signed render URL with POST /v1/render/link and drop it straight into <meta property="og:image"> — no backend, no storage on your side. It renders on the first request and serves a cached copy on every repeat, so a widely-shared link costs one render, not one per crawl.
- Or set hosted:true on a screenshot request to get a CDN-backed URL back instead of the raw image bytes.
- Content extraction: POST /v1/extract turns any URL into clean Markdown, JSON, or article HTML — pulled from the fully-rendered page, so it works on JavaScript-heavy sites. Add extract:true to a /v1/screenshot/json call to get the image and the extracted text in a single request.
- Device presets: set device to desktop, iphone_15, iphone_se, pixel_8, ipad, or ipad_pro to capture at that device's viewport, scale, and user agent with one parameter.
- Output resizing: resizeWidth / resizeHeight downscale the result (aspect ratio preserved when you set only one) — handy for thumbnails and fixed-size slots.
- hideSelectors removes specific elements before capture, and blockCookieBanners hides common consent walls — both available on every plan.
- Hosted render links and extraction are available across the API, the JS and Python SDKs, MCP, and Zapier; the new capture options (device, resize, hideSelectors, blockCookieBanners) are also in the n8n node.
- improvement
Stricter URL & webhook validation — private addresses now rejected
- URL, webhook, and batch validation now resolve DNS and reject any hostname that points at a private or internal IP — so a public-looking domain can no longer be pointed at an internal address
- Applies to the page navigation, every subresource the page loads, webhook callbacks, batch URLs, and custom S3 storage endpoints
- Resolved checks use Cloudflare's 1.1.1.1 resolver and fail closed on the request's primary target
- improvement
Clearer template errors, dark-mode Markdown, and output limits
- Malformed Mustache templates now return a clear 400 validation error that names the syntax problem, instead of a generic 500
- darkMode now restyles Markdown renders with a dark theme — previously it was a no-op on the default Markdown stylesheet
- Batch requests reject html / markdown / data in defaults with a 400 instead of silently ignoring them — batch stays URL-only
- Total rendered output size is now capped so large templated documents stay fast and predictable (413 if exceeded)
- feature
Mustache data templating — fill {{placeholders}} in HTML or Markdown via a data object
- Pass a data object alongside html or markdown and Rendex renders it as a logic-less Mustache template before capture — generate invoices, reports, certificates, and cards from a single reusable template
- {{var}} interpolation is HTML-escaped by default; {{{var}}} opts in to raw output; {{#items}}…{{/items}} loops over arrays; {{^x}} inverted sections; {{a.b}} nested access
- data is valid only with html or markdown — combining it with url returns a 400 validation error; serialized payload capped at 256 KB
- Works across all output formats (PNG, JPEG, WebP, PDF) and the /v1/screenshot/json endpoint
- feature
Markdown input support — render Markdown straight to image or PDF
- POST markdown to /v1/screenshot and Rendex converts it to a styled HTML document, then renders it to PNG, JPEG, WebP, or PDF
- Sensible default typography out of the box — no CSS or templating required
- Ideal for AI agents (which emit Markdown natively), READMEs, and docs
- SDK shortcuts included — renderMarkdown / render_markdown, or pass markdown to screenshot directly; mutually exclusive with url and html
- improvement
Usage now pools per account — predictable, no surprises
- Monthly credits and per-minute rate limits now pool across every API key on your account — extra keys share one quota, they never multiply it
- Hit a plan limit and the API returns a clear upgrade path (upgrade_url field + Link header) instead of a generic error, so your code can react
- Free tier now includes 1 API key; Starter includes 5 and Pro includes 10
- Hard caps stay hard on every plan — no overage billing, ever
- feature
HTML → Image is now first-class in the SDKs
- Python SDK now renders raw HTML to images — new render_html(html, **options) plus an html= keyword on screenshot() / screenshot_json()
- TypeScript SDK adds renderHtml(html, options) and renderHtmlJson(html, options) convenience methods
- Both SDKs lead with the HTML→image workflow — turn an invoice, social card, OG image, or email template into a PNG/PDF without hosting a URL
- Fully backward compatible — existing url-based calls are unchanged
- feature
Rendex for n8n — Verified Community Node Live
- n8n-nodes-rendex@1.0.3 approved by the n8n team and live on n8n Cloud
- Drag 'Rendex' onto your canvas — no manual install required (enable Verified Community Nodes in Admin Panel if needed)
- Full v1.0.0 surface — Screenshot Capture (sync + async), Job status, Batch submit + status, PDF generation
- usableAsTool: true — call Rendex directly from n8n AI Agent workflows
- Bearer-token credential with /v1/credential-check probe; 28-parameter Additional Options collection covers viewport, format, wait conditions, and full-page rendering
- feature
Rendex for Zapier — Public App Live
- Search 'Rendex' on zapier.com to connect — no code required
- Screenshot Capture action — returns the rendered image plus job metadata in one step
- Capture Async and Submit Batch actions — fire-and-forget jobs with polling-trigger pickup when each one finishes
- Generate PDF action — render any URL or raw HTML to a PDF with custom page size, margins, and orientation
- New Completed Screenshot trigger — kicks off a Zap whenever an async or batch job lands
- Job and Batch lookup searches with dynamic dropdowns — find any past job by its label without copy-pasting IDs
- feature
n8n Community Node — Published to npm
- Community node published as n8n-nodes-rendex on npm — verified marketplace listing is currently under n8n review
- Screenshot Capture operation — returns image or PDF as a binary output plus JSON metadata in one node
- Screenshot Capture Async operation — submits a job and returns immediately, with optional HMAC-signed webhook callback on completion
- Batch Submit operation — queue up to 500 URLs per request with shared defaults and a completion webhook
- Job and Batch Get Status operations — poll async jobs or batches for progress and signed result URLs
- Full v1.0.0 parameter surface — viewport, wait strategy, ad and resource blocking, CSS and JavaScript injection, cookies, custom headers, PDF page options, geo-targeting, and element selector
- feature
v1.0.0 — Full Rendering Platform
- Batch capture — submit up to 500 URLs in a single request and process them in parallel
- Async pipeline — fire-and-forget captures with job polling or webhook callbacks on completion
- Geo-targeted screenshots — capture pages as seen from any country, city, or state (Pro/Enterprise)
- PDF output — render any page or raw HTML to PDF with configurable page size, margins, and orientation
- CSS and JavaScript injection — inject custom styles or scripts before capture (up to 50KB each)
- Cookie and header injection — set cookies, custom headers, and user agent for authenticated page captures
- Webhook notifications — receive a callback when async and batch jobs complete
- HTML rendering — render raw HTML directly without a URL, perfect for invoices and social cards
- Bring Your Own S3 — connect your own S3-compatible bucket for async capture results (Pro/Enterprise)
- feature
v0.4.0 — Reliability & Premium Tools
- Full-page auto-scroll — lazy images, scroll-triggered animations, and deferred content now load automatically before capture
- Free screenshot tool upgraded with viewport presets, format picker, copy-to-clipboard, and auto-scroll support
- feature
v0.3.0 — Official SDKs & Header Fix
- JavaScript/TypeScript SDK — npm install @copperline/rendex — zero dependencies, 3 lines to first screenshot
- Python SDK — pip install rendex — sync and async support, context manager for connection reuse
- Both SDKs support all API features: PNG, JPEG, WebP, element capture, dark mode, ad blocking
- Fixed missing x-rendex-format header on POST /v1/screenshot
- feature
v0.2.0 — WebP, GET Endpoint & Element Capture
- WebP output format for 30% smaller file sizes — set format to webp
- New GET endpoint — capture screenshots with a simple URL, no POST body needed
- Element selector — capture specific page elements instead of full pages
- improvement
System Status Page
- Live API status banner shows automatically when service is degraded or down
- Status page at rendex.dev/status with real-time health checks and latency
- launch
V1 Launch
- Screenshot API live at api.rendex.dev with PNG/JPEG capture, dark mode, full-page, ad blocking
- MCP server at mcp.rendex.dev for AI agents (Claude, Cursor, Windsurf)
- Dashboard with API key management, usage analytics, billing, and request logs
- Documentation with quick start guides, API reference, and MCP setup instructions
- Free tier: 100 calls/month, Starter $69/mo, Pro $179/mo