# Printify integration

> Print-on-demand platform API: browse the product catalog, create and publish products, upload artwork, submit and track orders, and receive webhooks for shop events.

- Authentication: apiKey

## Tools (51)

- **Archive Upload**: Archives an image in the media library.
- **Calculate Order Shipping**: Calculates shipping cost per method for a prospective order. Does not create an order. Costs in cents.
- **Cancel Order**: Cancels an unpaid order. Accepted only while the order is `on-hold` or `payment-not-received`.
- **Change Order Address**: Updates the shipping address directly. Returns 422 if the order can no longer be updated directly (no support-request fallback).
- **Create Personalization Configuration**: Configures personalization for a product variant before ordering. Pass the returned strategy and instructions, unchanged, in an order line item's `personalisation`. 503 when the personalization service is down.
- **Create Product**: Creates a product from a blueprint and print provider. Images must pass DPI validation (a low-quality image returns 400 with code 8203). For embroidery, pick a position and variant that support it (see variants endpoint).
- **Create Webhook**: Subscribes a URL to an event. Printify POSTs `{id, type, created_at, resource: {id, type, data}}` and expects 200; after 3 failed retries (4xx/5xx) the webhook is blocked for 1 hour. With a `secret`, each request carries `X-Pfy-Signature: sha256=<HMAC-SHA256 hex of the body>`.
- **Delete Product**: Deletes a product from the shop.
- **Delete Webhook**: Deletes a webhook, only if the host query matches the webhook's URL host.
- **Disconnect Shop**: Disconnects the shop from the Printify account. The shop then reports `sales_channel: disconnected`.
- **Get Blueprint**: Returns one blueprint, including key features and care instructions that the list omits.
- **Get Blueprint Shipping Info**: Returns v1 handling time and flat shipping costs for all variants of a blueprint from one print provider. Costs are in cents.
- **Get Blueprint Size Guide**: Returns the blueprint size guide, limited to sizes actually available. Both arrays are empty when the blueprint has no size guide.
- **Get Economy Shipping Costs (V2)**: Returns economy shipping handling time and costs for all variants of a blueprint from one print provider. The economy list exists only in V2. Catalog V2 (JSON:API shape). Costs are in cents.
- **Get Express Shipping Costs (V2)**: Returns express shipping handling time and costs for all variants of a blueprint from one print provider. Catalog V2 (JSON:API shape). Costs are in cents.
- **Get Order**: Returns one order with line items, shipments and totals.
- **Get Order Support Request**: Returns one support request for an order. 404 when not found.
- **Get Personalization Preview Task**: 404 when the task does not exist; 403 when previews are not enabled for the shop.
- **Get Print Provider**: Returns one print provider and the blueprints it offers.
- **Get Priority Shipping Costs (V2)**: Returns priority shipping handling time and costs for all variants of a blueprint from one print provider. Catalog V2 (JSON:API shape). Costs are in cents.
- **Get Product**: Returns one product with variants, print areas and mock-up images.
- **Get Product GPSR Information**: Returns the product's GPSR (EU General Product Safety Regulation) safety information.
- **Get Standard Shipping Costs (V2)**: Returns standard shipping handling time and costs for all variants of a blueprint from one print provider. Catalog V2 (JSON:API shape). Costs are in cents.
- **Get Upload**: Returns one uploaded image.
- **List Blueprints**: Lists all catalog blueprints (blank products). Catalog endpoints share a separate limit of 100 requests per minute.
- **List Blueprint Shipping Methods (V2)**: Lists the shipping methods available for a blueprint from one print provider, with links to each method. Catalog V2 (JSON:API shape). Costs are in cents.
- **List Blueprint Variants for Print Provider**: Lists the variants (color/size combinations) of a blueprint for one print provider, with available print positions. Use these ids and positions when creating products.
- **List Orders**: Lists orders in a shop.
- **List Order Support Requests**: Lists support requests (refunds, reprints, address changes, other cases) for an order.
- **List Print Providers**: Lists all print providers in the catalog.
- **List Print Providers for Blueprint**: Lists the print providers that fulfill a blueprint.
- **List Product Personalization Options**: Lists the personalization fields configured for a product.
- **List Products**: Lists the products in a shop.
- **List Shops**: Lists the shops in the Printify account. Every other shop-scoped call needs one of these ids.
- **List Uploads**: Lists images in the media library.
- **List Webhooks**: Lists the shop's webhooks.
- **Notify Product Unpublished**: Tells Printify the product was unpublished from the sales channel.
- **Publish Product**: Locks the product (limit 200 publish requests per 30 minutes) and fires the `product:publish:started` event. It publishes nothing itself unless the shop is connected to a supported sales channel; a custom store must react to the event, then call publishing_succeeded or publishing_failed to unlock.
- **Request Order Address Change**: Tries to update the address directly; if the order is past that point, creates a support request and returns 201.
- **Request Order Refund**: Creates a refund support request for an order. Returns 201.
- **Request Order Reprint**: Creates a reprint support request for an order. Returns 201.
- **Request Personalization Preview**: Queues an async task that renders mockups for a personalization input. Poll the task or subscribe to `personalization-preview-task:processed`. 403 when previews are not enabled for the shop; 422 for an unknown `field_id` or `variant_id`.
- **Send Order to Production**: COSTS MONEY: sends an existing order to production, committing the print run. Not needed when the shop auto-approves orders.
- **Set Product Publishing Failed**: Unlocks the product after a failed publish.
- **Set Product Publishing Succeeded**: Unlocks the product after a publish and stores the sales-channel references in the product's `external` property.
- **Simulate Webhook**: Sends a test event to the webhook URL. The request body is returned in the event's `resource` property.
- **Submit Express Order**: COSTS MONEY: submits an order for Printify Express delivery and charges the merchant. Existing products only. Splits into an express order (all eligible items) and an ordinary order (the rest) when items are mixed. `address_to.email` and `address_to.phone` are required for eligibility.
- **Submit Order**: COSTS MONEY: creates an order that Printify charges to the merchant, and new shops auto-approve orders (24 hours by default), sending them to production without a Send to Production call. Set the shop's order approval to Manual to control this. A duplicate `external_id` returns 409 (code 8503) with
- **Update Product**: Updates a product partially or whole. When updating variants, all variants must be present in the request. Locked (publishing) products cannot be updated.
- **Update Webhook**: Changes a webhook's callback URL. The topic cannot be changed.
- **Upload Image**: Adds an image to the media library by URL or base64 contents. Prefer URL for files over 5 MB (base64 uploads over 5 MB are planned to be dropped). 400 for download errors, oversized files or unsupported file formats.

Connect Printify in General Input: https://www.generalinput.com/apps/printify