---
title: Print vendor API
description: Use the print API to connect to our services and receive orders. Note that this must be authorized first by our service team.
---

[Skip to content](https://help.marq.com/print-vendor-api#main-content)

English

Show submenu for translations

<https://help.marq.com/kb-tickets/new?hsLang=en>

![marq.svg\]](https://help.marq.com/hubfs/Brand%20Logos/marq.svg)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- <https://help.marq.com/kb-tickets/new>
- [Projects](https://app.marq.com/documents#/documents)

[Projects](https://app.marq.com/documents#/documents)

 How can we help?

- There are no suggestions because the search field is empty.

1. [Help Center](https://help.marq.com/?hsLang=en)
2. [Integrations](https://help.marq.com/integrations?hsLang=en)
3. [Printer integrations](https://help.marq.com/integrations?hsLang=en#printer-integrations)

# Print vendor API

## Use the print API to connect to our services and receive orders. Note that this must be authorized first by our service team.

#### GET /api/printOrders?statuses=\[statusList\]

### Description

Query a list of print orders.

### Query string parameters

- statuses: a comma-separated list of order statuses

### Valid status values

- SentToVendor  
- ReceivedByVendor  
- Printing  
- Shipping  
- OnHold  
- Cancelled

### Response format

A JSON list of pending print orders. The format for a print order is:

```
{    "orderId": number,    "printJobs": array[PrintJob],    "rushOrder": boolean,    "reprint": boolean,    "contactInfo": ContactInfo,    "notes": string}
```

In special cases where users do not pay for the order through Marq, but are instead billed directly by the print vendor, the following values will also be included in the print order:

```
"shippingPrice": number,"totalPriceWithoutTax": number,
```

The format for ContactInfo is:

```
{    "name": string,    "email": string,    "billingCodes": string} 
```

 

The format for a print job is:

```
{    "jobId": string,    "title": string,    "projectURL": string,    "csvURL": string (optional),    "quantity": number,    "shippingAddress": ShippingAddress,    "shippingMethod": string,    "jobOptions": JobOptions,    "notes": string,    "externalProductId": string}
```

 

The jobId will be a string representation of the print job's ID, or of the form \[jobId\]-addon for add-on jobs. Add-on jobs include envelopes, banner stands, etc.

The shippingMethod will be one of the following:

- USPS First Class
- USPS Priority
- UPS Ground
- UPS 2nd Day Air
- UPS Next Day Air
- Direct mailer
- FedEx Ground
- FedEx Priority
- FedEx Saturday

 

The format for a shipping address is:

```
{     "name": string,    "address1": string,    "address2": string (optional),     "city": string,    "state": string,    "country": string,    "zipcode": string}
```

 

The format for job options is:

```
{    "width": number,    "height": number,    "units": string,    "description": string,    "productType": string,    "media": string,    "duplex": boolean (optional),    "pageCount": number,    "coating": string (optional),    "folds": string (optional),    "finish": string (optional),    "coverMedia": string (optional),    "upgrades": Upgrades}
```

 

description is a human-friendly description of the print product

productType represents the general type of print

folds, if present, will be of the format (h|v);(\\d+.\\d+,)+. The first character denotes whether the folds are horizontal or vertical. The decimal numbers after the semicolon are comma-separated and denote the distance (in inches) from the bottom/left edge of the page

 

The format for upgrades is:

```
{       "description": string}
```

### Example response

```
[  {    "orderId": 1,    "printJobs": [      {        "jobId": 1,        "projectURL": "cloudfront.pdf.csv.zip",        "shippingAddress": "",        "shippingMethod": "First-Class Mail",        "jobOptions": {          "width": 4,          "height": 6,          "productType": "Postcard",          "media": "110# Matte Cover",          "duplex": true,          "pageCount": 2,          "coating": "GlossUV"        }      }    ]  },  {    "orderId": 2,    "printJobs": [      {        "jobId": 1,        "projectURL": "cloudfront.pdf.csv.zip",        "shippingAddress": "",        "shippingMethod": "First-Class Mail",        "jobOptions": {          "width": 5,          "height": 7,          "productType": "Postcard",          "media": "110# Matte Cover",          "duplex": true,          "pageCount": 2,          "coating": "GlossUV"        }      },      {        "jobId": 2,        "projectURL": "cloudfront.pdf.csv.zip",        "shippingAddress": "",        "shippingMethod": "First-Class Mail",        "jobOptions": {          "width": 5,          "height": 7,          "productType": "Postcard",          "media": "110# Matte Cover",          "duplex": true,          "pageCount": 2,          "coating": "GlossUV"        }      },      {        "jobId": 3,        "projectURL": "cloudfront.pdf.csv.zip",        "shippingAddress": "",        "shippingMethod": "First-Class Mail",        "jobOptions": {          "width": 4,          "height": 6,          "productType": "Postcard",          "media": "110# Matte Cover",          "duplex": true,          "pageCount": 2,          "coating": "GlossUV"        }      }    ]  },  {    "orderId": 3,    "printJobs": [      {        "jobId": 1,        "projectURL": "cloudfront.pdf.csv.zip",        "shippingAddress": "",        "shippingMethod": "First-Class Mail",        "jobOptions": {          "width": 4,          "height": 6,          "productType": "Postcard",          "media": "110# Matte Cover",          "duplex": true,          "pageCount": 2,          "coating": "GlossUV"        }      }    ]  }]
```

#### Authentication

You no longer need to use a vendor code to connect to the API. Going forward, the endpoint is **/api/printOrders?statuses=X,Y,Z** where X, Y, and Z are substituted with valid status values. If you would like to access this endpoint from outside the browser via cURL or Postman, you need to copy the **lucidauth** cookies form the browser and send it with the request. For example:

1\. Sign in to Marq.

2\. Copy the value of the lucidauth cookie under the app.Marq.com domain.

3\. Decode this value using decodeURIComponent(cookieValueHere)

4\. Use https://print.app.Marq.com/api/printOrders?statuses=SentToVendor for the URL in Postman.

5\. Set the Authorization header in the request in Postman. The value should be the result of step 3.

#### POST /api/printOrders

### Description

Send a list of updates for print jobs and orders

### Body parameters

- A JSON list of order updates

 

Order update format:

```
{      "orderId": number,    "jobId": number,    "status": string,    "trackingNumber": string (optional),    "shippingCarrier": string (optional),    "shippingMethod": string (optional),    "dateShipped": string (optional) }
```

 

**Note**: currently, only one status update per order is accepted. The jobId can be the ID of any job in the order.

**Note**: Status updates for "add-on" jobs are not needed and will not be accepted

Valid status values are:

- SentToVendor
- ReceivedByVendor
- Printing
- Shipping
- OnHold
- Cancelled

 

The optional keys (trackingNumber, shippingCarrier, shippingMethod, and dateShipped) are only required when the status is Shipping

The format for the shipping date is MM/DD/YYYY HH:MM:SS \[AM|PM\]

 

A status update on a job will only be accepted if the new status is a valid transition from the current status. Valid transitions are:

- SentToVendor -\> ReceivedByVendor, Printing, Shipping, OnHold, or Cancelled
- ReceivedByVendor -\> Printing, Shipping, OnHold, or Cancelled
- Printing -\> OnHold or Shipping
- Shipping -\> Shipping (terminal state, but updates to shipping information are allowed)
- OnHold -\> ReceivedByVendor, Printing, Shipping, or Cancelled
- Cancelled -\> N/A (terminal state)

### Response-format

A multistatus JSON object:

```
{    "multistatus": [        {...},        {...},        {...},        ...    ]}
```

 

Status object format:

```
{      "id": string,    "Status": string,    "Reason": string}
```

 

The id will be of the form \[orderId\]-\[jobId\]

The Status will be a string representation of an HTTP status code

- 200 for a successful status update
- 400 for invalid data
- 500 for an internal server error

 

The Reason will give additional information. Examples of reasons are:

- "Success"
- "Invalid order id"
- "Invalid job id"
- "No existing status for \[id\]"
- "Attempted to set status of \[id\] to invalid status \[status\]"
- "Attempted to make invalid status transition from \[currentStatus\] to \[attemptedStatus\]"

### Example request body data

```
[  {    "orderId": 1,    "jobId": 1,    "status": "Shipping",    "trackingNumber": "9400000000000000000000",    "shippingCarrier": "USPS",    "shippingMethod": "USPS Priority",    "dateShipped": "04/17/2018 11:00:00 AM"  },  {    "orderId": 2,    "jobId": 1,    "status": "Printing"  },  {    "orderId": 2,    "jobId": 2,    "status": "SomeInvalidStatus"  },  {    "orderId": 2,    "jobId": 3,    "status": "Printing"  },  {    "orderId": 3,    "jobId": 1,    "status": "ReceivedByVendor"  },  {    "orderId": 3,    "jobId": 2,    "status": "ReceivedByVendor"  },  {    "orderId": 4,    "jobId": 1,    "status": "Printing"  }] 
```

### Example response

```
{  "multistatus": [    {      "id": "1-1",      "Status": "200",      "Reason": "Success"    },    {      "id": "2-1",      "Status": "200",      "Reason": "Success"    },    {      "id": "2-2",      "Status": "400",      "Reason": "Attempted to set status of 2-2 to invalid status SomeInvalidStatus"    },    {      "id": "2-3",      "Status": "200",      "Reason": "Success"    },    {      "id": "3-1",      "Status": "200",      "Reason": "Success"    },    {      "id": "3-2",      "Status": "400",      "Reason": "Invalid job id"    },    {      "id": "4-1",      "Status": "500",      "Reason": "Invalid order id"    }  ]}
```

 

- [Intro to Marq](https://help.marq.com/intro-to-marq?hsLang=en#main-content)

    - [Getting started](https://help.marq.com/intro-to-marq?hsLang=en#getting-started)
    - [Tips and tricks](https://help.marq.com/intro-to-marq?hsLang=en#tips-and-tricks)
    - [Common issues](https://help.marq.com/intro-to-marq?hsLang=en#common-issues)
    - [Get support](https://help.marq.com/intro-to-marq?hsLang=en#get-support)
    - [Other resources](https://help.marq.com/intro-to-marq?hsLang=en#other-resources)
- [Content AI](https://help.marq.com/content-ai?hsLang=en#main-content)

    - [AI Assistant](https://help.marq.com/content-ai?hsLang=en#ai-assistant)
    - [AI Marqet](https://help.marq.com/content-ai?hsLang=en#ai-marqet)
    - [Brand Guardian](https://help.marq.com/content-ai?hsLang=en#brand-guardian)
- [Account setup and billing](https://help.marq.com/account-setup-and-billing?hsLang=en#main-content)

    - [Account settings](https://help.marq.com/account-setup-and-billing?hsLang=en#account-settings)
    - [Storage](https://help.marq.com/account-setup-and-billing?hsLang=en#storage)
    - [Billing and plans](https://help.marq.com/account-setup-and-billing?hsLang=en#billing-and-plans)
    - [Privacy and security](https://help.marq.com/account-setup-and-billing?hsLang=en#privacy-and-security)
- [Creating your design](https://help.marq.com/creating-your-design?hsLang=en#main-content)

    - [The Editor](https://help.marq.com/creating-your-design?hsLang=en#the-editor)
    - [Document and page settings](https://help.marq.com/creating-your-design?hsLang=en#document-and-page-settings)
    - [Templates](https://help.marq.com/creating-your-design?hsLang=en#templates)
    - [Images](https://help.marq.com/creating-your-design?hsLang=en#images)
    - [Text](https://help.marq.com/creating-your-design?hsLang=en#text)
    - [Shapes and graphics](https://help.marq.com/creating-your-design?hsLang=en#shapes-and-graphics)
    - [Layers and objects](https://help.marq.com/creating-your-design?hsLang=en#layers-and-objects)
    - [Elements](https://help.marq.com/creating-your-design?hsLang=en#elements)
    - [Video and interactive objects](https://help.marq.com/creating-your-design?hsLang=en#video-and-interactive-objects)
    - [Tables](https://help.marq.com/creating-your-design?hsLang=en#tables)
    - [Locking](https://help.marq.com/creating-your-design?hsLang=en#locking)
    - [Uploading](https://help.marq.com/creating-your-design?hsLang=en#uploading)
    - [Automation and other advanced features](https://help.marq.com/creating-your-design?hsLang=en#automation-and-other-advanced-features)
- [Exporting and sharing](https://help.marq.com/exporting-and-sharing?hsLang=en#main-content)

    - [Collaborate](https://help.marq.com/exporting-and-sharing?hsLang=en#collaborate)
    - [Export to social media](https://help.marq.com/exporting-and-sharing?hsLang=en#export-to-social-media)
    - [Embedding](https://help.marq.com/exporting-and-sharing?hsLang=en#embedding)
    - [Publishing](https://help.marq.com/exporting-and-sharing?hsLang=en#publishing)
    - [Printing](https://help.marq.com/exporting-and-sharing?hsLang=en#printing)
    - [Downloading](https://help.marq.com/exporting-and-sharing?hsLang=en#downloading)
    - [GIFs](https://help.marq.com/exporting-and-sharing?hsLang=en#gifs)
- [Admin settings and team management](https://help.marq.com/admin-settings-and-team-management?hsLang=en#main-content)

    - [Managing your team](https://help.marq.com/admin-settings-and-team-management?hsLang=en#managing-your-team)
    - [Licensing and roles](https://help.marq.com/admin-settings-and-team-management?hsLang=en#licensing-and-roles)
    - [Brand assets](https://help.marq.com/admin-settings-and-team-management?hsLang=en#brand-assets)
    - [User experience and workflows](https://help.marq.com/admin-settings-and-team-management?hsLang=en#user-experience-and-workflows)
    - [Settings and configuration](https://help.marq.com/admin-settings-and-team-management?hsLang=en#settings-and-configuration)
    - [Implementation resources](https://help.marq.com/admin-settings-and-team-management?hsLang=en#implementation-resources)
- [Integrations](https://help.marq.com/integrations?hsLang=en#main-content)

    - [Printer integrations](https://help.marq.com/integrations?hsLang=en#printer-integrations)
    - [Data integrations](https://help.marq.com/integrations?hsLang=en#data-integrations)
    - [Custom integrations](https://help.marq.com/integrations?hsLang=en#custom-integrations)
    - [Security and sign-on integrations](https://help.marq.com/integrations?hsLang=en#security-and-sign-on-integrations)
    - [Email integrations](https://help.marq.com/integrations?hsLang=en#email-integrations)
    - [Productivity and analytics integrations](https://help.marq.com/integrations?hsLang=en#productivity-and-analytics-integrations)
    - [Workflow Integrations](https://help.marq.com/integrations?hsLang=en#workflow-integrations)
    - [Salesforce](https://help.marq.com/integrations?hsLang=en#salesforce)
    - [MediaValet](https://help.marq.com/integrations?hsLang=en#mediavalet)
- [Training videos](https://help.marq.com/training-videos?hsLang=en#main-content)

    - [View](https://help.marq.com/training-videos?hsLang=en#view)
- [Courses](https://help.marq.com/courses?hsLang=en#main-content)

    - [View](https://help.marq.com/courses?hsLang=en#view)
- [Tutorials and resources](https://help.marq.com/tutorials-and-resources?hsLang=en#main-content)

    - [View](https://help.marq.com/tutorials-and-resources?hsLang=en#view)
- [Design services](https://help.marq.com/design-services?hsLang=en#main-content)

    - [View](https://help.marq.com/design-services?hsLang=en#view)
- [Events](https://help.marq.com/events?hsLang=en#main-content)

    - [View](https://help.marq.com/events?hsLang=en#view)
- [Analytics](https://help.marq.com/analytics?hsLang=en#main-content)

    - [Account Setup](https://help.marq.com/analytics?hsLang=en#account-setup)
    - [Basic Analytics](https://help.marq.com/analytics?hsLang=en#basic-analytics)
    - [Advanced Analytics](https://help.marq.com/analytics?hsLang=en#advanced-analytics)
    - [Navigating Reports](https://help.marq.com/analytics?hsLang=en#navigating-reports)
    - [Glossary of Terms](https://help.marq.com/analytics?hsLang=en#glossary-of-terms)
- [App Marketplace](https://help.marq.com/app-marketplace?hsLang=en#main-content)

    - [Workflow Connectors](https://help.marq.com/app-marketplace?hsLang=en#workflow-connectors)
- [Campaigns](https://help.marq.com/campaigns?hsLang=en#main-content)

    - [Getting Started](https://help.marq.com/campaigns?hsLang=en#getting-started)
    - [Connect to Facebook](https://help.marq.com/campaigns?hsLang=en#connect-to-facebook)
    - [Industry](https://help.marq.com/campaigns?hsLang=en#industry)
    - [Objectives](https://help.marq.com/campaigns?hsLang=en#objectives)
    - [Analytics](https://help.marq.com/campaigns?hsLang=en#analytics)
- [Creator Studio](https://help.marq.com/creator-studio?hsLang=en#main-content)

    - [Getting Started](https://help.marq.com/creator-studio?hsLang=en#getting-started)
    - [Studio FAQ](https://help.marq.com/creator-studio?hsLang=en#studio-faq)
- [Templates](https://help.marq.com/templates?hsLang=en#main-content)

    - [Getting Started](https://help.marq.com/templates?hsLang=en#getting-started)
    - [Advanced Features](https://help.marq.com/templates?hsLang=en#advanced-features)
    - [Team Management](https://help.marq.com/templates?hsLang=en#team-management)
    - [Troubleshooting](https://help.marq.com/templates?hsLang=en#troubleshooting)
- [CRM Integrations](https://help.marq.com/crm-integrations?hsLang=en)
- [DAM Integrations](https://help.marq.com/dam-integrations?hsLang=en)
- [Marq 2026 Packaging Updates](https://help.marq.com/marq-2026-packaging-updates?hsLang=en)
- [AI Brand Creations](https://help.marq.com/ai-brand-creations?hsLang=en)

[![Chill listening crop-3](https://help.marq.com/hubfs/Brand%20Logos/marq.svg "Chill listening crop-3")](https://help.marq.com?hsLang=en)

<https://www.facebook.com/marqhq> <https://twitter.com/marq_hq> <https://www.youtube.com/marqhq> <https://www.linkedin.com/company/marqhq>

Copyright © 2026, Marq