PDF generation API
The PDF generation API for designed documents
Turn a template into a multi-page PDF with one API call: menus, flyers, price lists, one-pagers and LinkedIn documents, with your fonts, images and layout intact.
Free plan with 100 credits a month · no card required
-
Multi-page in one file
Up to 20 pages per render, merged into a single PDF.
-
Different text on every page
Fill each page separately with page-scoped fields like page2@title.
-
Your design, exactly
Built in the same editor as your images, with your fonts and brand assets.
-
Posts as a LinkedIn document
Send the PDF straight to LinkedIn as a swipeable document carousel.
For developers
One API call for a multi-page PDF
Copy a working request from the editor, or start from these.
curl https://app.jamframe.com/api/v1/render \
-H "Authorization: Bearer $JAMFRAME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "clx8m2k3p0001abcd1234efgh",
"modifications": {
"title": "Autumn menu",
"page2@special": "Pumpkin soup · $9",
"page3@special": "Apple crumble · $7"
},
"response": {
"format": "pdf"
}
}' import { JamFrame } from "jamframe";
const client = new JamFrame(); // reads JAMFRAME_API_KEY
const { data } = await client.render({
templateId: "clx8m2k3p0001abcd1234efgh",
modifications: {
title: "Autumn menu",
"page2@special": "Pumpkin soup · $9",
"page3@special": "Apple crumble · $7"
},
response: {
format: "pdf"
},
});
console.log(data.content); // the file URL from jamframe import Client
client = Client() # reads JAMFRAME_API_KEY
result = client.render(
"clx8m2k3p0001abcd1234efgh",
{
"title": "Autumn menu",
"page2@special": "Pumpkin soup · $9",
"page3@special": "Apple crumble · $7",
},
response={"format": "pdf"},
)
print(result["data"]["content"]) # the file URL {
"data": {
"content": "https://…/render.pdf",
"type": "url",
"format": "pdf",
"pages": [
1,
2,
3
],
"credits": 3,
"renderId": "rnd_8f2c41"
}
} Examples
One template, every version you need
Design pages like you design posts
Lay out each page in the editor with A4 and US Letter presets, portrait or landscape. What you see is what the PDF looks like.
- Print presets for A4 and US Letter
- Text, images, shapes and QR codes
- Shrink-to-fit text for long values
PDFs from a spreadsheet
Point a workflow at a Google Sheet or Airtable and make a PDF per row. Upload them to Google Drive or write each link back to the sheet.
- Scheduled or on new rows
- Filter, sort and limit rows
- Deliver to Drive, Slack or a webhook
Let anyone fill it in
Share a template form: a simple page where a teammate or customer types their details, sees a live preview and downloads the PDF.
- No account needed to fill it in
- Your logo and colours on the form
- Embed it on your own site
Everything included
Everything you get
In the editor
- A4 and US Letter presets
- Up to 20 pages per template
- Brand fonts and colours
- Template forms for self-serve PDFs
In the API
- One merged PDF per render
- Pick pages with includePages
- Page-scoped fields (page2@title)
- Async jobs and webhooks
With AI agents
- Claude and ChatGPT connect through the MCP server
- render_template fills any template from a chat
- The design agent drafts new templates
- publish_post schedules the result
Use cases
Who uses it for what
-
Restaurants and cafés
Daily specials, menus and promos.
Learn more -
Real estate
Listing graphics, flyers and videos per property.
Learn more -
Events and webinars
Speaker cards, countdowns and recap videos.
Learn more -
Creators and LinkedIn
Carousels, quote cards and thumbnails.
Learn more
Questions
PDF generation API: common questions
How many pages can a PDF have?
Can I render only some pages?
Can each page have different text?
Can I generate PDFs without code?
More ways to use JamFrame
-
Image generation API
On-brand images from your templates, by API.
Learn more -
Banner generation API
Web banners and ads in every size at once.
Learn more -
Video generation API
Short MP4s with animation, music and subtitles.
Learn more
Make your first render in minutes.
Pick a template from the library, connect a source and make your first post in minutes.