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

# Printful API

Printful API enables print-on-demand and drop-shipping fulfillment across 53 endpoints covering product catalog browsing, order creation and management, file uploads, shipping rate calculations, mockup generation, warehouse management, and webhook configuration. Authorization is OAuth 2.0 bearer tokens; Printful retired API-key Basic authentication and a Basic credential is now rejected. Catalog, category, country and tax-country lookups are public and need no credential, while every store, order, file and warehouse operation does. Printful documents a general rate limit of 120 API calls per minute, with a lower allowed request limit on resource-intensive operations such as the mockup generator.

## For AI agents

Submit print-on-demand orders, browse the product catalog, calculate shipping rates, generate mockups, and manage warehouse inventory. Supports 53 endpoints for full e-commerce fulfillment automation.

## Scope

Does not handle storefront management, payment processing, or customer-facing checkout; use for print-on-demand production and fulfillment only. Two vendor limits worth knowing before you plan around them: Printful states that jewelry products are not supported via API, and standalone tax rate lookups have been retired, so tax comes back only as part of an order cost estimate.

## Capabilities

- Browse the Printful product catalog with variants, sizes, and pricing
- Submit print-on-demand orders with custom designs and shipping details
- Calculate shipping rates for orders destined to specific countries
- Generate product mockups with uploaded design files on selected products
- Sync store products and variants with external e-commerce platforms
- Manage warehouse inventory including inbound shipments and stock levels
- Configure webhooks for real-time order status and shipment notifications

## Use cases

### Print-on-Demand Order Fulfillment

Submit custom print orders to Printful for production and drop-shipping directly to end customers. The API accepts order details including recipient address, product variant selection, and design file references. Printful handles the logistics from there: printing, packaging, and global shipping. Businesses selling custom merchandise can automate their fulfillment pipeline without holding inventory. An order can be saved as a draft and released separately: POST `/orders/{id}/confirm` approves a draft for fulfillment, and the spec notes that the store owner's credit card is charged when the order is submitted for fulfillment, so confirmation is the point of no return rather than order creation.

Example prompt: Create an order with recipient name 'Jane Smith' at '123 Main St, Portland OR 97201', product variant 4018 (Bella + Canvas 3001 in Black, size L), and confirm the order for production

### Product Catalog Integration

Browse and sync Printful's product catalog of printable items including apparel, accessories, and home goods. The catalog API returns product details, available variants with size and color options, pricing, and availability. E-commerce stores can automatically populate their storefronts with up-to-date product information and sync inventory status in real time.

Example prompt: Retrieve all products in the catalog, filter for the 'T-Shirts' category, and return the product names, variant counts, and base prices

### Shipping Rate and Order Cost Calculation

Price an order before submitting it. The shipping rates endpoint accepts item details and a destination address and returns the available shipping methods with costs and estimated delivery times. For a total that includes tax, POST `/orders/estimate-costs` returns estimated item costs, print costs, shipping and taxes together. Printful has retired standalone tax rate lookups, so POST `/tax/rates` is no longer available; GET `/tax/countries` still lists the countries and states that require sales tax to be calculated, including whether shipping is taxable in each. This enables real-time checkout pricing without post-purchase price adjustments.

Example prompt: Calculate shipping rates for 2 units of variant 4018 shipping to '10 Downing Street, London, UK' and return all available methods with costs

### AI Agent E-Commerce Fulfillment Automation

AI agents can use the Printful API through Jentic to automate end-to-end merchandise fulfillment. An agent can receive a custom order request, look up the appropriate product variant, submit the order with design files, and monitor fulfillment status through webhooks. Jentic provides credential isolation and operation schemas so agents never handle raw OAuth tokens.

Example prompt: Search Jentic for 'submit a print on demand order', load the createOrder operation schema, and execute an order with recipient and product details

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/products` | List all products in the Printful catalog |
| GET | `/products/{id}` | Get product details with variants |
| POST | `/orders` | Create a new print-on-demand order |
| POST | `/orders/{id}/confirm` | Confirm an order for production |
| POST | `/shipping/rates` | Calculate shipping rates for items |
| POST | `/mockup-generator/create-task/{id}` | Generate product mockup images |
| GET | `/store/products` | List synced store products |
| POST | `/files` | Upload a design file |

## Key resources

- **Products** — Browse catalog products with variants, sizes, colors, and pricing information
- **Orders** — Create, confirm, estimate costs, and manage print-on-demand orders
- **Store Products** — Sync products and variants between Printful and external e-commerce platforms
- **Files** — Upload design files for use in product customization and mockups
- **Shipping** — Calculate shipping rates for orders to specific destinations
- **Mockup Generator** — Generate product mockup images with custom designs applied
- **Warehouse** — Manage warehouse products and track inbound/outbound shipments

## Why Jentic

- **Setup:** Wiring Printful by hand means acquiring an OAuth token, migrating off the retired API-key Basic scheme if you still hold one, tracking scopes and the X-PF-Store-Id header, and coordinating products, orders, mockups, and shipping calls yourself with your own retry handling. Through Jentic you install once, point your instance at the Jentic API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Printful puts the order and product id in the URL path (`/orders/{id}/confirm`, `/products/{id}`), so a rule can pin your agent to specific orders. You choose the operations it may call, so confirming an order is not included unless you add it.
- **Credential handling:** Your Printful OAuth token or private token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'submit a print on demand order' or 'calculate shipping rates', and Jentic returns the matching Printful operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Printavo API** — Print shop management for physical production vs Printful's drop-ship fulfillment
- **Shopify API** — E-commerce storefront that connects to Printful for order fulfillment
- **ShipStation API** — Multi-carrier shipping management as an alternative to Printful's built-in shipping

## FAQ

### Does Printful publish its own OpenAPI specification?

Yes. Printful publishes OpenAPI documents for both of its API versions on its developer site: https://developers.printful.com/docs/openapi.json for v1 and https://developers.printful.com/docs/v2-beta/openapi.json for the v2 beta. This page describes the v1 surface Jentic has imported and validated, which is the 53 operations listed here on https://api.printful.com. The two documents are close but not identical, so treat Printful's as authoritative for anything this page does not cover.

### What authentication does the Printful API use?

OAuth 2.0 only. Printful retired API-key Basic authentication, and sending a Basic credential now returns 401 with the message that Basic API token authentication is no longer supported and directing you to create an OAuth 2.0 token instead. You generate a private token or install a public app in Printful's developer portal, then send it as an Authorization Bearer header. Scopes narrow what a token can reach, for example orders/read for read-only order access, and an account-level token adds an X-PF-Store-Id header to pick a store. Eight operations declare no security requirement: the three catalog product and variant lookups, the two category lookups, GET /countries, GET `/tax/countries`, and POST `/tax/rates.` Seven of them still answer without a credential; POST `/tax/rates` now returns 410 for every caller because Printful retired it. Your token is stored encrypted by your own self-hosted Jentic One instance and injected at execution time, so it never enters the agent's prompt or logs.

### What are the rate limits for the Printful API?

Printful documents a general rate limit of 120 API calls per minute and states that endpoints performing resource-intensive operations have a lower allowed request limit. The named examples are the mockup generator at 10 requests per 60 seconds for established stores and 2 requests per 60 seconds for new stores, unauthenticated catalog reads at 30 requests per 60 seconds, and the shipping rate endpoint at 120 requests per 60 seconds, dropping to 5 requests per 60 seconds when an order summary exceeds 100 items. A 60 second lockout applies once a limit is exceeded. Printful's status table lists 419 as a rate-limited warning alongside 429 for too many requests, so handle both.

### Can I generate product mockups with the Printful API?

Yes. Use POST `/mockup-generator/create-task/{id}` to submit a mockup generation task with your design file and product ID. Then poll GET `/mockup-generator/task` to check completion status. The API also provides GET `/mockup-generator/templates/{id}` to see available mockup templates and GET `/mockup-generator/printfiles/{id}` for print file specifications.

### How do I calculate shipping costs before placing an order through Jentic?

The POST `/shipping/rates` endpoint returns available shipping methods with costs and estimated delivery times for a given item list and destination address. Your agent finds it by intent rather than by reading the reference: it asks Jentic for something like 'calculate printful shipping rates', gets the matching operation and its input schema back, and calls it. Install self-hosted Jentic One with 'curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh' on the machine that will host your instance, then run 'jentic register' on the separate machine where your agent runs. Keeping the agent off the instance box matters before real credentials are involved, because an agent running as the same OS user as Jentic One can read its stored keys directly, which the Jentic One hardening guide covers.

### Can I sync Printful products with my Shopify or WooCommerce store?

Yes. The Store Products endpoints (GET `/store/products`, POST `/store/products`, PUT `/store/products/{id}`) manage synced products between Printful and your connected e-commerce platform. You can list synced products, create new sync mappings, update variant details, and add new variants to existing synced products via POST `/store/products/{id}/variants.`

### Is there a Printful MCP server, and how do I connect Printful to Claude or my agent?

We found no Printful-published MCP server: searching Printful's developer documentation and its llms.txt index returns no mention of MCP or the Model Context Protocol, and Printful's bound specification contains none either. Connect Printful through self-hosted Jentic One instead. Jentic One runs on your infrastructure, holds the OAuth token, and exposes Printful's operations to your agent over the operations and scopes you allow, so an agent in Claude or any other client reaches Printful without being handed the token.

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

Yes. Because Jentic One is self-hosted, you run it and your own rules decide which Printful operations and credentials the agent can use. You can allow only read calls like GET /products and POST `/shipping/rates` while withholding write operations such as POST /orders or POST `/orders/{id}/confirm`, so the agent cannot confirm an order for production unless you add that operation. Since Printful puts the order and product ID in the URL path, you can also pin a rule to specific orders or products, and your stored OAuth or private token is injected at execution time without ever entering the agent's prompt or logs.
