Intelliprint API
Send letters and postcards from code. One API, two types, zero print infrastructure.
POST to /prints with the content and recipients you want to mail. Letters or postcards, one recipient or thousands, inline HTML or a PDF file. Printed in our Leeds facility, posted via Royal Mail, same-day dispatch before 3pm.
One call in, tracked mail out
Trigger a letter. Get the delivery data back.
{
"template_id": "tmpl_letter_welcome",
"list_id": "list_9f3a21",
"recipient": {
"name": "{first_name} {last_name}",
"address_line1": "{address_line1}",
"postcode": "{postcode}"
}
}Printed, enclosed, and handed to Royal Mail — same day if sent before 3pm.
{
"event": "print.delivered",
"print_id": "prt_7c1e4b2a",
"carrier": "royal_mail",
"delivered_at": "2026-07-01T09:42:00Z"
}Why build on Intelliprint
An API built for the business it actually runs.
One endpoint, one model
Letters and postcards share one endpoint. Create a print job with text, HTML, or a PDF — send to one recipient or a mailing list of thousands. OpenAPI 3 spec published.
Test mode built in
Use testmode=true on any request to run it through the full pipeline without printing or charging. Validate your integration end-to-end before you send real mail.
Node SDK + OpenAPI
npm install intelliprint. Official Node.js SDK published. Types, request helpers, and retries out of the box. OpenAPI spec for generating clients in other languages.
Same-day dispatch
Print jobs received before 3pm are printed, enveloped, and handed to Royal Mail the same day. ISO 27001 throughout, documents deleted after printing.
What the API does
Five resources. Every sending operation exposed.
Every resource in the API, mapped to what it does.
Print jobs
POST /prints to create a letter or postcard print job. Set type to letter or postcard, pass content (HTML/text), a PDF file, or a template ID. Confirm to submit for printing.
Recipients & mailing lists
Pass one or many recipients inline, or reference a saved mailing list. Addresses verified against Royal Mail's PAF before anything goes to print.
Backgrounds (letterheads)
Save reusable letterhead backgrounds per account. Applied at print time so you don't re-upload branding with every letter.
Postage & printing control
Configure postage class (1st/2nd Class, Signed, Special Delivery), envelope size (C5/C4/C4+/A4 box), and scheduled mailing date per print job.
Metadata on everything
Attach arbitrary JSON to any print job via the metadata field. Perfect for carrying your own request IDs, user references, or downstream reconciliation data.
Draft or one-shot flow
Create a draft print job, preview it, make edits, and confirm when ready. Or skip straight to confirmed for automated workflows. Lifecycle is your choice.
Webhooks
Status events are delivered through Svix — the same webhook infrastructure used by Clerk, Resend, and many other developer platforms. That gives you signed webhooks, retry logic, event replay, and a full delivery log out of the box.
Subscribe to print job lifecycle events — when a job is confirmed, when it's dispatched by Royal Mail, when it's delivered, when it's returned — to close the loop in your own systems. Trigger CRM updates, fire follow-up emails, reconcile accounts, or surface delivery status to your own users. Full event catalogue and payloads live in the API docs.
Signing secrets are per-endpoint. Rotate them any time from the dashboard. Failed deliveries are retried with exponential backoff; every attempt is logged and inspectable.
Not the only way in
Other routes into the same pipeline.
The API is one of several ways into the same production pipeline. Your team picks the route that matches their tooling — all produce the same output, tracked in the same history, billed at the same rates.
Dashboard
Web-based, no install. Upload a document, add recipients, preview, and send. The fastest way to get the first letter moving — and the most-used route long-term for many teams.
Print driver
Install once on Windows, then 'print to Intelliprint' from Word, Excel, Outlook, Sage, or any application with a print menu. For non-technical teams with existing tools.
Hotfolders
Drop PDFs into a watched folder on Windows; we pick them up automatically. Good for legacy systems that export documents but can't call APIs.
Zapier
Trigger letters from 8,000+ Zapier-connected apps. No code required. Postcards are API-only today.
n8n
Official community node (n8n-nodes-intelliprint) for self-hosted and cloud n8n workflows. Supports letters and postcards via direct API calls.
Tool guides
Tool-specific guides for Xero, Salesforce, HubSpot, Shopify, and Klaviyo. Each guide covers realistic triggers, limitations, and the exact API or webhook pattern that works today.
API FAQ
Common developer questions.
How do I authenticate?
Bearer token in the Authorization header. Generate API keys from your account dashboard — separate keys per environment (test/live) if you want clean isolation. Keys can be rotated any time without downtime.
Is there a sandbox?
Set testmode=true on any /prints request. The request runs through the full pipeline — validation, address verification, pricing calculation, webhook dispatch — but no physical mail is printed and no charge is raised. Switch it off when you're ready to send real mail.
Do you publish SDKs?
Yes. Official Node.js SDK on npm — install with npm install intelliprint. For other languages, the full OpenAPI 3.1 spec is published: generate a typed client in Python, PHP, Ruby, Go, Java, TypeScript, or anywhere else with an OpenAPI generator. If your team lives in a specific stack and the SDK gap is painful, let us know.
Why multipart/form-data and not JSON?
POST /prints accepts multipart/form-data because most real use cases involve uploading a PDF. If you're sending inline HTML or text content with no file attachment, it's still multipart/form-data — just without the file field. The Node SDK and any OpenAPI-generated client handles this for you.
How do you handle versioning?
URL path versioning (currently /v1/). Breaking changes ship in a new version with a deprecation window. Non-breaking additions — new fields, new endpoints, new enum values — ship in place. Changes are documented in the changelog and, where relevant, announced to API account owners.
Can I send thousands of letters in one call?
Yes. One /prints request can carry thousands of recipients inline, or reference a mailing list you've previously uploaded. Same endpoint, same pattern — the API doesn't charge you extra for making fewer calls. Plan a large burst send? Mention it to us in advance so we can confirm our production queue is ready.
Build now
Read the docs. Send your first letter.
Sign up for an account, grab your test API keys, and have a letter moving through our pipeline in minutes. Docs at intelliprint.net/reference.