Every template here is reachable through the API, so you can generate the same document from your own data.
cURL
Python
Node.js
curl -X POST https://pdfgeny.com/api/v1/render \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"template":"project-proposal","data":{"company": "Northwind Studio Ltd", "company_details": "12 Bridge Street\nManchester M1 2AB", "client": "Acme Corporation", "date": "31 August 2026", "title": "Marketing website redesign", "problem": "The current site converts 0.8% of visitors; it loads in 6 s on mobile and the pricing page is three clicks deep."}}' \
--output project-proposal.pdf
import requests
pdf = requests.post(
"https://pdfgeny.com/api/v1/render",
headers={"Authorization": f"Bearer {KEY}"},
json={"template": "project-proposal", "data": {'company': 'Northwind Studio Ltd',
'company_details': '12 Bridge Street\nManchester M1 2AB',
'client': 'Acme Corporation',
'date': '31 August 2026',
'title': 'Marketing website redesign',
'problem': 'The current site converts 0.8% of visitors; it '
'loads in 6 s on mobile and the pricing page is '
'three clicks deep.'}},
).content
open("project-proposal.pdf", "wb").write(pdf)
const res = await fetch("https://pdfgeny.com/api/v1/render", {
method: "POST",
headers: { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ template: "project-proposal", data: {"company": "Northwind Studio Ltd", "company_details": "12 Bridge Street\nManchester M1 2AB", "client": "Acme Corporation", "date": "31 August 2026", "title": "Marketing website redesign", "problem": "The current site converts 0.8% of visitors; it loads in 6 s on mobile and the pricing page is three clicks deep."} }),
});
await writeFile("project-proposal.pdf", Buffer.from(await res.arrayBuffer()));