URL to PDF API — one call, real Chromium

Convert any web page to a print-ready PDF in seconds. Backgrounds, web fonts, JavaScript-rendered content, and full-page scrolling — all preserved. No wkhtmltopdf to maintain. No Puppeteer install.

100 free PDFs/month · A4 by default · Print backgrounds enabled

The 1-line version

curl "https://api.aisnapapi.com/v1/screenshot?url=https://example.com&format=pdf" \ -H "Authorization: Bearer YOUR_API_KEY" \ -o page.pdf

That's the whole API. Set format=pdf and the response body is the binary PDF.

Common use cases

Generating PDFs from JavaScript apps

The API renders pages in a real Chromium browser, so client-side JavaScript executes before the PDF is generated. If your dashboard or report renders charts asynchronously, add a delay parameter to wait for them:

curl "https://api.aisnapapi.com/v1/screenshot?url=https://app.example.com/report/42&format=pdf&delay=2000" \ -H "Authorization: Bearer YOUR_API_KEY" \ -o report.pdf

Node.js: build an invoice PDF endpoint

import express from 'express'; const app = express(); app.get('/invoice/:id.pdf', async (req, res) => { // Your own server renders the invoice as HTML at /invoice/123 const target = `https://yourdomain.com/invoice/${req.params.id}`; const r = await fetch( `https://api.aisnapapi.com/v1/screenshot?url=${encodeURIComponent(target)}&format=pdf`, { headers: { Authorization: `Bearer ${process.env.SNAPAPI_KEY}` } } ); res.type('application/pdf'); r.body.pipe(res); });

Python: save a PDF of any URL

import requests r = requests.get( 'https://api.aisnapapi.com/v1/screenshot', params={'url': 'https://en.wikipedia.org/wiki/PDF', 'format': 'pdf'}, headers={'Authorization': 'Bearer YOUR_API_KEY'} ) open('pdf-article.pdf', 'wb').write(r.content)

Tips for clean PDFs

Start converting URLs to PDFs — free

100 free PDFs every month. No credit card. 30-second signup.

Get My Free API Key