Renderfy — HTML, Tailwind & Markdown to Image/PDF API
One POST request — pixel-perfect output<br>Generate images & PDFs from code.<br>Send Tailwind, HTML, Markdown, charts, or LaTeX — get back a pixel-perfect PNG, JPEG, WebP, or PDF in the same response. No headless browser to run, no fonts to configure.<br>Start free — 100 creditsTry it live ↓<br>No credit card required · 100 free credits · From $9/mo after
Official TypeScript SDK<br>$npm install @renderfy/sdk<br>Zero dependencies · Node.js, Next.js Edge, Cloudflare Workers, Bun · View SDK docs →
Try it right now — no signup required<br>All seven engines, live — pick one, edit the input, hit render.
TailwindHTMLMarkdownCodeChartDiagramMath
Live Report
Revenue up<br>42%<br>this quarter.
Aurora Analytics processed 1.2M events across 14 regions.
MRR<br>$184K
Customers<br>2,847
Uptime<br>99.99%
Test Render
Preview will appear here after you hit Test Render.
cURLNext.js/TSPython<br>Copy<br>curl -X POST https://renderfy.io/api/v1/render \<br>-H "Authorization: Bearer rfy_live_YOUR_KEY" \<br>-H "Content-Type: application/json" \<br>-d '{"type":"tailwind","content":"\n \n \n Live Report\n \n \n Revenue up\n 42%\n this quarter.\n \n \n Aurora Analytics processed 1.2M events across 14 regions.\n \n \n \n MRR\n $184K\n \n \n Customers\n 2,847\n \n \n Uptime\n 99.99%\n \n \n","options":{"format":"png","dimensions":"og-image","scale":2,"quality":90}}' \<br>--output render.png
Use cases<br>Rendering that pays for itself<br>Four ways teams turn one API call into revenue, retention, and saved engineering weeks. Every image below is unedited output from this exact API.
01Marketing & SEO<br>Open Graph images that sell the click
og-image.png · 1200×630 · 2xrendered by the API
01Marketing & SEO<br>Open Graph images that sell the click
Every blog post, product page, and job listing gets its own pixel-perfect share card — templated once, populated per URL at request time. Rich previews stop the scroll; bare links don't.<br>One template covers thousands of pages<br>No design backlog, no screenshot hacks<br>Ships from the code you already deploy<br>POST /api/v1/render · type: "tailwind" · format: "png" · dimensions: "og-image"
02Reports & Digests<br>Charts that work inside email
report-chart.png · 960×540 · 2xrendered by the API
02Reports & Digests<br>Charts that work inside email
Email clients can't run JavaScript — so live dashboards die in the inbox. Post your metrics as JSON, get back a chart PNG, and drop it straight into weekly digests, usage alerts, and investor updates.<br>JSON in, finished chart out — one request<br>Renders identically in every email client<br>Automate reports nobody has to assemble<br>POST /api/v1/render · type: "chart" · format: "png" · Chart.js payload
03Billing Ops<br>Invoices & receipts on autopilot
invoice.pdf · A4 · print-readyrendered by the API
03Billing Ops<br>Invoices & receipts on autopilot
Turn a payment webhook into a branded, print-ready PDF in one API call — no PDF library to fight, no headless Chrome to babysit, no invoice template drifting away from your brand.<br>Payment event → attached PDF, same request cycle<br>Print-ready A4/Letter output every time<br>Your Tailwind template is the single source of truth<br>POST /api/v1/render · type: "tailwind" · format: "pdf" · dimensions: "a4"<br>Download the sample PDF →
04Growth & Engagement<br>Certificates your users brag about
certificate.png · 1100×780 · 2xrendered by the API
04Growth & Engagement<br>Certificates your users brag about
Course completions, hackathon wins, community milestones — render a personalized certificate the second it's earned. Every one that gets shared on LinkedIn is free acquisition with your name on it.<br>Personalized per user, generated in milliseconds<br>Users share them — your brand travels for free<br>Works for courses, events, memberships, awards<br>POST /api/v1/render · type: "tailwind" · format: "png" · 1100×780
More use cases<br>Your first render is 5 lines of code away<br>Sign up, mint an API key, and ship any of these use cases this afternoon — 100 free credits included — no card needed.<br>Get 100 Free CreditsBack to the playground
Built for production, not demos<br>Save the layout once. Ship just the data.<br>The pattern most render APIs miss: your invoice template shouldn’t be in every deploy of your app. Save it once with Renderfy, then render each invoice with a two-line call. Batch a hundred at once when you need to.
BeforeShip the whole layout each call<br>POST /api/v1/render<br>"type": "tailwind",<br>"content": "Invoice #0007<br>Billed to: Juniper Labs<br>Total: $1,240.00<br>...",<br>"options": { "format": "pdf" }<br>}Every request re-ships the same 200 lines of layout. A copy-editing change means a redeploy.
With RenderfyShip just the data<br>POST /api/v1/render<br>"template": "invoice",<br>"data": {<br>"number": "#0007",<br>"client": "Juniper Labs",<br>"total": "$1,240.00"<br>}The template lives on your account. Edit it in the live workbench with sample data, or locally with npx @renderfy/preview — every future render picks up changes, no redeploy.
And when you need many at once<br>Batch render up to...