canonical: https://jentic.com/apis/printify.com/printify

# Printify Public API

The Printify Public API automates print-on-demand product and order creation for Printify shops. It browses the catalog of blueprints, print providers, and variants, uploads artwork by URL or base64 contents, and creates products from a blueprint_id, print_provider_id, variants, and print_areas. Orders are submitted with line_items and an address_to, priced for shipping before submission, sent to production, or cancelled, and shop webhooks report order and product events. Shipping data covers standard, priority, express, and economy methods per blueprint.

## For AI agents

Create print-on-demand products from Printify catalog blueprints, upload artwork, and submit, price, and track orders for a Printify shop.

## Scope

Does not take payments, host a storefront, or manage marketplace listings directly. Use for Printify print-on-demand products and order fulfilment only.

## Capabilities

- Browse Printify catalog blueprints, the print providers that fulfil them, and each provider's variants
- Upload artwork to the Printify media library from a URL or base64 contents
- Create a product from a blueprint_id, print_provider_id, variants, and print_areas, then publish it to the connected store
- Calculate the shipping cost of an order from its line_items and address_to before submitting
- Submit an order, send an existing order to production, or cancel it
- Filter a shop's orders by status or sku and read full order details by id
- Register shop webhooks by topic and url and simulate a delivery to test them

## Use cases

### Agent-built print-on-demand products

An AI agent running a merch store can turn a design into a sellable product without a human clicking through the Printify dashboard. Through Jentic the agent searches for 'create a print-on-demand product', uploads the artwork with uploadAnImage, looks up a blueprint and print provider in the catalog, and calls createANewProduct with the variants and print_areas that place the image. It then publishes the product to the connected store.

Example prompt: POST `/v1/uploads/images.json` with file_name 'logo.png' and a url, then POST `/v1/shops/{shop_id}/products.json` with title, blueprint_id, print_provider_id, variants, and print_areas referencing the uploaded image id

### Order routing from a custom storefront

A store built outside the native Printify integrations can still fulfil through Printify. The storefront calls calculateTheShippingCostOfAnOrder with the cart's line_items and address_to to show shipping at checkout, then submitAnOrder with the same fields and an external_id after payment. If the order is held for review, sendAnExistingOrderToProduction releases it, and getOrderDetailsById returns its current state.

Example prompt: POST `/v1/shops/{shop_id}/orders/shipping.json` with line_items and address_to, then POST `/v1/shops/{shop_id}/orders.json` with external_id 'web-1042', the same line_items, and address_to

### Comparing print providers

Before choosing where a product is made, a merchant can compare providers for one blueprint. The catalog routes list every print provider that fulfils a blueprint, the variants each one offers, and shipping information including standard, priority, express, and economy methods, so the choice can weigh variant coverage and delivery options.

Example prompt: GET `/v1/catalog/blueprints/{blueprint_id}/print_providers.json`, then for each provider GET `/v1/catalog/blueprints/{blueprint_id}/print_providers/{print_provider_id}/variants.json` and summarise variant counts

### Order event monitoring

Operations tooling can react to Printify order and product changes by registering a webhook per shop with a topic and url. simulateWebhook sends a test event so the receiver can be checked before live orders flow, and modifyAWebhook or deleteAWebhook adjust the subscription later.

Example prompt: POST `/v1/shops/{shop_id}/webhooks.json` with a topic and url 'https://example.com/printify', then POST `/v1/shops/{shop_id}/webhooks/{webhook_id}/simulate`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/catalog/blueprints.json` | List catalog blueprints |
| GET | `/v1/catalog/blueprints/{blueprint_id}/print_providers.json` | List print providers for a blueprint |
| POST | `/v1/uploads/images.json` | Upload an image |
| POST | `/v1/shops/{shop_id}/products.json` | Create a new product |
| POST | `/v1/shops/{shop_id}/products/{product_id}/publish.json` | Publish a product |
| POST | `/v1/shops/{shop_id}/orders/shipping.json` | Calculate order shipping cost |
| POST | `/v1/shops/{shop_id}/orders.json` | Submit an order |
| GET | `/v1/shops/{shop_id}/orders/{order_id}.json` | Get order details |

## Key resources

- **Catalog** — Blueprints, print providers, variants, and shipping methods available for print-on-demand products
- **Products** — Shop products built from a blueprint and print provider, with publish status operations
- **Orders** — Shop orders with shipping calculation, submission, Printify Express, production, and cancellation
- **Uploads and webhooks** — Artwork in the media library and per-shop webhook subscriptions

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 52 / 100
  - Developer Experience & Jentic Compatibility: 79 / 100
  - AI-Readiness & Agent Experience: 38 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 52 / 100
- **View full report:** https://jentic.com/apis/printify.com/printify/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Printify by hand means creating a personal access token, sending it as a bearer header, resolving blueprint, print provider, and variant ids before you can build a product, and handling page-based list limits that differ by resource. Through Jentic you install once, import Printify from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Printify puts the shop id in the URL path (`/v1/shops/{shop_id}/...`), so a rule can pin your agent to one shop's products, orders, and webhooks. You choose the operations it may call, so destructive or costly ones like deleteAProduct, cancelAnOrder, or disconnectAShop are not included unless you add them.
- **Credential handling:** Your Printify token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a print-on-demand product' or 'calculate order shipping', and Jentic returns the matching Printify operation with its input schema, including required fields like blueprint_id and print_areas, so the agent calls the right endpoint directly.

## Related APIs

- **Printful** — Print-on-demand and fulfilment with its own product catalog and warehousing
- **Shopify** — Storefront and checkout where Printify products are sold
- **Etsy** — Marketplace listings and orders for handmade and custom goods

## FAQ

### What authentication does the Printify Public API use?

Per its OpenAPI spec, the Printify Public API authenticates with a bearer token in the Authorization header, declared on its catalog, shop, product, order, upload, and webhook operations. You generate the personal access token in your Printify account. Through Jentic the token is held by your own instance and attached at call time.

### Can I calculate shipping before submitting an order with the Printify Public API?

Yes. POST `/v1/shops/{shop_id}/orders/shipping.json` takes the same line_items and address_to you would submit and returns the shipping cost. The catalog also exposes per-blueprint shipping information, with separate routes for standard, priority, express, and economy methods.

### What are the rate limits for the Printify Public API?

The OpenAPI spec does not specify rate limits. Check the Printify developer documentation at https://developers.printify.com for the current limits before running large catalog or product syncs.

### Is there a Printify MCP server?

You don't need an MCP server to give your agent Printify. Jentic connects it directly from the API Directory: import it, store your token once, and your agent calls the catalog, product, and order operations on demand without loading another server's tool definitions into its context.

### How do I submit an order through Jentic with the Printify Public API?

Search Jentic for 'submit a print-on-demand order', load the submitAnOrder operation, and execute it with the shop_id plus line_items and address_to, which the spec marks as required. Add an external_id so you can match it to your own system. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Printify Public API?

Yes. Write a rule that allows only the catalog reads and the products and orders reads under `/v1/shops/12345`/, so the agent can browse blueprints and report on that shop's orders but cannot submit, cancel, or delete anything. Every call it makes is logged for review.
