Skip to main content
REST API for UK postal mail

Welcome to Intelliprint

Send physical mail (Hybrid Mail via API) with a few lines of code. Intelliprint is a UK postal mail API that makes it easy to send letters and postcards programmatically - perfect for transactional mail, digital mailroom workflows, bulk campaigns, and everything in between.
  • Send letters from your app: Trigger physical post directly from your existing systems and workflows.
  • Replace in-house mailrooms: Move printing, enclosing and posting out of your office and into the cloud.
  • Support hybrid teams: Reach customers who still need paper letters, while keeping everything automated.

Your first 5 minutes

1

Create an account or sign in

Go to the Intelliprint Dashboard and create an account or sign in with your existing details.
2

Create an API key

In the Dashboard, go to your API keys page and create a test API key. Keep it secret and never commit it to source control.
3

Run the Hello World example

Set your API key as an environment variable and run the Quick Example below to create your first test print job in under five minutes.
These docs are for developers who want to integrate Intelliprint into their own systems via API.
If you just want to send mail via the web app, head to intelliprint.net.

Get Started

Choose your path to start sending with Intelliprint:

Quick Example

Send your first letter in minutes:
  1. Get your API key from the Dashboard API keys page.
  2. Set it as INTELLIPRINT_API_KEY in your environment (see examples below).
  3. Install the SDK for your language and run the snippet.
Test mode is free and never sends physical mail. Keep testmode: true until you’re ready to go live.
For how pricing works in production, see Understand Costs.
// npm install intelliprint
// export INTELLIPRINT_API_KEY=ip_test_123...

import Intelliprint from 'intelliprint';

const ip = Intelliprint(process.env.INTELLIPRINT_API_KEY);

const printJob = await ip.prints.create({
  testmode: true,
  content: '<h1>Hello World!</h1><p>Your first letter.</p>',
  recipients: [{
    address: {
      name: 'John Doe',
      line: '123 Main Street, London',
      postcode: 'SW1A 1AA',
      country: 'GB'
    }
  }],
  confirmed: true
});

console.log('Letter created:', printJob.id, printJob.status);
If everything worked, you will receive a JSON response similar to:
{
  "id": "ltr_123456789",
  "status": "waiting_to_print",
  "testmode": true
}
You can use the id to track, retrieve, or cancel this print job later.
If something goes wrong, the API will respond with an error object containing a message, code, and HTTP status.
See Errors & Troubleshooting for common causes and how to fix them.

Key Features

Learn More