Convert web pages or your own HTML to PDF with paper sizes, margins, backgrounds and one-page fitting.
URL to PDF
Set format=pdf:
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","format":"pdf"}' \
--fail-with-body -o shot.pdfThe page is printed the way Chrome prints it: text stays selectable and links stay clickable. Sites with print stylesheets use them. To get a PDF that looks like the screen instead, print backgrounds and use the screen media type:
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","format":"pdf","pdf_print_background":true,"media_type":"screen"}' \
--fail-with-body -o shot.pdfPaper and margins
| Option | Default | Values |
|---|---|---|
pdf_paper_format |
letter |
a0–a6, letter, legal, tabloid |
pdf_landscape |
false |
|
pdf_margin |
0 |
Any CSS length: 20px, 1cm, 0.5in |
pdf_margin_top, _right, _bottom, _left |
pdf_margin |
Override one side. |
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","format":"pdf","pdf_paper_format":"a4","pdf_margin":"1.5cm","pdf_margin_top":"2.5cm"}' \
--fail-with-body -o shot.pdfOne long page
pdf_fit_one_page=true puts the whole page on a single PDF page sized to the content, with no page breaks. Good for archiving and sharing a page as it looks on screen:
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","format":"pdf","pdf_fit_one_page":true,"pdf_print_background":true}' \
--fail-with-body -o shot.pdfHTML to PDF
For invoices, receipts and reports, render your own template. Use CSS for page layout: @page rules, break-before: page and break-inside: avoid all work.
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"<style>body{font:14px system-ui} table{width:100%} .total{break-inside:avoid}</style><h1>Invoice #1042</h1><table><tr><td>Pro plan</td><td>$90.00</td></tr></table><p class=\"total\">Total: $90.00</p>","format":"pdf","pdf_paper_format":"a4","pdf_margin":"2cm"}' \
--fail-with-body -o shot.pdfEverything that changes the page also works for PDFs: blocking, styles, scripts, hide_selectors, cookies and waits.