canonical: https://jentic.com/apis/rendex.dev/rendex

# Rendex Rendering API

The Rendex Rendering API turns a webpage URL, raw HTML, or Markdown into a PNG, JPEG, WebP, or PDF, with options such as fullPage capture, darkMode, blockAds, custom css and js injection, device presets, and geo-targeted rendering. Batches of up to 500 URLs run asynchronously with job and batch status polling and optional webhook delivery. It also mints signed hosted-render links for OG images, extracts a page's content as Markdown, JSON, HTML, or text, renders branded PDF and PNG artifacts, and runs scheduled visual watches that diff a page over time.

## For AI agents

Screenshot webpages, render HTML or Markdown to image or PDF, batch-capture up to 500 URLs, extract page content as Markdown, and watch pages for visual changes with Rendex.

## Scope

Does not handle multi-page site crawling, image editing of existing files, or video capture. Use for rendering webpages, HTML, or Markdown to images and PDFs, extracting page content, and watching pages for changes only.

## Capabilities

- Capture a full-page screenshot of any URL as PNG, JPEG, WebP, or PDF
- Render raw HTML or Markdown into an image or a PDF with page size and margins
- Batch-capture up to 500 URLs asynchronously and poll the batch status
- Extract a page's main content as Markdown, JSON, HTML, or text
- Mint a signed hosted-render URL for an OG image that renders on first hit
- Watch a page on an interval and get a webhook or email when it visibly changes
- Render a branded PDF and PNG artifact from Markdown or HTML content

## Use cases

### Agent eyes on the web

An agent that needs to see a page, not just its HTML, asks Rendex for a screenshot and gets back an image it can inspect or attach. The JSON variant returns the capture as base64 so the agent can pass it straight to a vision model, with waitUntil and waitForSelector controlling when the capture fires.

Example prompt: Call POST `/v1/screenshot/json` with url set to https://example.com, fullPage set to true, and format set to png

### HTML and Markdown to PDF

Invoices, reports, and certificates generated as HTML or Markdown are rendered to PDF by setting format to pdf, with pdfFormat, pdfLandscape, pdfMargin, and pdfPrintBackground controlling the layout. The artifact operation goes further and renders a branded PDF and PNG pair from the same content.

Example prompt: Call POST `/v1/screenshot` with html set to the invoice markup, format set to pdf, and pdfFormat set to A4

### Bulk capture for audits and archives

A batch request takes up to 500 URLs, each able to override shared defaults, and returns a batch id to poll or a webhookUrl to call on completion. This suits visual regression sweeps, competitor archives, and SEO audits across a whole sitemap.

Example prompt: Call POST `/v1/screenshot/batch` with urls listing the sitemap pages, then GET `/v1/batches/{batchId}` until the batch completes

### Page change monitoring

A watch re-renders a URL every intervalMinutes and compares the result using a diffMode and threshold, optionally adding an aiSummary of what changed and notifying a webhookUrl or notifyEmail. Watches can be dry-run first, triggered on demand, paused, and their run history read back.

Example prompt: Call POST `/v1/watches/test` with url set to the pricing page to check the config, then POST `/v1/watches` with the same url, intervalMinutes set to 1440, and notifyEmail set to the team inbox

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/screenshot` | Capture a screenshot, returns image binary |
| POST | `/v1/screenshot/json` | Capture a screenshot, returns base64 JSON |
| POST | `/v1/screenshot/batch` | Batch capture multiple URLs |
| GET | `/v1/batches/{batchId}` | Poll batch status |
| POST | `/v1/extract` | Extract clean content from a URL |
| POST | `/v1/render/link` | Mint a signed hosted-render URL |
| POST | `/v1/watches` | Create a page watch |
| POST | `/v1/artifact` | Render a branded PDF and PNG artifact |

## Key resources

- **Screenshots** — Single captures as binary or base64 JSON, via GET query parameters or POST body
- **Batches and jobs** — Asynchronous bulk captures with batch and job status polling
- **Render links** — Signed hosted-render URLs that render on first hit and serve cached copies after
- **Extract** — Clean content from a URL as Markdown, JSON, HTML, or text
- **Watches** — Scheduled visual monitors: create, list, read, update, delete, run now, dry-run, read run history
- **Artifacts** — Branded PDF and PNG renders from Markdown or HTML

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 61 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 61 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 53 / 100
  - Agent Usability: 94 / 100
  - Security: 42 / 100
  - AI Discoverability: 77 / 100
- **View full report:** https://jentic.com/apis/rendex.dev/rendex/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Rendex by hand means choosing between its bearer, x-api-key, and key query auth, picking binary or base64 responses, and polling job and batch ids for async captures. Through Jentic you install once, import Rendex from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Rendex carries the page to render in the request body, so rules bound which operations your agent may call, not which sites it captures. Watches, jobs, and batches do sit in the URL path (`/v1/watches/{id}`), so a rule can tie the agent to one watch, and you choose whether destructive ones like watch deletion are included.
- **Credential handling:** Your Rendex API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'screenshot a webpage' or 'convert a page to Markdown', and Jentic returns the matching Rendex operation with its input schema so the agent sets the right render options.

## Related APIs

- **Urlbox** — Website screenshot and PDF rendering API
- **ApiFlash** — URL screenshot API
- **Firecrawl** — Crawl whole sites into LLM-ready content
- **Browserless** — Hosted headless browsers

## FAQ

### What authentication does the Rendex Rendering API use?

Per its OpenAPI spec, Rendex authenticates with your API key sent as a bearer token (Authorization: Bearer rdx_...). The GET screenshot operation also accepts the key in an x-api-key header or a key query parameter. The health checks and the signed GET `/v1/render` link need no API key; for render links the HMAC signature in the URL is the auth boundary. Through Jentic, your key is stored encrypted by your own Jentic One instance and injected at execution time.

### Can I turn a webpage into Markdown with Rendex?

Yes. POST `/v1/extract` takes a url and returns the page's clean content, with extractFormat set to markdown by default or to json, html, or text. Options such as device, waitUntil, and blockCookieBanners control how the page loads first.

### How many URLs can a Rendex batch capture?

A batch request accepts between 1 and 500 URLs in its urls array, each able to override the shared defaults. Poll GET `/v1/batches/{batchId}` for progress or pass a webhookUrl to be notified.

### What are the rate limits for the Rendex Rendering API?

The OpenAPI spec does not publish a fixed number. GET `/v1/account` returns your plan, usage, and per-minute rate limit, and calls over the limit get a RATE_LIMITED error. See https://rendex.dev for plan details.

### How do I take a screenshot through Jentic?

Search Jentic for 'screenshot a webpage'. It returns the Rendex screenshot operations with their input schema; your agent sets url and options such as fullPage or format, and Jentic sends the call with your stored key. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a Rendex MCP server?

You don't need an MCP server to give your agent Rendex. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it, discovering the capture, extract, and watch operations on demand instead of loading every tool definition into its context.

### Can I limit what my agent is allowed to do with the Rendex Rendering API?

Yes. A research agent could be allowed POST `/v1/screenshot/json` and POST `/v1/extract` only, so it can see and read pages but cannot create, change, or delete watches or start batch captures. Which URLs it renders is set in the request body, so the rule bounds the operations, not the target sites.
