First-party app
Rendex

Rendex

Capture screenshots and PDFs of URLs, HTML and Markdown, extract page content and monitor pages for changes with Rendex.

stable Developer ToolsMonitoring & Observability

About

Rendex ships in the w6w first-party pack. It declares 18 actions, 2 health checks, and the host runs its code in a sandbox that never sees the credential.

App id
io.w6w.rendex
Version
0.1.0
Author
w6w
Licence
MIT
Categories
Developer Tools · Monitoring & Observability

Overview

Rendex is a rendering API: it loads a page in real Chrome and hands back a screenshot or PDF, renders HTML or Markdown (optionally filled from a Mustache template and a data object) to an image or PDF, and turns a page into clean reader-mode Markdown. It is a quick way to produce invoices, certificates, OG images, page archives and LLM-ready page text from a workflow without running a browser.

This app covers rendering a URL, HTML or Markdown to PNG, JPEG, WebP or PDF (returned as base64), minting signed hosted render links for og:image and img tags, extracting page content, building branded PDF/PNG artifacts with share links, queueing asynchronous screenshot batches and reading their jobs, reading plan and credit usage, and Rendex Watch: create, test, list, run, pause, update and delete page-change monitors and read their run history.

Every render spends credits and Rendex takes no idempotency key, so the rendering actions are not marked retry-safe. On the Free plan images carry a light rendex.dev watermark.

Build with Rendex

Three routes to the same 18 actions. The Workflow tab is generated from Rendex's own manifest and carries its real ids, so it is copy-pasteable; the Code and CLI examples are the same call for any action on any app, so every app-specific value in them is a blank you fill in.

Get Account Usage

account-get

Read the plan, monthly credit usage and rate limit. Spends no credit.

Create Branded Artifact

artifact-create

Turn Markdown or HTML into a branded PDF and/or PNG with hosted, shareable URLs.

Create Screenshot Batch

batch-create

Queue many URLs for asynchronous capture with shared settings.

Get Batch

batch-get

Read a screenshot batch's progress and each job's result URL.

Extract Page Content

content-extract

Turn a web page into clean reader-mode Markdown, JSON or HTML.

Get Job

job-get

Read the status and result URL of one asynchronous capture job.

Render HTML

render-html

Render HTML to an image or PDF, optionally filling a Mustache template. Returns the image as base64.

Create Render Link

render-link-create

Mint a signed, CDN-cached URL for a render, ready for og:image or <img>.

Render Markdown

render-markdown

Render Markdown to an image or PDF, optionally filling a Mustache template. Returns the image as base64.

Render URL

render-url

Screenshot a web page, or turn it into a PDF. Returns the image as base64.

Create Watch

watch-create

Monitor a URL for visual and text changes on a schedule (1 credit for the baseline).

Delete Watch

watch-delete

Delete a watch and its entire run history.

Get Watch

watch-get

Read one watch's configuration and state.

List Watches

watch-list

List your watches, optionally only active or only paused ones.

Run Watch Now

watch-run

Run a change check immediately (1 credit). A paused watch must be resumed first.

List Watch Runs

watch-runs-list

Read a watch's check history with change flags, diff scores and signed image URLs.

Test Watch Config

watch-test

Dry-run a watch config before creating it: render, reachability and a screenshot.

Update Watch

watch-update

Change a watch's settings, or pause or resume it. Only the fields you set change.

A workflow step names the app and the action, and the editor fills in the connection when you pick one. This is the Step shape from the workflow spec, carrying Rendex's real ids.

{
  "manifestVersion": "2",
  "name": "rendex-example",
  "steps": [
    {
      "id": "artifact-create",
      "uses": {
        "app": "io.w6w.rendex",
        "action": "artifact-create",
        "connection": "conn_YOUR_CONNECTION_ID"
      },
      "with": {
        "content": "<content>"
      }
    }
  ]
}

Here are some of the things you can do

  • Create Branded Artifact

    perform
    artifact-create
  • Get Account Usage

    read
    account-get
  • Create Screenshot Batch

    perform
    batch-create
  • Get Batch

    read
    batch-get
  • Extract Page Content

    read
    content-extract

+13 more actions available

Every app-specific value here is a blank you have to fill in. An app action is reached through the connection that authenticates it, so the address is a connection id, not the app id — and connections belong to your account, so a public page cannot know yours. Create one for Rendex, then fill in the three blanks: conn_YOUR_CONNECTION_ID, the action key, and the parameters that action declares. The call itself is real — the shape is transcribed from the studio's own snippet builder, which prints the same kind of blanks — but nothing in it is specific to Rendex. The Workflow tab is where this app's real ids are.

Install
npm install @w6w/sdk
yarn add @w6w/sdk
pnpm add @w6w/sdk
deno add npm:@w6w/sdk
Code
import { W6wClient, isActionRun } from "@w6w/sdk";

// Reads W6W_BASE_URL and W6W_TOKEN from the environment when omitted.
const client = new W6wClient();

const envelope = await client.run({
  urn: "conn_YOUR_CONNECTION_ID",
  action: "artifact-create",
  payload: {
    content: "<value>",
    // inputFormat: "<value>",
    // formats: "<value>",
    // branding: "<value>",
    // pageSetup: "<value>",
    // data: "<value>",
    // expiresIn: "<value>",
  },
});

if (isActionRun(envelope)) console.log(envelope.value);
Install the CLI
npm install -g @w6w/cli
CLI
w6w run conn_YOUR_CONNECTION_ID --action artifact-create --payload '{"content":"<value>"}'

Give an AI agent Rendex — without giving it Rendex's credentials. One MCP endpoint exposes every app, function and workflow the caller is entitled to, as tools it can discover and run. Access is granted per team while we onboard.

One tool call
{
  "name": "w6w_invoke",
  "arguments": {
    "ref": "app:io.w6w.rendex#artifact-create",
    "input": {
      "content": "<content>"
    }
  }
}

Every tool names its target with a single ref. The app: form above doesn't name a connection at all — the host resolves which of the caller's Rendex connections to sign with, and refuses rather than guesses when the answer is ambiguous.

What the agent gets

Credentials it can't read

The token is attached host-side, at the moment of the call. It is never a tool argument, never in the model's context, and never in a transcript — so a prompt injection has nothing to exfiltrate.

A tool surface scoped to the caller

Tools are derived per end user from what that person has actually connected and is entitled to — not one shared bot identity carrying the union of everyone's access.

A durable workflow in one call

Multi-step work runs on the workflow engine and returns a run handle the agent can poll — retries, branching and state survive the conversation that started them.

Health-aware discovery

Rendex's declared health checks are on the surface too, so an agent can tell "the vendor is down" from "your credential expired" before it burns a retry on either.

The MCP surface is part of the hosted platform. Rendex itself is MIT, and the runtime that executes it is source-available (FSL).

Request MCP access

Health checks

Rendex declares its own checks, so its health is a property of the app rather than something the host guesses at.

service

Rendex API health

Unauthenticated GET https://api.rendex.dev/health, the vendor's documented health route: `{"status":"ok","product":"rendex"}`.

quota

Monthly credit headroom

Credits used against the plan's monthly limit, read from GET /v1/account.