API & MCP documentation
Custom printed merchandise: design, mockups, and a live quote, then Printify after you pay.
Demo mode is fully stubbed and never contacts Printify. test/live reads live Printify costs, shows mockups for review, and sends the order to production only after Stripe reports payment_status paid. You must own or be licensed for any artwork you upload.
Connecting
- MCP endpoint
https://api.muse.telep.io/mcp/print-merch— streamable HTTP, JSON-RPC 2.0. Methods:initialize,tools/list,tools/call.- REST base
https://api.muse.telep.io/v1/print-merch- OpenAPI
https://api.muse.telep.io/v1/print-merch/openapi.json— exact request/response shapes for every REST route.- Auth
Authorization: Bearer <api-key>on every call. Calls are scoped to the key.
MCP tools
check_credentials
Validate PrintMerch credentials. Demo mode skips Printify. test/live reads the shop and catalog and fails closed unless order approval is manual. Never creates a product.
Takes no parameters.
list_print_products
List Printify catalog products. Read-only. Pass blueprint to include providers and from_price_cents. Omitting blueprint does not fan out a price call per provider. Demo returns a labeled fixture and does not call Printify.
| Parameter | Type | Required | Description |
|---|---|---|---|
blueprint | integer | no | Printify blueprint id. |
get_print_product
Read one blueprint and print provider: variants, live prices when Printify returns them, print areas, and shipping estimates. Does not create a product.
| Parameter | Type | Required | Description |
|---|---|---|---|
blueprint_id | integer | yes | — |
print_provider_id | integer | yes | — |
create_mockup
Generate mockup image URLs for human review. test/live uploads artwork and creates a Printify product. It never submits an order to production. Demo returns a stub URL and does not call Printify.
| Parameter | Type | Required | Description |
|---|---|---|---|
blueprint_id | integer | yes | — |
print_provider_id | integer | yes | — |
variant_id | integer | yes | — |
artwork_url | string | yes | — |
place_merch_order
Create one Stripe Checkout session for a draft. A second call for the same draft is a conflict and does not create another session. Does not submit the order to Printify production.
| Parameter | Type | Required | Description |
|---|---|---|---|
draft_id | string | yes | — |
get_merch_order_status
Read a PrintMerch order you created with this API key.
| Parameter | Type | Required | Description |
|---|---|---|---|
order_id | string | yes | — |
cancel_merch_order
Cancel an order only while Printify still has it on-hold or payment-not-received. Later statuses cannot be canceled here.
| Parameter | Type | Required | Description |
|---|---|---|---|
order_id | string | yes | — |
create_merch_draft
Create a PrintMerch draft: product, artwork, quantity, and recipient. Returns draft_id, a quote (base + shipping + markup), and mockup URLs. test/live creates a Printify product for those mockups and never sends it to production. You must set artwork_rights_attested to true. Demo mode does not call Printify.
| Parameter | Type | Required | Description |
|---|---|---|---|
blueprint_id | integer | yes | — |
print_provider_id | integer | yes | — |
variant_id | integer | yes | — |
artwork_url | string | yes | https URL of artwork you own or are licensed to print. |
quantity | integer | yes | 1–50. |
recipient | object | yes | — |
artwork_rights_attested | boolean | yes | Must be true. You attest that you own or are licensed for this artwork. |
list_merch_orders
List PrintMerch orders created with this API key.
Takes no parameters.
Example: list tools over MCP
curl -X POST https://api.muse.telep.io/mcp/print-merch -H "Authorization: Bearer $TELEP_API_KEY" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'REST example
Create via POST https://api.muse.telep.io/v1/print-merch/merch_orders:
curl -X POST https://api.muse.telep.io/v1/print-merch/merch_orders -H "Authorization: Bearer $TELEP_API_KEY" -H "Content-Type: application/json" -d '{"blueprint_id":68,"print_provider_id":9,"variant_id":184,"artwork_url":"https://example.com/art.png","quantity":1,"artwork_rights_attested":true,"recipient":{"first_name":"Ada","last_name":"Lovelace","email":"ada@example.com","phone":"+15555550100","country":"US","region":"OH","address1":"1 Main","city":"Cleveland","zip":"44113"}}'Every REST route is described exactly in the OpenAPI document.
Demo status
Demo mode is fully stubbed and never contacts Printify. test/live reads live Printify costs, shows mockups for review, and sends the order to production only after Stripe reports payment_status paid. You must own or be licensed for any artwork you upload.
Pricing: Live Printify base + shipping + 25% markup (configurable). Demo uses a labeled fixture and does not bill. Demo mode does not bill. test and live charge the quoted total through Stripe, and only a paid webhook submits the order to Printify.
- Pricing formula: customer total = live Printify base cost + live shipping cost + configured markup. The default markup is 25% (2500 basis points) of base plus shipping. Prices are read per order and are not hardcoded. Printify Premium is optional and is not required for this formula.
- Production timing: the Printify shop must use Manual order approval. Shops otherwise auto-send new orders to production after 24 hours. test/live refuses to boot unless the shop reports manual approval. send_to_production runs only after Stripe payment_status is paid.
- White-label shipping: Printify is not asked to email the recipient a shipping notification. Telep IO LLC is the merchant of record. Production time varies by print provider.
- Cancellation: Printify accepts a cancel only while the order is on-hold or payment-not-received.
- Artwork-rights attestation: you must set artwork_rights_attested to true before a draft can be checked out. You need to own or be licensed for every uploaded design. API-created products skip Printify's standard quality check, so review the mockups before paying.
- Printify attribution: printing and shipping are provided by Printify under its API terms. Charging for the application is allowed (API Terms §E.4). Reselling access to the Printify API is not. Printify has no direct contract with connector users (API Terms §H.2).
Related
- PrintMerch overview — https://muse.telep.io/connectors/print-merch
- Privacy policy
- Terms of service