PipedreamHQ / PipedreamHQ/pipedream
[APP] ImaginePDF
- Dominant language
- JavaScript
- Stars
- 11.7k
- Forks
- 5.8k
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 102
Description
**Name of app / service**
ImaginePDF — https://imaginepdf.com
Document generation platform: users design reusable PDF templates (invoices,
receipts, certificates, labels) in a canvas editor, bind variables to them, and
render finished PDFs via API.
**Link to developer documentation**
- API overview: https://docs.imaginepdf.com/api/overview
- Authentication: https://docs.imaginepdf.com/api/authentication
Auth is a single workspace-scoped API key sent as an `X-API-Key` header — no
OAuth, no refresh flow. Keys are prefixed `pc_live_`. `GET /api/v1/me` is a free,
purpose-built key-verification endpoint that returns the workspace identity, so
it's a natural connection test.
Every response uses a `{ status, data, error: { code, message } }` envelope.
**Is lack of support preventing you from moving forward, or do you have a workaround?**
I'm the developer of ImaginePDF. The component is already written against the
Component API and ready to submit — I just need the app record created so
`this.imaginepdf.$auth` resolves and I can open the PR.
The workaround today is a generic HTTP request step, which works but means users
paste raw API keys into workflow config and lose the app-level connection reuse
that makes Pipedream nice.
We already ship integrations for Zapier, n8n, Make, and Claude Code against this
same API surface, so the shape is well-trodden.
**Are there specific actions or triggers you'd like to see for this app? Please let us know here or use the Action and Trigger issue templates to open requests for each!**
Ready to submit now:
- **Generate PDF** — `POST /api/v1/designs/:id/generate`. Takes a design ID
(sourced from a dropdown via `GET /api/v1/designs`) plus a map of variable
values, returns the rendered PDF. Written to export the file to `$.export`
via `syncDir` so downstream steps get real bytes rather than an expiring URL.
On the roadmap once the app exists:
- **Upload Image** — `POST /api/v1/uploads`, needed before image variables are
usable end to end.
- **Find Design** — search action over the designs list.
- **Generate PDF (Batch)** — `POST /api/v1/designs/:id/batch` with polling.
No triggers planned initially — the API has no outbound event webhooks yet, so
anything trigger-shaped would be polling-only.
Contributor guide
Research direction
Start with ImaginePDF's API overview and authentication documentation, then verify the workspace API key against GET /api/v1/me and review the proposed Generate PDF entry point at POST /api/v1/designs/:id/generate. Done means the ImaginePDF app record exists, this.imaginepdf.$auth resolves, and the prepared component can be submitted with PDF bytes exported for downstream steps.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, authentication
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100