Print Mail
ModelsExpand Collapse
ContactCreateWithCompanyName = object { addressLine1, companyName, countryCode, 13 more }
ContactCreateWithFirstName = object { addressLine1, countryCode, firstName, 13 more }
Print MailBank Accounts
Create Bank Account
List Bank Accounts
Get Bank Account
Delete Bank Account
ModelsExpand Collapse
BankAccount = object { id, accountNumber, bankCountryCode, 15 more }
Countries typically have different bank account formats and standards. These are the countries
which PostGrid's bank accounts API supports.
Countries typically have different bank account formats and standards. These are the countries which PostGrid's bank accounts API supports.
An optional string describing this resource. Will be visible in the API and the dashboard.
A signed link to the signature image uploaded when this bank account was created. This is omitted if signatureText is present.
Print MailCampaigns
The campaigns API enables you to send out large volumes of fully personalized mail to a mailing list.
Create Campaign
List Campaigns
Get Campaign
Update Campaign
Delete Campaign
Send Campaign
ModelsExpand Collapse
Campaign = object { id, createdAt, createdCount, 15 more } Represents a bulk mail campaign.
Represents a bulk mail campaign.
status: "drafting" or "changes_required" or "creating_orders" or 4 moreStatus of the campaign lifecycle.
Status of the campaign lifecycle.
The ID of the default sender contact to use for orders if not specified per recipient.
An optional string describing this resource. Will be visible in the API and the dashboard.
errors: optional array of object { message, type } A list of processing errors encountered, if any. Present when status is 'changes_required'.
A list of processing errors encountered, if any. Present when status is 'changes_required'.
A temporary URL to preview the first rendered order, available once the campaign status is 'draft' or later.
The ID of the postcard profile used for this campaign, if applicable.
A temporary URL to download the processing report, available once the campaign is in the ready status.
Print MailCheques
Create Cheque
List Cheques
Get Cheque
Cancel Cheque
Get Cheque Preview
Retrieve Cheque Deposit-Ready PDF (Digital Only)
ModelsExpand Collapse
Cheque = object { id, amount, bankAccount, 27 more }
currencyCode: "USD" or "CAD"The currency code of the cheque. This can be USD even if drawing from a Canadian bank account and vice versa. Defaults to the currency of the bank account country if not otherwise specified.
The currency code of the cheque. This can be USD even if drawing from a Canadian bank account and vice versa. Defaults to the currency of the bank account country if not otherwise specified.
The contact information of the sender.
The contact information of the sender.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
mailingClass: "first_class" or "standard_class" or "express" or 23 moreThe mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
The mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
This order will transition from ready to printing on the day after this date. For example, if this is a date on Tuesday, the order will transition to printing on Wednesday at midnight eastern time.
status: "ready" or "printing" or "processed_for_delivery" or 2 moreSee OrderStatus for more details on the status of this order.
See OrderStatus for more details on the status of this order.
The recipient of this order. This will be provided even if you delete the underlying contact.
The recipient of this order. This will be provided even if you delete the underlying contact.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
cancellation: optional object { reason, cancelledByUser, note } The cancellation details of this order. Populated if the order has been cancelled.
The cancellation details of this order. Populated if the order has been cancelled.
A link to the deposit-ready PDF for a digital-only cheque, returned if requested and available.
An optional string describing this resource. Will be visible in the API and the dashboard.
envelope: optional "standard" or stringThe envelope of the cheque. If a custom envelope ID is not specified, defaults to standard.
The envelope of the cheque. If a custom envelope ID is not specified, defaults to standard.
The last date that the IMB status was updated. See imbStatus for more details.
imbStatus: optional "entered_mail_stream" or "out_for_delivery" or "returned_to_sender"The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The most recent ZIP code of the USPS facility that the order has been processed through. Only populated when an imbStatus is present.
An optional logo URL for the cheque. This will be placed next to the recipient address at the top left corner of the cheque. This needs to be a public link to an image file (e.g. a PNG or JPEG file).
These will be merged with the variables in the template or HTML you create this order with. The keys in this object should match the variable names in the template exactly as they are case-sensitive. Note that these do not apply to PDFs uploaded with the order.
The number of the cheque. If you don't provide this, it will automatically be set to an incrementing number starting from 1 across your entire account, ensuring that every cheque has a unique number.
The tracking number of this order. Populated after an express/certified order has been processed for delivery.
PostGrid renders a PDF preview for all orders. This should be inspected to ensure that the order is correct before it is sent out because it shows what will be printed and mailed to the recipient. Once the PDF preview is generated, this field will be returned by all GET endpoints which produce this order.
This URL is a signed link to the PDF preview. It will expire after a short period of time. If you need to access this URL after it has expired, you can regenerate it by calling the GET endpoint again.
Print MailContacts
Create Contact
List Contacts
Get Contact
Delete Contact
ModelsExpand Collapse
Contact = object { id, addressLine1, addressStatus, 20 more }
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
ContactCreate = ContactCreateWithFirstName { addressLine1, countryCode, firstName, 13 more } or ContactCreateWithCompanyName { addressLine1, companyName, countryCode, 13 more }
ContactCreateWithFirstName = object { addressLine1, countryCode, firstName, 13 more }
ContactCreateWithCompanyName = object { addressLine1, companyName, countryCode, 13 more }
Print MailLetters
Create Letter
List Letters
Get Letter
Cancel Letter
Get Letter Preview
ModelsExpand Collapse
Letter = object { id, addressPlacement, color, 29 more }
The contact information of the sender.
The contact information of the sender.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
mailingClass: "first_class" or "standard_class" or "express" or 23 moreThe mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
The mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
This order will transition from ready to printing on the day after this date. For example, if this is a date on Tuesday, the order will transition to printing on Wednesday at midnight eastern time.
status: "ready" or "printing" or "processed_for_delivery" or 2 moreSee OrderStatus for more details on the status of this order.
See OrderStatus for more details on the status of this order.
The recipient of this order. This will be provided even if you delete the underlying contact.
The recipient of this order. This will be provided even if you delete the underlying contact.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
cancellation: optional object { reason, cancelledByUser, note } The cancellation details of this order. Populated if the order has been cancelled.
The cancellation details of this order. Populated if the order has been cancelled.
An optional string describing this resource. Will be visible in the API and the dashboard.
The HTML content for the letter. You can supply either this or template but not both.
The last date that the IMB status was updated. See imbStatus for more details.
imbStatus: optional "entered_mail_stream" or "out_for_delivery" or "returned_to_sender"The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The most recent ZIP code of the USPS facility that the order has been processed through. Only populated when an imbStatus is present.
These will be merged with the variables in the template or HTML you create this order with. The keys in this object should match the variable names in the template exactly as they are case-sensitive. Note that these do not apply to PDFs uploaded with the order.
If specified, indicates which letter page is perforated. Currently, only the first page can be perforated.
Model representing a plastic card.
Model representing a plastic card.
doubleSided: optional object { backHTML, backTemplate, frontHTML, 2 more } Model representing a double-sided plastic card.
Model representing a double-sided plastic card.
singleSided: optional object { html, pdf, template } Model representing a single-sided plastic card.
Model representing a single-sided plastic card.
The template ID used for the letter. You can supply either this or html but not both.
The tracking number of this order. Populated after an express/certified order has been processed for delivery.
If a PDF was uploaded for the letter, this will contain the signed link to the uploaded PDF.
PostGrid renders a PDF preview for all orders. This should be inspected to ensure that the order is correct before it is sent out because it shows what will be printed and mailed to the recipient. Once the PDF preview is generated, this field will be returned by all GET endpoints which produce this order.
This URL is a signed link to the PDF preview. It will expire after a short period of time. If you need to access this URL after it has expired, you can regenerate it by calling the GET endpoint again.
PlasticCard = object { size, doubleSided, singleSided } Model representing a plastic card.
Model representing a plastic card.
doubleSided: optional object { backHTML, backTemplate, frontHTML, 2 more } Model representing a double-sided plastic card.
Model representing a double-sided plastic card.
singleSided: optional object { html, pdf, template } Model representing a single-sided plastic card.
Model representing a single-sided plastic card.
Print MailMailing List Imports
The mailing list imports API enables you to import contact lists from files and validate them for use in campaigns.
Create Mailing List Import
List Mailing List Imports
Update Mailing List Import
Get Mailing List Import
Delete Mailing List Import
ModelsExpand Collapse
MailingListImportResponse = object { id, createdAt, errors, 13 more } Read-only view of a MailingListImport
Read-only view of a MailingListImport
errors: array of object { message, type } A list of processing errors encountered, if any. Present when status is 'changes_required'.
A list of processing errors encountered, if any. Present when status is 'changes_required'.
file: object { fileType, receiverAddressMapping, url, 3 more } The file object your controller returns: all the mappings plus a signed URL.
The file object your controller returns: all the mappings plus a signed URL.
Mapping of columns for receiver addresses. Contact fields to file columns. Possible Contact fields:
- description
- firstName
- lastName
- phoneNumber
- companyName
- addressLine1
- addressLine2
- jobTitle
- city
- postalOrZip
- provinceOrState
- countryCode
An optional string describing this resource. Will be visible in the API and the dashboard.
A temporary URL to download the processing report, available once the import is completed.
Print MailMailing Lists
Create Mailing List
List Mailing Lists
Get Mailing List
Update Mailing List
Delete Mailing List
Submit a Mailing List Job
ModelsExpand Collapse
MailingList = object { id, createdAt, live, 5 more } Represents a mailing list.
Represents a mailing list.
status: "creating_contacts" or "removing_contacts" or "counting_recipient_country_codes" or "completed"Status of the mailing list processing.
Status of the mailing list processing.
An optional string describing this resource. Will be visible in the API and the dashboard.
Print MailOrder Profiles
Print MailOrder ProfilesCheques
Order Profiles are reusable blueprints for creating print and mail orders (Letters, Postcards, Cheques, Self-Mailers). They define common properties like size, content (via templates or uploaded PDFs), mailing class, and metadata. Using profiles simplifies order creation, especially for recurring mailings or campaigns, by pre-filling many parameters.
Profiles are environment-specific (live vs. test).
Create Cheque Profile
List Cheque Profiles
Retrieve Cheque Profile
Update Cheque Profile
Delete Cheque Profile
ModelsExpand Collapse
ChequeProfile = object { id, bankAccount, createdAt, 14 more }
An optional description for the profile. Set to null to remove during update.
ID of a template for an optional attached letter. Cannot be used with letterHTML or letterPDF.
A temporary, signed URL to view the attached letter PDF, if any. Output only.
A publicly accessible URL for the logo to print on the cheque. Set to null to remove during update.
Print MailOrder ProfilesLetters
Order Profiles are reusable blueprints for creating print and mail orders (Letters, Postcards, Cheques, Self-Mailers). They define common properties like size, content (via templates or uploaded PDFs), mailing class, and metadata. Using profiles simplifies order creation, especially for recurring mailings or campaigns, by pre-filling many parameters.
Profiles are environment-specific (live vs. test).
Create Letter Profile
List Letter Profiles
Retrieve Letter Profile
Update Letter Profile
Delete Letter Profile
ModelsExpand Collapse
LetterProfile = object { id, createdAt, live, 15 more }
An optional description for the profile. Set to null to remove during update.
Print MailOrder ProfilesPostcards
Order Profiles are reusable blueprints for creating print and mail orders (Letters, Postcards, Cheques, Self-Mailers). They define common properties like size, content (via templates or uploaded PDFs), mailing class, and metadata. Using profiles simplifies order creation, especially for recurring mailings or campaigns, by pre-filling many parameters.
Profiles are environment-specific (live vs. test).
Create Postcard Profile
List Postcard Profiles
Retrieve Postcard Profile
Update Postcard Profile
Delete Postcard Profile
ModelsExpand Collapse
PostcardProfile = object { id, createdAt, live, 10 more }
An optional description for the profile. Set to null to remove during update.
ID of the template for the front side. Required unless pdf is provided.
Print MailOrder ProfilesSelf Mailers
Order Profiles are reusable blueprints for creating print and mail orders (Letters, Postcards, Cheques, Self-Mailers). They define common properties like size, content (via templates or uploaded PDFs), mailing class, and metadata. Using profiles simplifies order creation, especially for recurring mailings or campaigns, by pre-filling many parameters.
Profiles are environment-specific (live vs. test).
Create Self-Mailer Profile
List Self-Mailer Profiles
Retrieve Self-Mailer Profile
Update Self-Mailer Profile
Delete Self-Mailer Profile
ModelsExpand Collapse
SelfMailerProfile = object { id, createdAt, live, 10 more } Represents a Self-Mailer Profile resource.
Represents a Self-Mailer Profile resource.
An optional description for the profile. Set to null to remove during update.
mailingClass: optional "first_class" or "standard_class" or "express" or 23 moreMailing class (cannot include extra services for self-mailers).
Mailing class (cannot include extra services for self-mailers).
Print MailPostcards
Create Postcard
List Postcards
Get Postcard
Cancel Postcard
Get Postcard Preview
ModelsExpand Collapse
Postcard = object { id, createdAt, live, 17 more }
mailingClass: "first_class" or "standard_class" or "express" or 23 moreThe mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
The mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
This order will transition from ready to printing on the day after this date. For example, if this is a date on Tuesday, the order will transition to printing on Wednesday at midnight eastern time.
status: "ready" or "printing" or "processed_for_delivery" or 2 moreSee OrderStatus for more details on the status of this order.
See OrderStatus for more details on the status of this order.
The recipient of this order. This will be provided even if you delete the underlying contact.
The recipient of this order. This will be provided even if you delete the underlying contact.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
cancellation: optional object { reason, cancelledByUser, note } The cancellation details of this order. Populated if the order has been cancelled.
The cancellation details of this order. Populated if the order has been cancelled.
An optional string describing this resource. Will be visible in the API and the dashboard.
The contact information of the sender.
The contact information of the sender.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
The last date that the IMB status was updated. See imbStatus for more details.
imbStatus: optional "entered_mail_stream" or "out_for_delivery" or "returned_to_sender"The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The most recent ZIP code of the USPS facility that the order has been processed through. Only populated when an imbStatus is present.
These will be merged with the variables in the template or HTML you create this order with. The keys in this object should match the variable names in the template exactly as they are case-sensitive. Note that these do not apply to PDFs uploaded with the order.
The tracking number of this order. Populated after an express/certified order has been processed for delivery.
PostGrid renders a PDF preview for all orders. This should be inspected to ensure that the order is correct before it is sent out because it shows what will be printed and mailed to the recipient. Once the PDF preview is generated, this field will be returned by all GET endpoints which produce this order.
This URL is a signed link to the PDF preview. It will expire after a short period of time. If you need to access this URL after it has expired, you can regenerate it by calling the GET endpoint again.
Print MailReports
The reports API lets you run SQL queries against a data lake with all of your PostGrid data. You can use this to run ad-hoc SQL queries or save them as reports. You can bulk export data from these reports to fit all of your reporting needs. Note that the data this API provides may be up to 2 hours behind your current PostGrid environment. Your test and live data lakes are fully segregated, so you'll need a live API key to run queries against your live data.
You can request access to this to this feature by reaching out to [email protected]
Create Saved Report
Run Ad-hoc Query
Update Report
List Saved Reports
Retrieve Saved Report
Delete Saved Report
Print MailReportsSamples
The reports API lets you run SQL queries against a data lake with all of your PostGrid data. You can use this to run ad-hoc SQL queries or save them as reports. You can bulk export data from these reports to fit all of your reporting needs. Note that the data this API provides may be up to 2 hours behind your current PostGrid environment. Your test and live data lakes are fully segregated, so you'll need a live API key to run queries against your live data.
You can request access to this to this feature by reaching out to [email protected]
Sample a Saved Report
Print MailReportsExports
The reports API lets you run SQL queries against a data lake with all of your PostGrid data. You can use this to run ad-hoc SQL queries or save them as reports. You can bulk export data from these reports to fit all of your reporting needs. Note that the data this API provides may be up to 2 hours behind your current PostGrid environment. Your test and live data lakes are fully segregated, so you'll need a live API key to run queries against your live data.
You can request access to this to this feature by reaching out to [email protected]
Create a Report Export
Get Report Export
Delete Report Export
ModelsExpand Collapse
ReportExport = object { id, createdAt, live, 11 more } Represents a report export job and its results.
Represents a report export job and its results.
Timestamp when the export was last updated (e.g., finished generation).
A signed URL to download the exported data (CSV format). Available when generation is complete and successful.
Print MailSelf Mailers
Create Self Mailer
List Self Mailers
Get Self Mailer
Cancel Self Mailer
Get Self Mailer Preview
ModelsExpand Collapse
SelfMailer = object { id, createdAt, from, 17 more }
The contact information of the sender.
The contact information of the sender.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
mailingClass: "first_class" or "standard_class" or "express" or 23 moreThe mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
The mailing class of this order. This determines the speed and cost of delivery. See OrderMailingClass for more details.
This order will transition from ready to printing on the day after this date. For example, if this is a date on Tuesday, the order will transition to printing on Wednesday at midnight eastern time.
status: "ready" or "printing" or "processed_for_delivery" or 2 moreSee OrderStatus for more details on the status of this order.
See OrderStatus for more details on the status of this order.
The recipient of this order. This will be provided even if you delete the underlying contact.
The recipient of this order. This will be provided even if you delete the underlying contact.
A series of human-readable errors/warnings that were raised when running the provided address through our address verification.
An optional string describing this resource. Will be visible in the API and the dashboard.
cancellation: optional object { reason, cancelledByUser, note } The cancellation details of this order. Populated if the order has been cancelled.
The cancellation details of this order. Populated if the order has been cancelled.
An optional string describing this resource. Will be visible in the API and the dashboard.
The last date that the IMB status was updated. See imbStatus for more details.
imbStatus: optional "entered_mail_stream" or "out_for_delivery" or "returned_to_sender"The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The Intelligent Mail Barcode (IMB) status of this order. Only populated for US-printed and US-destined orders. This is the most detailed way to track non-express/certified orders.
The most recent ZIP code of the USPS facility that the order has been processed through. Only populated when an imbStatus is present.
These will be merged with the variables in the template or HTML you create this order with. The keys in this object should match the variable names in the template exactly as they are case-sensitive. Note that these do not apply to PDFs uploaded with the order.
The tracking number of this order. Populated after an express/certified order has been processed for delivery.
PostGrid renders a PDF preview for all orders. This should be inspected to ensure that the order is correct before it is sent out because it shows what will be printed and mailed to the recipient. Once the PDF preview is generated, this field will be returned by all GET endpoints which produce this order.
This URL is a signed link to the PDF preview. It will expire after a short period of time. If you need to access this URL after it has expired, you can regenerate it by calling the GET endpoint again.
Print MailSub Organizations
Sub-organizations enable you to create isolated PostGrid accounts ("sub-organizations") under your PostGrid account (the "parent organization"). Each sub-organization has fully isolated resources and users, and can act independently.
This allows you to isolate different departments or even re-sell PostGrid entirely.
You can request access to this feature by reaching out to [email protected]