Rendex
Recipe

Screenshot a Page Behind a Login in Zapier

Some of the pages worth capturing only exist once you're signed in — an internal dashboard, a client's admin view, a members-only report. Pass a session cookie to Zapier's native Rendex Capture Screenshot action and it renders the page as the logged-in user, then hands back the image. No browser to script, no code. (Cookies and Custom Headers are a Rendex Basic+ feature.)

Last updated 2026-07-21

The Problem

A plain screenshot API only sees what a signed-out visitor sees, so pointing it at a dashboard or a paywalled report just captures the login screen. The usual fix is to script a real browser: launch headless Chrome, drive the login form, wait for the app to hydrate, then screenshot — a fragile pile of automation to build and babysit, and completely off-limits in a no-code Zapier stack. So authenticated pages tend to get captured by hand, one signed-in tab at a time.

The Solution

Rendex's Capture Screenshot action accepts a Cookies field — a JSON array of your session cookies — so it loads the page already authenticated and renders the real content, not the login wall. You grab the cookie once from your browser's dev tools (or a login step earlier in the Zap) and paste it in; add Custom Headers if the app needs an auth token or a tenant header. Everything else is a normal capture: pick the format, turn on Full Page, and the action returns the image for the next step to file or post. It's fully no-code. Note that Cookies and Custom Headers require a Rendex paid plan (Starter, Pro, or Enterprise) — separate from your Zapier plan; a free Rendex key returns a 403 upgrade error on those fields.

How the Workflow Runs

Trigger

Any Zapier trigger — a daily schedule, a new row, a form, or a webhook — kicks off the capture.

Rendex — Capture with Cookies

Paste a JSON array of session cookies (and any Custom Headers) into the native action. Rendex loads the page authenticated, so the real content renders instead of a login wall.

Deliver

The returned image goes to Slack, Google Drive, or an email step — the same as any other capture.

Input → Rendered Output

Left: a Rendex Capture Screenshot action in the Zap editor with a Cookies field holding a JSON array of session cookies. Right: the resulting screenshot showing an authenticated dashboard — real charts and account data — instead of a sign-in page.

Rendered by Rendex

What You Need

  • A Rendex API key on a paid plan (Starter, Pro, or Enterprise) — Cookies and Custom Headers are gated to paid plans; a free key returns a 403 on those fields.
  • A Zapier account with the Rendex app connected (search "Rendex", add your key once).
  • A valid session cookie for the target page (from your browser's dev tools, or captured by a login step earlier in the Zap), formatted as a JSON array.
  • A delivery step: Slack, Google Drive, Dropbox, or an email action to receive the image.

What This Recipe Uses

Render as the logged-in user

Pass a JSON array of session cookies and Rendex loads the page authenticated — so a dashboard or paywalled report renders its real content instead of a sign-in form.

Custom Headers too

Apps that authenticate with a bearer token or need a tenant/workspace header? Add a Custom Headers JSON object alongside the cookies — Host, Connection, Content-Length, and Transfer-Encoding are the only ones you can't override.

Full-page, real-browser capture

Once authenticated it's a normal capture: turn on Full Page for the whole report, add a Delay or Wait-For-Selector for slow-hydrating SPAs, and pick PNG or PDF.

No headless browser to babysit

Rendex owns the browser, the login state you supply, and the render — you never launch Chrome, drive a login form, or keep a scraping box alive.

Build It

zap-behind-login.yaml
# Zapier — action config (no code). Cookies/Headers = Rendex Basic+.
Trigger:  Schedule by Zapier — Every day 8am
Action:   Rendex — Capture Screenshot
  Source Type:  URL
  URL:          https://app.example.com/dashboard
  Output Format: PNG
  Full Page:    true
  Cookies:      [{"name":"session","value":"abc123","domain":"app.example.com"}]
  Custom Headers: {"X-Tenant":"acme"}   # optional
Next:     Slack — Send file to #reporting
  File = {{ Rendex: File }}
what-the-action-sends.sh
# The action posts this. cookies is a JSON array; headers a JSON object.
# Both require a Rendex paid plan (Basic+) — a free key returns 403.
curl -X POST https://api.rendex.dev/v1/screenshot \
  -H "Authorization: Bearer rdx_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://app.example.com/dashboard",
    "format": "png",
    "fullPage": true,
    "cookies": [
      { "name": "session", "value": "abc123", "domain": "app.example.com" }
    ],
    "headers": { "X-Tenant": "acme" },
    "async": true
  }'
# 403 PLAN_UPGRADE_REQUIRED on a free key means cookies/headers need Basic+.

100 free API calls/month — no credit card required. Get your API key and start building.

Reach for this when the thing you need a picture of lives behind a sign-in: a SaaS dashboard you report on weekly, a client's account view you snapshot for records, a members-only page you audit for changes. The hard part everywhere else — driving a login in a headless browser — collapses into pasting a cookie value into one field, because Rendex applies your session and renders the authenticated page directly. Grab the cookie from your browser's dev tools (Application → Cookies) for a page you're logged into, or capture it from a login request earlier in the Zap; add Custom Headers when the app authenticates with a bearer token or needs a tenant/workspace header. From there it's an ordinary capture — Full Page for the whole report, a Delay or Wait-For-Selector if the app is a slow-hydrating SPA. Two honest caveats: cookies expire, so long-lived automations need a way to refresh them, and Cookies/Custom Headers are a Rendex Basic+ feature (a free key returns a 403 on those fields), separate from whatever Zapier plan you're on.

Frequently Asked Questions

Related Resources