pdf.xhub

Turn live dashboards into scheduled PDF reports

Capture any dashboard — including auth-gated, JS-rendered SPAs — as a print-perfect PDF. Schedule weekly, archive monthly, deliver via webhook.

Cookie + header authJS-rendered SPAsScheduled jobs

Why capture dashboards as PDFs?

Compliance archives that don't drift

Dashboards change. PDFs are immutable. Capture month-end snapshots for audits, regulatory submissions, board materials.

Distribute to non-tool users

Executives and customers don't always have logins to your BI tool. Email them a PDF report — same data, no friction.

Authenticated URLs work too

Pass cookies or auth headers to render gated content. Internal Grafana, Looker, Metabase, or your own dashboards — all renderable.

How dashboard capture works

1. Schedule a render or call sync

POST a render job with the URL, optional cookies/headers, and viewport size. Or schedule it via cron-style trigger.

2. We load + wait for ready

Headless Chromium loads the page, applies your auth, waits for network-idle or your custom selector to appear.

3. Receive PDF on completion

Sync mode for fast pages, async with webhook for slow-loading dashboards. Pipe directly to S3 or email.

Built for ops, BI, and customer-success teams

Whether it's a weekly partner report, a monthly compliance archive, or an on-demand customer dashboard — same endpoint, same response. Built on URL-to-PDF for live dashboards and HTML-to-PDF for templated reports. Capture once, archive forever.

Try it in your stack

Same endpoint. Copy as cURL, call from any language.

POST a URL with auth headers, get back a PDF capture of the rendered dashboard.

curl -X POST https://api.pdf.xhub.io/v1/render \
  -H "Authorization: Bearer $PDFXHUB_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "url",
    "url": "https://dashboard.acme.io/q4-report",
    "auth": { "header": "Cookie: session=xyz" },
    "viewport": "1280x900"
  }' --output report.pdf

Features at a glance

Capture & Auth

  • Headless Chromium with EU-only render workers
  • Cookie + custom HTTP headers + basic-auth + bearer-token
  • JS-rendered SPAs (React, Vue, Angular, Svelte)
  • Wait-for-selector or wait-for-network-idle
  • Configurable viewport (mobile, tablet, desktop, custom)

Scheduling & Delivery

  • Cron-style scheduled jobs (daily, weekly, monthly)
  • Webhook on completion with download URL
  • Direct-pipe to S3 / GCS / Azure Blob
  • Email delivery with attachment (optional)
  • Per-job retry policy on transient failures

Platform

  • EU-only Chromium fleet
  • Cron-style scheduled jobs (daily, weekly, monthly)
  • Wait-for-selector or wait-for-network-idle hooks
  • Webhook on completion with download URL
  • Direct-pipe to S3 / GCS / Azure Blob
  • Per-tenant API-key scoping for shared dashboards

Powered by these APIs

The product endpoints behind this solution.

Related solutions

Same API, different workflows.

Snapshot your first dashboard

25 captures/month free forever. Authenticated URLs included.