FAQ
Frequently asked questions
The questions that come up before signing up. Operational how-to lives in the help centre; endpoint detail is in the API reference.
How do I get an API key?
Create an account at /account/signup/ and confirm the email we send. The key appears in your dashboard the moment the address is verified. It is shown once — copy it then, because we store only a hash and cannot show it again. If you lose it, revoke that key and create another.
What is the fastest way to see it work?
One request, no SDK:
If you would rather not sign up first, the HTML to PDF converter runs the same engine in the browser.
curl -X POST https://pdfgeny.com/api/v1/render -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d '{"html":"<h1>Hello</h1>"}' --output hello.pdfIf you would rather not sign up first, the HTML to PDF converter runs the same engine in the browser.
Can I have more than one key?
Yes, up to ten active keys per account. Give each environment its own key — production, staging, that script on someone's laptop — so you can revoke one without breaking the others.
How do I revoke a key?
In the dashboard, next to the key. Revocation is immediate: requests with that key start returning
401 invalid_api_key within a second.My PDF is missing background colours.
Set
"print_background": true. It is on by default in our API, but off by default in raw Puppeteer and in the browser's print dialog, which is where most templates are first tested.The page is empty or half-rendered.
Rendering started before JavaScript finished. Pass
wait_for with a CSS selector that only exists once content is drawn, or a millisecond value up to 15000. Charts and dashboards almost always need this.How do I use a template from the API?
Send its id and your data:
{"template":"invoice","data":{"client":"Acme","total":"149.00"}}. Field names come from GET /api/v1/templates, and any field you omit uses the template's example value.Can I change a template's design?
The built-in templates are fixed, but you can send your own HTML to the same endpoint and get identical treatment. Most people start from a template's output, adjust the CSS, and switch to
html.What counts as a document?
One successful render is one document, regardless of page count. Failed renders are never counted.
What happens when I hit my quota?
Requests return
429 quota_exceeded with the plan and limit in the message, until the counter resets on the first of the month. If you enable overage, extra documents are billed at your plan's rate instead.What do the error codes mean?
Every error has the same shape:
{"error":{"code":"…","message":"…"}}. invalid_api_key — revoked, or email not confirmed. quota_exceeded — monthly limit. rate_limited — too many per second. too_many_concurrent — too many at once. render_failed — the markup or URL did not render; the message says why. payload_too_large — HTML above 2 MB.What are the rate limits?
Per key: Free 1 request/second and 1 concurrent render; Starter 5 and 3; Growth 10 and 5; Scale 20 and 10. Queued jobs are exempt from the concurrency limit — that is what they are for.
Is PDFGeny suitable for high volume?
Yes. The Scale plan covers 50,000 documents a month, and batches of up to 100 documents per request keep the overhead low. We have measured 8 requests per second sustained with p95 latency of 0.92 seconds. Above that, write to us — the architecture scales by adding render workers.
Where are documents processed and stored?
Processing happens on servers in Europe. Documents you ask us to store live seven days and are then deleted. HTML you send is processed in memory and not retained.
Do you train models on my documents?
No. We do not read, mine or train on customer content. The only time a human looks at a document is when you ask us to investigate a rendering problem.
What happens if PDFGeny goes away?
Your templates are HTML — they work with any renderer. The migration path off us is the same one described for moving off wkhtmltopdf, in reverse. We think that is a fair thing for a vendor to say out loud.
Can I self-host it?
Not today. If your documents cannot leave your network, running Playwright yourself is the honest answer, and this guide covers the parts that bite.
Something not answered? Ask us directly — questions asked twice end up on this page.