§ Airtable to PDF
Airtable to PDF: Export Airtable Records to PDF Invoices and Reports
Generate a real PDF from Airtable data without fighting a fixed-position layout. Render your own HTML template, so an invoice with three line items and one with thirty both come out right, then write the finished PDF straight back to an attachment field. Try it on any URL or HTML below.
- Early access, launching soon
- No card required
- Your HTML stays yours
§ Live demo
Runs in your browser. Nothing is uploaded.
Your HTML
Live preview
Your PDF is downloading. Want this as one API call, with the page archived too?
§ Short answer
To export Airtable to PDF, you have three routes. Page Designer, available on all paid Airtable plans, lays out a single record on a fixed canvas and exports through your browser print dialog. Interface Designer, which Airtable now recommends over Page Designer, prints the visible area of an interface page. Both are fixed-layout tools, so neither handles data whose length varies, which is why invoices with a changing number of line items are the most common reason teams outgrow them. The third route is to build the document as an HTML template, fill it with record data in an Airtable automation, and POST it to a rendering API that returns a PDF. Because HTML tables flow naturally across pages, variable-length data stops being a problem.
Last updated July 2026. Written and fact checked by the Sitepdf team.
§ 00
Four ways to get a PDF out of Airtable, compared
These options differ on who designs the document, whether the layout can grow with the data, and how much of it runs without a human clicking Print. Facts below were read from Airtable's own documentation in July 2026.
| Approach | Who builds the layout | Variable-length data | Automatable | Best for |
|---|---|---|---|---|
| Page Designer extension all paid plans |
You, on a fixed canvas in Airtable | Poor: fixed positions, content overflows when it grows | No, export runs through the browser print dialog | Single records with a stable shape: badges, labels, one-page profiles |
| Interface Designer printing Airtable's recommendation |
You, as an interface page | Limited: captures the visible area | No, a person prints it | Quick sharing of a view someone is already looking at |
| Template builder apps marketplace and third party |
You, in the vendor's visual editor | Good: most support repeating sections | Yes, via automations or Zapier and Make | Teams who want document templates and no code at all |
| HTML template plus a render API Sitepdf |
You, in ordinary HTML and CSS | Native: tables flow across pages automatically | Yes, from a Run a script automation | Invoices, statements and multi-record reports that must look exact |
The honest read: if your document is one record on one page and never changes shape, Page Designer is already included in your Airtable plan and you should just use it. If you want a document template and refuse to touch HTML, a no-code template builder is a better fit than we are. We earn our place when the layout has to be exact, the data length varies, or the document needs to match a web page your app already renders.
§ 01
Why Page Designer runs out of road
Page Designer is a genuinely useful extension and it is included with every paid Airtable plan. You drag fields onto a canvas at Letter, A4, business card or a custom size, it renders at 109 PPI, and you export by printing to PDF from the browser. For a name badge, a product spec sheet or a one-page client summary, that is the whole job and nothing here beats it on effort.
The wall is fixed positioning. Everything sits at coordinates you set, so nothing can grow. The canonical failure is an invoice: design it around three line items and it looks perfect until a customer orders fifteen, at which point the table runs off the bottom of the canvas or over the totals block. There is no reliable way to flow linked records onto a second page, because the layout was never designed to reflow. Airtable's own documentation also states that batch printing of Page Designer records is not supported, and describes the extension as built for printing individual records, so a fifty-record catalog is working against the tool rather than with it.
Worth stating plainly since a lot of writing on this gets it wrong: Airtable has not announced that Page Designer is going away. What the documentation now says is that they recommend Interface Designer instead. Those are different claims, and the extension still works.
§ 02
The pattern: build the document in HTML, fill it from the record
The alternative treats the document as what it actually is, a page. You write an HTML template with your real CSS, including a table for the line items, and fill it with values from the Airtable record. Because the browser lays it out, the table grows to fit the data, headers repeat on page two, and the totals block stays attached to the end of the table instead of at fixed pixel coordinates.
Everything you know about styling a web page applies. Web fonts, a logo, brand colors, a footer with page numbers, all of it works the way it works in Chrome, because a real Chromium instance is what prints it. If you already have an invoice view in a web app, you can point the renderer at that URL instead and skip templating entirely.
§ 03
Wiring it into an Airtable automation
Airtable's Run a script action can call an external API with fetch, which is the whole integration. Trigger the automation when a record enters a view or a status field flips to Ready, build the HTML from the record's fields, POST it, and put the returned PDF URL into an attachment field. If the workflow already lives in an external automation platform rather than in Airtable itself, the same call works from a webhook step, and the guide to generating PDFs from Zapier, Make and n8n covers the three ways to wire that up.
The limits that matter, from Airtable's documentation as of July 2026: a script gets 512MB of memory and can make 50 fetch requests per run, each with a 30 second timeout. The overall script timeout is currently 120 seconds, which Airtable labels as a temporary increase from 30 seconds for observation and testing, so do not design a job that needs the longer window to survive. Output passed to later automation steps is capped at 6MB.
let table = base.getTable("Invoices");
let record = await input.recordAsync("Invoice", table);
let lines = await base.getTable("Line items").selectRecordsAsync({
fields: ["Description", "Qty", "Amount"]
});
let rows = lines.records.map(r => `<tr>
<td>${r.getCellValueAsString("Description")}</td>
<td>${r.getCellValueAsString("Qty")}</td>
<td>${r.getCellValueAsString("Amount")}</td>
</tr>`).join("");
let html = `<html><head><style>
table { width: 100%; border-collapse: collapse }
thead { display: table-header-group }
tr { break-inside: avoid }
</style></head><body>
<h1>Invoice ${record.getCellValueAsString("Number")}</h1>
<table><thead><tr><th>Item</th><th>Qty</th><th>Amount</th></tr></thead>
<tbody>${rows}</tbody></table>
</body></html>`;
let res = await fetch("https://api.sitepdf.com/v1/render", {
method: "POST",
headers: { "Authorization": "Bearer " + apiKey, "Content-Type": "application/json" },
body: JSON.stringify({ html, format: "Letter", print_background: true, archive: true })
});
let { pdf_url } = await res.json();
await table.updateRecordAsync(record, { "PDF": [{ url: pdf_url }] });Two details in that last line save a lot of debugging. Airtable fetches attachment URLs itself, unauthenticated, so the PDF URL has to be publicly reachable at the moment the automation runs. And if you were thinking of uploading the bytes directly instead, through the uploadAttachment endpoint, note that path has a hard 5MB per file limit, which a report with a few images will exceed. Airtable's documentation points you at the URL method for anything larger, which is what the code above uses.
§ 04
Multi-record reports, the other thing Airtable will not do
The second reason teams end up here is a report that covers many records at once: a monthly summary of every project, a catalog, a statement covering a quarter of transactions. Page Designer is explicitly one record per layout, so this is not a matter of configuring it correctly.
In HTML it is a loop. Query the view, build a section per record, and let the pages fall where they fall. If you want each record to start on a fresh page, that is one CSS declaration, break-before: page. If you want a table of every record with repeating column headers, that is a normal table with a thead. Our guide to controlling page breaks covers the handful of properties that do the work, and scheduled PDF reports covers running the whole thing on a timer rather than on a button.
§ 05
Keep a copy of the invoice you actually sent
One Airtable-specific trap worth knowing: attachment URLs in Airtable are time limited, so a link you stored months ago may not resolve when someone goes looking for it. That matters most for exactly the documents people go back to, invoices and signed quotes.
Add archive=true to the render call and Sitepdf keeps a timestamped, retrievable snapshot of the document as rendered, independent of your base. If a customer disputes what an invoice said in March, you have the March document rather than a regenerated one built from data that has since changed. The website archiving page explains how the record works, and leaving archiving off means we return the PDF and store nothing at all.
curl https://api.sitepdf.com/v1/render \
-H "Authorization: Bearer $SITEPDF_KEY" \
-F url=https://app.example.com/invoices/8842 \
-F format=Letter \
-F print_background=true \
-F archive=true
{
"pdf_url": "https://api.sitepdf.com/v1/documents/doc_at91c.pdf",
"pages": 3,
"rendered_in_ms": 1418,
"archive": {
"id": "arc_at55e",
"captured_at": "2026-07-19T22:31:07Z",
"retrieve_url": "https://api.sitepdf.com/v1/archives/arc_at55e"
}
}
The API is in early access; this is the documented call shape it opens with. Full request and response walkthrough.
§ 06
Questions about this job
How do I export Airtable records to PDF?
Can Airtable generate a PDF automatically?
What are the limits of Airtable Page Designer?
Is Airtable Page Designer being deprecated?
How do I attach a generated PDF back to an Airtable record?
Can Airtable create an invoice PDF with a variable number of line items?
§ Index
More PDF and archiving tools
- Convert HTML to PDF
- Webpage to PDF
- Save webpage as PDF
- URL to PDF API
- Website archiving
- Screenshot API
- React to PDF
- Laravel HTML to PDF
- Vue to PDF
- Next.js PDF generator
- Angular to PDF
- Markdown to PDF API
- Django HTML to PDF
- Blazor HTML to PDF
- Spring Boot HTML to PDF
- Rails HTML to PDF
- PDF generator API
- Document generation API
- Bulk HTML to PDF
- Wayback Machine alternative
- Best HTML to PDF API
- DocRaptor alternative
- Puppeteer alternative
- Wkhtmltopdf alternative
- PDFShift alternative
- Urlbox alternative
- PDFCrowd alternative
- Api2Pdf alternative
- Browserless alternative
- APITemplate alternative
- CraftMyPDF alternative
- PDFMonkey alternative
- dompdf alternative
- Gotenberg alternative
- GrabzIt alternative
- How it works
- Features
- Pricing
§ Early access
Get on the early-access list
The API opens to the list first, in order. Early access locks the planned launch rates for 12 months. No card required, launching soon.