Browse API reference
Prints
Create a print job
To quickly start sending, use the content field to provide the text/HTML content for your mail item and provide the recipients you want to send your mail item to.
For advanced use cases, you can start sending pre-designed templates instead with the template field to recipients or a mailing_list.
For cases where you generate the entire mail item on your own, you can just provide us the file with pre-inserted addresses or the file along with recipients or a mailing_list.
Download file examples: Single letter example or Multi-letter example (Split by phrase "Dear")
Request body
multipart/form-datatypeThe type of print job to create.
letterpostcard"letter""letter"testmodeWhether to run the print job in test mode. Test mode print jobs are not charged and are not sent.
falsetrueconfirmedWhether to confirm the print job. Once confirmed, the print job is submitted for printing and cannot be updated.
falsetruecontentSome text or HTML content to create the print job from. If you are using a template or providing a file, this field is not required.
"Dear J. Doe,
Welcome to the Acme family!"templateThe ID of a pre-designed template to use for the print job. If you are providing content or a file, this field is not required.
"tmpl_eg"fileOption 1Direct file upload
A file to generate the print job from.
You can either provide this file directly as a binary file, as a remote URL, as a Base64 encoded data object, or as a pair of images for postcards. Please select an approach above.
The accepted file formats are PDF, Word, RTF, JPG and PNG.
A file to generate the print job from.
You can either provide this file directly as a binary file, as a remote URL, as a Base64 encoded data object, or as a pair of images for postcards. Please select an approach above.
The accepted file formats are PDF, Word, RTF, JPG and PNG.
Option 2Base64 encoded file data
A file to generate the print job from.
The accepted file formats are PDF, Word, RTF, JPG and PNG.
contentstringrequiredThe base64 encoded content of the file to generate the print job from.
"BASE64_ENCODED_PDF"namestringrequiredThe name of the file to generate the print job from.
"Filename.pdf"Option 3File on a remote URL
An object with the url property containing the URL of the file to generate the print job from.
The accepted file formats are PDF, Word, RTF, JPG and PNG.
urlstring<uri>requiredThe URL of the file to generate the print job from.
"https://example.com/file.pdf"Option 4Postcard front and back images direct upload
A file to generate the print job from.
Especially for postcards, instead of one document with two pages, two separate images can be provided depicting the front and back sides of the postcards.
The accepted file formats are JPG and PNG.
front_imagestring<binary>requiredThe front image of the postcard to generate the print job from.
"@path/to/front_image.jpg"back_imagestring<binary>requiredThe back image of the postcard to generate the print job from.
"@path/to/back_image.jpg"Option 5Postcard front and back images on a remote URL
A file to generate the print job from.
Especially for postcards, instead of one document with two pages, two separate images can be provided depicting the front and back sides of the postcards.
The accepted file formats are JPG and PNG.
front_imageobjectrequiredAn object with the url property containing the URL of the front image of the postcard.
urlstring<uri>requiredThe URL of the front image of the postcard to generate the print job from.
The accepted file formats are JPG and PNG.
"https://example.com/front_image.jpg"back_imageobjectrequiredAn object with the url property containing the URL of the back image of the postcard.
urlstring<uri>requiredThe URL of the back image of the postcard to generate the print job from.
The accepted file formats are JPG and PNG.
"https://example.com/back_image.jpg"referenceA user-friendly description for the print job. This value is displayed in the dashboard. You can use this value to search for this print job later.
"My first print job"mailing_listThe ID of a mailing list to send this print job to. One copy of your mail item will be sent to each recipient in the mailing list. If you are providing recipients instead, this field is not required.
"mal_eg"recipientsA list of recipients to send this print job to. One copy of your mail item will be sent to each recipient in the list. If you are providing a mailing list instead, this field is not required.
object.addressobjectnamestringThe name of the recipient.
"John Doe"linestringrequiredThe complete address line for the recipient.
"123 Main St, Anytown, Anyplace"postcodestringThe postal code of the address.
"AB1 2CD"countrystringThe country code of the address. This is an ISO 3166-1 alpha-2 country code. Example: GB.
"GB""GB"variablesobjectAn arbitrary object of the dynamic fields for this recipient. Dynamic fields are used to tailor templates uniquely for each recipient.
splittingSplitting settings for the print job. Used when a single file contains multiple letters with pre-inserted addresses. Splitting is only available for letters.
methodstringThe method to use to split the print job into mailings.
nonesplit_on_phrasesplit_on_pagesmailing_list"none"phrasestringThe phrase to search for on each page to split the print job into multiple letters. Only used when method is split_on_phrase. The phrase should appear once on the first page of each letter. Tip: Use white text to hide the phrase from recipients.
"Dear"pagesintegerThe number of pages each letter in a split print job should have. Only used if method is split_on_pages.
1printingPrinting settings for the print job, including quality, color, single- or double-sided printing, and finishing options.
double_sidedstringWhether this print job should be printed on both sides of the paper.
If you choose mixed, you need to specify the page indexes to print double sided in the double_sided_specific_pages property.
This is only available for letters.
noyesmixed"no"double_sided_specific_pagesarray of integerThe page indexes to print double-sided. Only used if double_sided is mixed. This is only available for letters. Page indexes are 0-indexed (first page is index 0).
integer.premium_qualitybooleanWhether this print job should be printed in premium quality. Premium quality is optional for letters, while postcards are always printed in premium quality due to their glossy finish.
falsetrueblack_and_whitebooleanWhether this print job should be printed in black and white instead of color. This is only available for letters.
falsetruematt_finishbooleanWhether this print job should be printed with a matt finish. This is only available for postcards as letters are always printed on matt paper.
falsetruepostagePostage settings for the print job, including the postage service, ideal envelope (or postcard size), and mailing date.
servicestringThe postage service to use for the print job. Postcards can currently only be sent with uk_second_class or uk_first_class services.
uk_second_classuk_second_class_signed_foruk_first_classuk_first_class_signed_foruk_special_delivery_9amuk_special_deliveryinternationaltracked_24tracked_48"uk_second_class"ideal_envelopestringThe ideal envelope size for letters or postcard size for postcards.
Available values are c4, c5, c4_plus, a4_box for letters, and postcard_a6, postcard_a5 or postcard_a5_enveloped for postcards. Default is c5 for letters and postcard_a6 for postcards.
The API may upgrade a letter to a larger envelope if the content is too large for the chosen envelope size.
c4c5c4_plusa4_boxpostcard_a6postcard_a5postcard_a5_enveloped"c5"mail_dateinteger<int64>The mailing date for the print job. This is when we will print and ship your mailing, not when it will arrive at the recipient's address. This is a UNIX timestamp (day-adjusted). Use this field to schedule mailings for a future date.
1761955200backgroundBackground settings for the print job. Specify which backgrounds to apply to different pages. This is only available for letters.
first_pagestringThe ID of the background to apply to the first page of the print job. Typically a letterhead or logo.
"bg_eg"other_pagesstringThe ID of the background to apply to the other pages of the print job. Typically a continuation design or logo.
"bg_eg"confidentialWhether this print job should be considered confidential. Confidential print jobs cannot be viewed by other users in the dashboard.
falsetrueextra_documentsExtra documents (or additional documents) can be sent alongside letters in the print job. These can include standard terms and conditions, brochures, forms, or other supplementary materials.
A copy of all extra documents is sent with each letter in the print job.
The order they appear in the array is the order they will follow during printing.
Acceptable formats are PDF, RTF, and Word documents.
Extra documents are only available for letters, as postcards have a fixed size.
object.documentone ofrequiredOption 1Direct file upload
The extra document file to include in the print job.
You can either provide this file directly as a binary file or as a Base64 encoded data object. Please select an approach above.
The accepted file formats are PDF, RTF and Word documents.
The extra document file to include in the print job.
You can either provide this file directly as a binary file or as a Base64 encoded data object. Please select an approach above.
The accepted file formats are PDF, RTF and Word documents.
Option 2Base64 encoded file data
The base64 encoded extra document data to be included in the print job.
The accepted file formats are PDF, RTF and Word documents.
contentstringrequiredThe Base64 encoded content of the extra document to include in the print job.
"BASE64_ENCODED_PDF"namestringrequiredThe name of the extra document to include in the print job.
"Filename.pdf"apply_backgroundbooleanWhether to apply the background.other_pages to the extra document. Default is false.
falsetrueremove_lettersUsed alongside the splitting settings to remove specific letters from the print job.
with_phrasestringIf this phrase is present in a letter, it will be removed from the print job. This is only available for letters.
"EMAIL ONLY"nudgeFor print jobs with pre-inserted addresses, nudging helps position the address within the envelope window. Nudging is only available for letters.
xnumberThe horizontal distance to nudge the address window to the right in millimeters.
2ynumberThe vertical distance to nudge the address window down in millimeters.
-1confirmation_emailWhether to send a confirmation email to the account owner once the print job is confirmed. By default, no confirmation email is sent.
falsefalseaddress_windowThe position of the address window on the page. This is only available for letters.
leftright"left"insertThe ID of an insert to use for the print job. Inserts are a value-added service - We can keep stock of and insert any pre-printed materials provided ahead of time into envelopes for you. Please contact us at hello@intelliprint.net to enable this service for your account.
"ins_eg"metadataThis is an arbitrary object that can be used to store any additional data alongside your print job. This is not used by Intelliprint and is only for your own use.
Responses
Sample JSON for every response shape is in the right rail. Expand a row below to see every field this endpoint can return.
200Successful responseapplication/json
idA globally unique identifier for the print job.
"print_eg"objectThe object type. Always print.
printtestmodeWhether the print job is in test mode. When enabled, your account is not charged and mail is not sent.
falsetrueaccountThe Intelliprint account ID that the print job belongs to.
"acc_eg"userThe user who initiated the print job. This value is null for API-initiated print jobs.
teamThe team associated with the print job. This value is null for API-initiated print jobs.
referenceA user-friendly description of this print job. This value is displayed in the dashboard for easier identification.
"Marketing pamphlet for J. Doe"confirmedWhether the print job has been confirmed. Once confirmed, the print job is submitted for printing and cannot be updated. You can confirm a print job in the dashboard or by setting the confirmed parameter via the API.
falsetruetypeThe type of mailings present in the print job.
letterpostcard"letter"pagesThe total number of pages across all mailings in the print job. This may be the same as or more than sheets if double-sided printing is used.
10sheetsThe total number of physical sheets across all mailings in the print job. Sheets are the physical paper that pages are printed on.
5fileDetails about the file uploaded to create the print job.
namestringThe name of the file uploaded when creating the print job. This also serves as the default reference if one is not provided.
"eg_file.pdf"pagesintegerThe number of pages in the uploaded file.
10sizeinteger<int64>The size of the file uploaded in bytes.
1024000splittingSplitting settings for the print job. Used when a single file contains multiple letters with pre-inserted addresses. Splitting is only available for letters.
methodstringThe method used to split the print job into mailings.
nonesplit_on_phrasesplit_on_pagesmailing_list"none"phrasestringThe phrase to search for on each page to split the print job into multiple letters. Only used when method is split_on_phrase. The phrase should appear once on the first page of each letter. Tip: Use white text to hide the phrase from recipients.
"Dear"pagesintegerThe number of pages each letter in a split print job should have. Only used if method is split_on_pages.
1printingPrinting settings for the print job, including quality, color, single or double-sided printing, and finishing options. Single-sided printing is the default.
double_sidedstringWhether this print job should be printed on both sides of the paper.
If you choose mixed, you need to specify the page indexes to print double sided in the double_sided_specific_pages property.
This is only available for letters.
noyesmixed"no"double_sided_specific_pagesarray of integerThe page indexes to print double-sided. Only used if double_sided is mixed. This is only available for letters. Page indexes are 0-indexed (first page is index 0).
integer.premium_qualitybooleanWhether this print job should be printed in premium quality. Premium quality is optional for letters, while postcards are always printed in premium quality due to their glossy finish.
falsetrueblack_and_whitebooleanWhether this print job should be printed in black and white instead of color. This is only available for letters.
falsetruematt_finishbooleanWhether this print job should be printed with a matt finish. This is only available for postcards as letters are always printed on matt paper.
falsetruepostagePostage settings for the print job, including the postage service, ideal envelope (or postcard size), and mailing date.
servicestringThe postage service to use for the print job. Postcards can currently only be sent with uk_second_class or uk_first_class services.
uk_second_classuk_second_class_signed_foruk_first_classuk_first_class_signed_foruk_special_delivery_9amuk_special_deliveryinternationaltracked_24tracked_48"uk_second_class"ideal_envelopestringThe ideal envelope size for letters or postcard size for postcards.
Available values are c4, c5, c4_plus, a4_box for letters, and postcard_a6, postcard_a5 or postcard_a5_enveloped for postcards. Default is c5 for letters and postcard_a6 for postcards.
The API may upgrade a letter to a larger envelope if the content is too large for the chosen envelope size.
c4c5c4_plusa4_boxpostcard_a6postcard_a5postcard_a5_enveloped"c5"mail_dateinteger<int64>The mailing date for the print job. This is when we will print and ship your mailing, not when it will arrive at the recipient's address. This is a UNIX timestamp (day-adjusted). Use this field to schedule mailings for a future date.
1761955200backgroundBackground settings for the print job. Specify which backgrounds to apply to different pages. This is only available for letters.
first_pagestringThe ID of the background to apply to the first page of the print job. Typically a letterhead or logo.
"bg_eg"other_pagesstringThe ID of the background to apply to the other pages of the print job. Typically a continuation design or logo.
"bg_eg"confidentialWhether this print job should be considered confidential. Confidential print jobs cannot be viewed by other users in the dashboard.
falsetrueextra_documentsExtra documents (or additional documents) can be sent alongside letters in the print job. These can include standard terms and conditions, brochures, forms, or other supplementary materials.
A copy of all extra documents is sent with each letter in the print job.
Extra documents are only available for letters, as postcards have a fixed size.
object.idstringA globally unique identifier for the extra document uploaded.
"extra_eg"namestringThe filename of the uploaded document.
"eg_file.pdf"apply_backgroundbooleanWhether to apply the background.other_pages to the extra document. Default is false.
falsetruepagesintegerThe number of pages in the extra document.
10sizeinteger<int64>The size of the extra document in bytes.
1024000remove_lettersUsed alongside the splitting settings to remove specific letters from the print job.
with_phrasestringIf this phrase is present in a letter, it will be removed from the print job. This is only available for letters.
"EMAIL ONLY"nudgeFor print jobs with pre-inserted addresses, nudging helps position the address within the envelope window. Nudging is only available for letters.
xnumberThe horizontal distance to nudge the address window to the right in millimeters.
2ynumberThe vertical distance to nudge the address window down in millimeters.
-1lettersAn array of letters or postcards present in the print job.
object.idstringA globally unique identifier for this mail item.
"letter_eg"objectstringThe object type. Always letter for both letters and postcards.
letterstatusstringThe status of the mail item, representing its lifecycle from creation to dispatch.
draftwaiting_to_printprintingenclosingshippingsentcancelledreturnedfailed_wrong_address"draft"postage_servicestringThe postage service used to ship the mail item.
uk_second_classuk_second_class_signed_foruk_first_classuk_first_class_signed_foruk_special_delivery_9amuk_special_deliveryinternationaltracked_24tracked_48"uk_second_class"tracking_numberstringThe Royal Mail tracking number of the mail item.
This is only available for tracked shipping services, uk_second_class_signed_for, uk_first_class_signed_for, uk_special_delivery_9am, uk_special_delivery, tracked_24 or tracked_48.
"1234567890"shipped_dateinteger<int64>The UNIX timestamp of when the mail item was shipped out. We use UNIX timestamps to mitigate any timezone-based issues.
1761955200returnedobjectDetails concerning why a mail item was returned.
This object is only present if the mail item has a status of returned.
acknowledgedbooleanWhether the mail item's return has been acknowledged on the dashboard.
truedateinteger<int64>The UNIX timestamp of when the mail item was returned to us. We use UNIX timestamps to mitigate any timezone-based issues.
1761955200reasonstringA free-form reason why the mail item was returned.
"Not at this address"pagesintegerThe number of pages in the mail item. Pages might be the same as, or more than sheets if double-sided printing is chosen.
10sheetsintegerThe number of sheets in the mail item. Sheets are the physical paper sheets that pages are printed on.
5envelopestringThe exact envelope a letter will be enclosed in or the postcard size.
c4c5c4_plusa4_boxpostcard_a6postcard_a5postcard_a5_enveloped"c5"address_windowstringThe position of the address window on the envelope. This is only available for letters.
leftright"left"add_address_sheetbooleanWhether the address is printed on a separate page followed by your letter (If true) or if the address is printed on the same page as your letter (If false).
falsefalseaddressobjectThe address the mail item is being sent to.
namestringThe name of the recipient.
"John Doe"linestringThe address line.
"123 Main St, Anytown, Anyplace"postcodestringThe postcode of the address.
"AB1 2CD"countrystringThe country of the address.
"GB""GB"costobjectThe pricing details for the individual mail item.
amountinteger<int64>This is the basic pre-tax cost of the individual mail item.
All costs amounts returned by the API need to be divided by 10^8 (100000000) to get the real GBP price. We factor in 8 decimal places for sub-penny precision of large bulk orders.
100000000taxinteger<int64>This is the tax amount applicable to the basic cost of the individual mail item.
We only charge VAT for our customers in the United Kingdom. Customers in other countries will see a tax amount of 0.
All costs amounts returned by the API need to be divided by 10^8 (100000000) to get the real GBP price. We factor in 8 decimal places for sub-penny precision of large bulk orders.
20000000after_taxinteger<int64>The total cost of the individual mail item after tax.
All costs amounts returned by the API need to be divided by 10^8 (100000000) to get the real GBP price. We factor in 8 decimal places for sub-penny precision of large bulk orders.
120000000currencystringThis is the 3-letter currency code of the cost. This is an ISO 4217 currency code. Example: GBP. We currently only present costs in GBP.
"GBP""GBP"weightnumberThe calculated weight of the mail item in grams.
28print_streamstringThis is primarily an internal field which describes the printer tray the mail item will be sent to for printing and enclosing.
"uk_second_class-c5-standard"pdf_statusstringThis field describes whether the underlying PDF for a mail item has been deleted or not.
builtdeleted"built"pdfstring<uri>A URL to a PDF preview of the mail item. This is a signed URL that will expire after 1 hour. This will be null if the pdf_status is deleted.
"https://cdn.storage.com/intelliprint/letters/letter_ID.pdf"passthrough_exportedbooleanThis is primarily an internal field. For certain shipping services, we register mail items with them and keep track of it in this field.
falsetruecostThe pricing details for the entire print job.
amountinteger<int64>This is the basic pre-tax cost of the print job.
All costs amounts returned by the API need to be divided by 10^8 (100000000) to get the real GBP price. We factor in 8 decimal places for sub-penny precision of large bulk orders.
100000000taxinteger<int64>This is the tax amount applicable to the basic cost of the print job.
We only charge VAT for our customers in the United Kingdom. Customers in other countries will see a tax amount of 0.
All costs amounts returned by the API need to be divided by 10^8 (100000000) to get the real GBP price. We factor in 8 decimal places for sub-penny precision of large bulk orders.
20000000after_taxinteger<int64>The total cost of the print job after tax. This is the amount charged to you for submitting this print job.
All costs amounts returned by the API need to be divided by 10^8 (100000000) to get the real GBP price. We factor in 8 decimal places for sub-penny precision of large bulk orders.
120000000currencystringThis is the 3-letter currency code of the cost. This is an ISO 4217 currency code. Example: GBP. We currently only present costs in GBP.
"GBP""GBP"confirmation_emailWhether a confirmation email should be sent to the account owner once the print job is confirmed.
falsetrueinsertThis property is not present in the response if an insert ID is not provided while creating or updating a print job. Inserts are a value-added service - We can keep stock of and insert any pre-printed materials provided ahead of time into envelopes for you. Please contact us at hello@intelliprint.net to enable this service for your account.
"ins_eg"templateThe ID of the template used to create this print job.
"tmpl_eg"mailing_listThe ID of the mailing list used to create this print job.
"mal_eg"address_windowThe position of the address window on the envelope. This is only available for letters.
leftright"left"confirmed_atThe UNIX timestamp of when the print job was confirmed. We use UNIX timestamps to mitigate any timezone-based issues.
1761955200createdThe UNIX timestamp of when the print job was created. We use UNIX timestamps to mitigate any timezone-based issues.
1761955200metadataThis is an arbitrary object that can be used to store any additional data alongside your print job. This is not used by Intelliprint and is only for your own use.
400Example error responseapplication/json
errormessagestringA human-readable message describing the error. You can display this to your users to help them understand what went wrong.
"Received unknown parameter: testmood (Did you mean testmode?)"typestringThe general category of the error.
invalid_request_errorauthentication_errorpayment_errorrate_limitedinternal_error"invalid_request_error"codestringA unique code for the specific error that occurred.
parameter_invalidparameter_missingparameter_unknownbody_too_largebody_incorrect_formatno_api_keyinvalid_api_keylogged_outforbiddenpayment_errornot_foundrate_limitedrefusedinternal_error"parameter_unknown"paramstringThe parameter that caused the error, if applicable.
"testmood"