---
canonical_url: "https://docs.composio.dev/toolkits/printify"
markdown_url: "https://docs.composio.dev/toolkits/printify.md"
product: "platform"
version: null
last_updated: null
---

# Printify

Printify is a print-on-demand platform for managing merchant shops, products, orders, uploads, catalog data, and webhooks.

- **Category:** ecommerce
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 25
- **Triggers:** 0
- **Slug:** `PRINTIFY`
- **Version:** 00000000_00

## Tools

### Archive Uploaded Image

**Slug:** `PRINTIFY_ARCHIVE_UPLOAD`

Irreversibly archive an image in the connected merchant's Printify media library. This cannot be undone, removes it from normal media-library use, and may affect future product editing, but does not remove artwork already rendered into existing products. Use only after checking the exact image ID and explicitly confirming archival.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `image_id` | string | Yes | Exact Printify uploaded image ID to archive. |
| `confirm_archive` | boolean | Yes | Must be true to confirm archival. This confirmation is validated locally and not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Calculate Order Shipping

**Slug:** `PRINTIFY_CALCULATE_ORDER_SHIPPING`

Calculate available shipping-cost estimates for proposed line items and a destination. This is quote-only: it does not create an order, send anything to production, or charge the merchant, despite requiring orders.write. Returned amounts are estimates in integer minor currency units.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Printify shop used to price the proposed shipment. |
| `address_to` | object | Yes | Recipient and postal destination used only to calculate shipping quotes. |
| `line_items` | array | Yes | Proposed items in exactly one documented form per entry: existing product and variant, catalog blueprint configuration, or SKU. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Draft Product

**Slug:** `PRINTIFY_CREATE_PRODUCT`

Create a new product draft in a Printify shop. This changes merchant data but does not publish the product or submit an order. Validate blueprint, provider, variant, print-position, and uploaded image IDs before calling.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Merchant-facing product title. |
| `shop_id` | integer | Yes | Shop in which to create the draft product. |
| `variants` | array | Yes | Non-empty list of variant IDs, prices, and enabled states. |
| `description` | string | No | Optional product description. Printify accepts HTML for compatible channels. |
| `print_areas` | array | Yes | Non-empty list mapping variants to provider print positions and images. |
| `blueprint_id` | integer | Yes | Blueprint ID selected from catalog discovery. |
| `print_provider_id` | integer | Yes | Print provider ID verified as compatible with the blueprint. |
| `safety_information` | string | No | Optional product safety and compliance information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook

**Slug:** `PRINTIFY_CREATE_WEBHOOK`

Create a persistent webhook subscription for a Printify shop. Printify sends real event payloads to the HTTPS callback URL. An optional signing secret can be supplied for receiver-side X-Pfy-Signature verification.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS callback URL ready to receive Printify POST requests. |
| `topic` | string ("shop:disconnected" | "product:deleted" | "product:created" | "product:updated" | "product:publish:started" | "order:created" | "order:updated" | "order:sent-to-production" | "order:shipment:created" | "order:shipment:delivered") | Yes | Exact Printify event topic to deliver to the callback URL. |
| `secret` | string | No | Optional sensitive HMAC secret used to verify X-Pfy-Signature. Store securely; do not log or disclose it. |
| `shop_id` | integer | Yes | Shop for which to subscribe to Printify events. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Product

**Slug:** `PRINTIFY_DELETE_PRODUCT`

Permanently delete a product from a Printify shop. This cannot be undone and does not cancel or refund existing orders. Read the product first and verify both IDs before confirming deletion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop ID that owns the product. |
| `product_id` | string | Yes | Exact Printify product ID to permanently delete. |
| `confirm_delete` | boolean | Yes | Must be true to confirm permanent product deletion. This confirmation is validated locally and not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `PRINTIFY_DELETE_WEBHOOK`

Permanently delete a Printify webhook subscription so future events are no longer delivered. The expected callback host must match the subscription, which helps prevent deletion of the wrong webhook.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop ID that owns the webhook subscription. |
| `webhook_id` | string | Yes | Exact Printify webhook subscription ID to permanently delete. |
| `expected_host` | string | Yes | Expected callback hostname, such as hooks.example.com. Printify deletes the webhook only when this matches its configured callback host. |
| `confirm_delete` | boolean | Yes | Must be true to confirm permanent webhook deletion. This confirmation is validated locally and not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Blueprint

**Slug:** `PRINTIFY_GET_BLUEPRINT`

Get the full catalog record for one Printify product blueprint, including its description and images. Use SEARCH_BLUEPRINTS first when the blueprint ID is unknown.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `blueprint_id` | integer | Yes | Printify catalog blueprint ID returned by SEARCH_BLUEPRINTS or a provider lookup. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Order

**Slug:** `PRINTIFY_GET_ORDER`

Get complete details for one Printify order, including its recipient address, line items, status, shipping method, shipments, and timestamps. This call is read-only. All monetary amounts are integer minor currency units.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop ID that owns the order. |
| `order_id` | string | Yes | Printify order ID returned by LIST_ORDERS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Product

**Slug:** `PRINTIFY_GET_PRODUCT`

Get the complete Printify record for one product in a shop, including variants, print areas, images, visibility, and sales-channel properties.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop ID that owns the product. |
| `product_id` | string | Yes | Printify product ID returned by LIST_PRODUCTS or CREATE_PRODUCT. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Catalog Shipping Details

**Slug:** `PRINTIFY_GET_SHIPPING_DETAILS`

Get per-variant shipping costs and handling-time ranges for one advertised V2 shipping method. Monetary amounts are integer minor currency units, not decimal major units. Call LIST_SHIPPING_METHODS first and pass only a method it advertised for this blueprint and print provider pair.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `blueprint_id` | integer | Yes | Catalog blueprint ID. |
| `shipping_method` | string ("standard" | "priority" | "express" | "economy") | Yes | Method advertised by LIST_SHIPPING_METHODS for this exact blueprint and print provider pair. |
| `print_provider_id` | integer | Yes | Compatible print provider ID for the blueprint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Blueprint Print Providers

**Slug:** `PRINTIFY_LIST_BLUEPRINT_PRINT_PROVIDERS`

List print providers that can fulfill a specific Printify blueprint. Use a returned provider ID with variant and shipping tools before creating a product.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `blueprint_id` | integer | Yes | Catalog blueprint ID whose compatible print providers should be listed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Blueprint Variants

**Slug:** `PRINTIFY_LIST_BLUEPRINT_VARIANTS`

List purchasable variants and print placeholders for a blueprint and print provider. Variant IDs and placeholder dimensions are required inputs when configuring a product.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `blueprint_id` | integer | Yes | Catalog blueprint ID. |
| `print_provider_id` | integer | Yes | Compatible provider ID returned by LIST_BLUEPRINT_PRINT_PROVIDERS. |
| `include_out_of_stock` | boolean | No | Whether to include out-of-stock variants. Sent to Printify as integer 1 when true and 0 when false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Orders

**Slug:** `PRINTIFY_LIST_ORDERS`

Return one page of orders in a Printify shop, optionally filtered by provider status or exact SKU. This is read-only and does not submit, cancel, or send orders to production. All monetary amounts are integer minor currency units.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sku` | string | No | Optional exact SKU filter. |
| `limit` | integer | No | Maximum orders in this page (1-10). |
| `status` | string | No | Optional Printify order status filter; pass the provider status string exactly. |
| `shop_id` | integer | Yes | Shop ID returned by LIST_SHOPS. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Products

**Slug:** `PRINTIFY_LIST_PRODUCTS`

Return one page of products in a Printify shop. Use next_cursor to continue without automatically exhausting a potentially large shop catalog.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum products in this page (1-50). |
| `shop_id` | integer | Yes | Shop ID returned by LIST_SHOPS. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Catalog Shipping Methods

**Slug:** `PRINTIFY_LIST_SHIPPING_METHODS`

List the V2 shipping methods actually available for a Printify blueprint and print provider. Availability varies by pair, so call this before requesting method-specific shipping details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `blueprint_id` | integer | Yes | Catalog blueprint ID. |
| `print_provider_id` | integer | Yes | Compatible print provider ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shops

**Slug:** `PRINTIFY_LIST_SHOPS`

List shops available to the connected Printify merchant account. Use the returned shop IDs in product, order, and webhook workflows; a shop may be disconnected from a sales channel while remaining readable.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Uploaded Images

**Slug:** `PRINTIFY_LIST_UPLOADS`

Return one page of images in the connected merchant's Printify media library. Use image IDs and preview metadata when configuring product print areas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum uploaded images in this page (1-50). |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Webhooks

**Slug:** `PRINTIFY_LIST_WEBHOOKS`

List webhook subscriptions configured for a Printify shop. The live API returns a complete array, so this action does not expose pagination controls.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop ID whose webhook subscriptions should be listed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish Product Changes

**Slug:** `PRINTIFY_PUBLISH_PRODUCT`

Start asynchronous publication of one or more fields selected in fields_to_publish from Printify to the shop's connected sales channel. This can make product content externally visible but does not create an order or production charge. A successful response only confirms that Printify accepted the request; it does not prove that external publication completed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop whose connected sales channel should receive the product changes. |
| `product_id` | string | Yes | Product whose selected changes should be published. |
| `fields_to_publish` | array | Yes | One or more product fields to publish: title, description, images, variants, tags, key_features, or shipping_template. |
| `confirm_external_publish` | boolean | Yes | Must be true to acknowledge that the selected changes may become externally visible. This confirmation is not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Catalog Blueprints

**Slug:** `PRINTIFY_SEARCH_BLUEPRINTS`

Search Printify's product blueprint catalog by case-insensitive text in title, brand, or model. The upstream catalog is unpaginated, so this tool fetches it once and returns only bounded matching summaries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of matching blueprint summaries to return (1-50). This limit is applied locally and is not sent to Printify. |
| `query` | string | Yes | Text to match case-insensitively against blueprint titles, brands, and models. This filter is applied locally and is not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Simulate Webhook Event

**Slug:** `PRINTIFY_SIMULATE_WEBHOOK`

Ask Printify to send a simulated event to an existing webhook's external callback URL. This causes a real outbound request and may activate downstream automation, but does not create a Printify order or product. A successful response confirms dispatch acceptance only, not callback receipt or processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `payload` | object | No | Arbitrary JSON object to use as the simulated event resource. Do not include production secrets or personal data. |
| `shop_id` | integer | Yes | Shop that owns the webhook subscription. |
| `webhook_id` | string | Yes | Webhook subscription ID whose configured callback receives the simulation. |
| `confirm_external_delivery` | boolean | Yes | Must be true to acknowledge that Printify sends a real outbound request that may trigger downstream automation. Validated locally and not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark Product Unpublished

**Slug:** `PRINTIFY_UNPUBLISH_PRODUCT`

Notify Printify that a product has been unpublished from the connected sales channel. This irreversibly changes publication-state metadata but does not delete the Printify product. Use only after the product has actually been removed or unpublished on the sales channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shop_id` | integer | Yes | Shop ID associated with the connected sales channel. |
| `product_id` | string | Yes | Product ID whose publication state should be marked unpublished. |
| `confirm_unpublish` | boolean | Yes | Must be true to acknowledge the external publication-state change. Validated locally and not sent to Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Product Draft

**Slug:** `PRINTIFY_UPDATE_PRODUCT`

Update selected fields of an existing Printify product. This changes merchant product data but does not publish those changes to the connected sales channel. Read the product first and provide at least one field to change: title, description, safety_information, blueprint_id, print_provider_id, variants, or print_areas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Replacement merchant-facing product title. |
| `shop_id` | integer | Yes | Shop ID that owns the product. |
| `variants` | array | No | Variant updates. Each item identifies a catalog variant and supplies only the price and/or enabled state that should change. |
| `product_id` | string | Yes | Printify product ID to update. |
| `description` | string | No | Replacement product description; an empty string clears it. |
| `print_areas` | array | No | Complete replacement print-area configuration, including artwork placement for the selected variants. |
| `blueprint_id` | integer | No | Replacement blueprint ID. Update the provider, variants, and print areas consistently when changing it. |
| `print_provider_id` | integer | No | Replacement print provider ID compatible with the selected blueprint. |
| `safety_information` | string | No | Replacement product safety information; an empty string clears it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Webhook URL

**Slug:** `PRINTIFY_UPDATE_WEBHOOK`

Replace the callback URL of an existing Printify webhook subscription. This changes where future real event payloads are delivered; it does not change the subscribed topic or signing secret.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | New public HTTPS callback URL for future webhook events. |
| `shop_id` | integer | Yes | Shop that owns the webhook. |
| `webhook_id` | string | Yes | Webhook subscription ID returned by LIST_WEBHOOKS or CREATE_WEBHOOK. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload Image

**Slug:** `PRINTIFY_UPLOAD_IMAGE`

Add an image to the connected merchant's Printify media library from either a public HTTP(S) URL or base64 content. This creates persistent merchant media but does not create or publish a product or incur production charges.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Publicly retrievable HTTP or HTTPS image URL. Provide exactly one of url or contents. |
| `contents` | string | No | Base64-encoded image bytes. Provide exactly one of contents or url; prefer URL upload for files larger than 5 MB. |
| `file_name` | string | Yes | File name, including an appropriate image extension, to store in Printify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
