Sell custom products with Printify

Merchants running more than a handful of SKUs eventually hit the limits of a point-and-click dashboard. Printify’s API is the solution. It lets developers and large merchants manage shops, products, and orders programmatically, opening the door to fully-custom eCommerce channels and automated fulfillment.

Ready to connect your own integration?

What is an API?

An API, or application programming interface, is a defined set of rules that lets one piece of software request data or actions from another. An application sends a structured HTTP request and receives a JSON response back, with no dashboard clicks involved.

The Printify API works the same way. Developers send requests to endpoints such as /v1/shops.json, and Printify returns the requested data, whether that is a list of shops, a product catalog entry, or an order confirmation. Every request and response uses the application/json;charset=utf-8 content type, and all traffic runs over HTTPS.

In practice, this means an application can create products, submit orders, and manage a shop on behalf of a merchant using the same infrastructure that powers the Printify dashboard.

What can you do with the Printify API?

A man with curly hair and a beard is sitting at a desk, focused on his laptop. He is wearing a denim shirt and holding a pen in his right hand.

The API exists primarily to automate tasks that the Printify dashboard cannot handle on its own. Four use cases cover most of the reasons merchants and platforms connect to it.

Connect a custom eCommerce channel

Merchants who sell through a platform Printify does not natively support, such as a custom-built storefront, can connect it directly through the API.

This gives the same product creation and order fulfillment automation available to Shopify or Etsy sellers, without waiting for a native integration.

Automate user-generated content orders

Applications that let users upload their own artwork or capture user-generated content can send that artwork straight to the Printify Product Creator through the API, placing it on products, generating mockups, and totally fulfilling orders without manual steps.

Extend an existing integration

Merchants already connected through Shopify, WooCommerce, or another supported channel can use the API to scale and add in-depth functionality not covered by the native integrations, while keeping all order and sales data within their existing shop.

Offer POD merchandise to your community

Platforms with an engaged community, such as a content creator's app or a membership site, can connect to the API and let members buy print-on-demand (POD) merchandise directly, turning an audience into a revenue stream without building fulfillment infrastructure from scratch.

How to get a Printify API key

A woman with curly hair in a yellow sweater sitting at a table, using a laptop, learning how to use the Printify API.

Generating an API key takes a few minutes inside your Printify account settings.

Create or log in to your Printify account

Every integration starts with an active Printify account. New users can register directly, and existing merchants should log in to the account tied to the shop they want to connect.

Navigate to Connections in your profile

Open My Profile, then select Connections. This section contains the API token generator and allows a developer to attach a contact email to the integration.

Generate a new personal access token

Name the token so it is easy to identify later, select the access scopes it needs, and click Generate token. Printify supports creating multiple tokens with different scopes for different applications.

Copy and store your token securely

The mentioned token is visible only once, immediately after generation. Copy it and save it into a secure location, such as an environment variable or secrets manager. Personal access tokens remain valid for one year and must be replaced once they expire or are lost.

Connect your store via API

Go to My Stores, select Add new store, and choose the API option alongside Shopify, Etsy, and WooCommerce. Click Connect to link the store, then use the token in the Authorization header (Bearer $PRINTIFY_API_TOKEN) for every subsequent request.

Tip

See the step-by-step token guide for screenshots of each step.

Access scopes: Choosing the right permissions

Access scopes limit what a token can do, which keeps an integration from requesting more access than it needs.

Scopes include:

  • shops.read for viewing shops in a merchant's account,
  • catalog.read for seeing products and print providers,
  • products.read and products.write for viewing and creating products,
  • orders.read and orders.write for viewing and creating orders,
  • webhooks.read and webhooks.write for managing webhooks,
  • uploads.read and uploads.write for handling uploaded files,
  • print_providers.read for viewing available print providers.

A token built to only sync product data, for example, needs products.read and catalog.read, not orders.write. Narrower scopes reduce the damage a leaked token could cause.

Core Printify API endpoints overview

A young man with glasses, sitting at a desk, smiling while working on a computer. In the background, another person is also working at a desk.

The API organizes resources around six core areas, each with its own set of endpoints.

Shops

The shops resource lists every Printify shop connected to an account and lets an integration disconnect one. Merchants can have multiple shops within a single Printify account, and each shop has its own products, orders, and analytics. Most other endpoints require a shop ID pulled from this resource first.

Catalog

Catalog endpoints return blueprints (the base products before any design is added), the Print Providers that fulfill each blueprint, available variants, and shipping cost data broken out by country.

Each blueprint carries an ID number, a title, a description, and a set of images that identify the base product. Every Print Provider operates within its own region and uses its own printing technology, setting independent colors, sizes, print areas, prices, and shipment handling times.

A blueprint becomes a product only after a merchant's artwork has been added to it.

Products

Product endpoints allow an integration to create a new product by combining a blueprint, a Print Provider, artwork placeholders, and pricing, and then publish it to a connected sales channel.

Adding a product sends a POST request to the products endpoint, and the same resource lets an integration fetch existing product data to keep an external catalog in sync. This is the core action behind most automation use cases, from bulk catalog uploads to user-generated content orders that move straight into production.

Orders

Order endpoints submit orders with full details, including shipping address, selected variants, and one or more line items.

Printify returns order status updates covering everything from submission to delivery, flagging success or failure at each stage, which an integration can poll or, more efficiently, subscribe to through webhooks.

Webhooks

Webhooks send an instant notification to a URL you register whenever an event occurs in a Printify shop, such as an order being placed or a tracking number becoming available. Subscribing to webhooks removes the need to repeatedly check order status manually.

V1 vs V2

Most of the current documentation covers the V1 API, which handles shops, products, orders, and a separate Events endpoint for reviewing past account activity. A newer V2 reference currently covers an updated catalog structure, with more resources expected to migrate over time. Existing V1 integrations continue to work unless a deprecation is announced.

Rate limits

Printify's API usage guidelines set a global limit of 600 requests per minute per integration, identified at the account level, not per access token. Catalog endpoints carry a separate limit of 100 requests per minute on top of the global limit, and exceeding either one returns a 429 Too Many Requests response.

Merchants expecting to exceed these limits, such as those running bulk catalog imports, can request a higher limit through support before building the integration around it.

Personal access token vs OAuth 2.0: Which do you need?

Setup requirements vary depending on whether an application manages a single shop or several merchant accounts, which is the deciding factor between the two authentication methods.

A personal access token connects an application to a single Printify merchant account and the shops created within that account, which is well-suited to an in-house integration built for one shop. OAuth 2.0 lets a platform manage multiple separate Printify merchant accounts, and applications register through a form that Printify reviews within about a week before issuing an app ID.

The two also expire differently. A personal access token lasts for one year before it needs to be replaced. An OAuth access token expires after six hours, so platforms store the accompanying refresh token and use it to generate a new access token whenever the current one lapses. Merchants building their own storefronts should default to a personal access token, while companies building software for other Printify merchants should register for OAuth 2.0.

How not to use the Printify API

A man sitting at a desk, looking thoughtfully at a laptop, reading about limitations of the Printify API, wearing glasses and a light-colored shirt.

Printify monitors public API usage on the same infrastructure that runs its core platform, and it can flag or block accounts for platform abuse, meaning requests that add load without serving any real use case or other customers on the same infrastructure. A few practices keep an integration in good standing.

Don't retry on errors that won't resolve on their own

A 401 response means the token is invalid, missing, or expired. Retrying the same request isn’t helpful and won’t change that outcome, adding unnecessary load. Regenerate the token and update the credential; looping the same failed call adds nothing but extra requests.

Don't poll endpoints in a tight loop

Checking order status every few seconds by repeatedly calling the same endpoint wastes both the rate limit and Printify's infrastructure. Webhooks exist for this exact case and push updates the moment they happen.

Don't ignore error messages

A 429 response is Printify telling an integration to slow down. Build in exponential backoff before firing the next request, and log error codes so patterns show up before they trigger a block.

What happens if your integration is flagged

Printify does not publish an exhaustive list of what constitutes abuse, since sharing it would help bad actors circumvent it. Accounts identified as generating excessive, low-value load can be restricted or blocked from further API access, so building around documented rate limits and webhook support from the start avoids the issue entirely.

Printify API documentation and developer resources

Printify API reference (or Printify API docs) is the primary source for endpoint definitions, request and response examples, and the downloadable OpenAPI specification and Postman collection. These links, along with the API terms covering compliance requirements and the Printify help center's API section for account-level setup, cover most questions that a new integration encounters.

Companies planning a larger integration, particularly one built for other Printify merchants through OAuth 2.0, can also review the general Printify API overview before registering an app.

FAQ

Conclusion

The Printify API covers product creation, order submission, and order updates, delivered via webhooks, all handled through code rather than the dashboard. Getting started only takes a personal access token and a shop ID, while platforms serving multiple merchants should register for OAuth 2.0 from the outset.

Remember to follow the documented rate limits and subscribe to webhooks to keep the integration reliable and in good standing with Printify's support team.

Develop your integration today

Written by Andris Mucenieks
Andris Mucenieks

Andris is a writer and scholar with 10+ years of experience inside and outside academia. Devoted to his family and a convicted introvert, Andris left teaching to focus on what matters. He loves creating things, playing musical instruments, and walking around forests.