What We Shipped Since the Summer
Hey everyone!
We have a small confession to make. Over the last few months, we’ve shipped quite a lot… and told you about very little of it. We found out the hard way: some of you wrote to us asking for features that were already live. That’s on us!
So here’s a quick catch-up on everything that landed since the summer. 🍂
TL;DR
- Rotate your API key without downtime: the previous one keeps working for 2 days.
- Snippet folders to keep your snippets tidy, in the dashboard and through the API.
- Fixed IP addresses on engine v5, so you can allowlist PDFMonkey on your servers.
- Our Zapier app no longer races against Zapier’s 30-second limit.
- Our n8n node reaches 1.0, sets up its own webhook, and is verified by n8n.
- An official Node.js SDK, and an MCP server for Claude, Cursor and friends.
Rotate your API key, without the panic
Changing a secret used to be a stressful moment: generate a new key, then rush to update every app still using the old one before something breaks.
Now, on the API Key page of your dashboard, the Rotate API key button gives you a new key while your previous key keeps working for 2 days. Plenty of time to update your integrations calmly. Done early? Click Revoke previous key now and the old key stops working right away. Otherwise, it expires on its own.
One rotation at a time, though: you can rotate again once the previous key has expired or been revoked. More on how your key is used in API authentication.
Folders for your snippets
Templates have had folders for a while. Snippets now get them too. Create folders from the Snippets page, move snippets into them with the Move action, and search across every folder at once.
The Snippets API is now fully documented as well, including snippet folders and a q[folders] filter to list the snippets of a given folder.
Fixed IP addresses for your resources
When we generate a document, our engine loads everything your template references: images, fonts, stylesheets, and any API your JavaScript calls. Until now, those requests came from cloud IP addresses that kept changing. Not great when your server only accepts known addresses, or when a CDN or firewall decides to block AWS addresses altogether.
Templates on engine v5 now fetch their resources from fixed IP addresses, so you can allowlist PDFMonkey on your servers. The addresses, and what they cover, are listed in Fixed IP addresses.
A word of caution, though: other customers’ documents are rendered from the same addresses, so an IP allowlist isn’t authentication. Keep a token or a signed URL on anything sensitive.
Zapier: no more 30-second race
Zapier gives each action about 30 seconds to finish. With large or complex documents, our Generate Document action could run out of time while waiting for the file.
The latest version of our Zapier app works differently: PDFMonkey lets Zapier know when your document is ready, and the Zap picks up from there, however long the generation takes. Testing the step in the Zap editor now generates a real document from your own template instead of sample data, and invalid JSON gets a readable error message. Everything is in the Zapier guide.
n8n: version 1.0, verified by n8n
Our n8n node reached version 1.0, and n8n has verified it. Search for PDFMonkey in the nodes panel: an instance owner installs it once, and everyone on the instance can use it, on n8n Cloud and self-hosted alike.
The big change: the PDFMonkey Trigger registers its own webhook. Pick a workspace (and optionally a few templates), activate your workflow, done. And when a generation fails, Generate Document now fails the item instead of quietly passing along an item with no file.
Upgrading from an older version? Existing triggers need a workspace before their workflow can be activated again, and any webhook you created by hand should be deleted, or your workflow will run twice. The n8n guide has the details.
For developers: a Node.js SDK and an MCP server
The official pdfmonkey npm package is our Node.js SDK, for JavaScript and TypeScript. It has zero runtime dependencies and runs on Node.js 20+, Bun, Deno, Cloudflare Workers and Vercel Edge. Head over to the Node.js SDK documentation to get started.
If you work with an AI assistant, the PDFMonkey MCP server connects your account to Claude Code, Claude Desktop, Cursor or any other MCP client. Ask it to list your templates, generate a document, or check how many documents you have left this month. It runs on your machine and works with your existing templates; it can’t create or edit them. Setup instructions are in the MCP server documentation.
To let an agent build templates, there’s the CLI 2.0, which manages your whole account from the terminal.
That’s it, for now
Thanks for all your questions: they’re how we noticed we’d been a bit too quiet. We’ll do better at telling you about things as they ship.
If something here is new to you and you’d like a hand setting it up, don’t hesitate to reach out. We’re here for you!
Happy PDFing! 📝
Simon is passionate about development, tech, design and continuous enhancement. CTO and Co-Founder at PDFMonkey he supervises the development and evolution of the platform making sure the product always respects our core values.