{"openapi":"3.1.0","info":{"title":"YourBrand Public API","version":"1.0.0","description":"Read and update your YourBrand orders, customizations, campaigns, products and assets. Send your API key as \"Authorization: Bearer <key>\". Each key has abilities: orders:read, orders:write, customizations:read, campaigns:read, campaigns:write, products:read, assets:read, assets:write, mcp:access. Lists are cursor pages; errors are { message } (422 adds errors)."},"servers":[{"url":"https://api.vincomizer.com/openapi/v1"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Orders"},{"name":"Customizations"},{"name":"Campaigns"},{"name":"Products"},{"name":"Assets"},{"name":"Health"}],"paths":{"/health":{"get":{"operationId":"getHealth","summary":"Health check","description":"Is the API up? No key needed. No key needed.","tags":["Health"],"security":[],"parameters":[],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/version":{"get":{"operationId":"getVersion","summary":"API version","description":"The API’s version. No key needed. No key needed.","tags":["Health"],"security":[],"parameters":[],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}}}}},"/orders":{"get":{"operationId":"getOrders","summary":"List orders","description":"The store’s orders, newest first, with their line items. Real orders only unless test=1. Key ability: orders:read.","tags":["Orders"],"x-abilities":["orders:read"],"parameters":[{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","total_price","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}},{"name":"start_date","in":"query","required":false,"description":"From this date and time (ISO 8601, like 2026-11-01T00:00:00Z). At most 60 days back; left out, it is 60 days ago.","schema":{"type":"string","format":"date-time"}},{"name":"end_date","in":"query","required":false,"description":"Up to this date and time (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"description":"Personalization status of the order.","schema":{"type":"string","enum":["created","email_sent","partial_customized","customized"]}},{"name":"fulfillment_status","in":"query","required":false,"description":"Fulfillment status.","schema":{"type":"string","enum":["fulfilled","partial","cancelled","not_eligible","restocked"]}},{"name":"financial_status","in":"query","required":false,"description":"Payment status.","schema":{"type":"string","enum":["pending","authorized","partially_paid","paid","partially_refunded","refunded","voided","cancelled"]}},{"name":"test","in":"query","required":false,"description":"Test orders: \"1\" lists only test orders, \"0\" (the default) only real ones.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"by_teeinblue","in":"query","required":false,"description":"Orders fulfilled by the platform’s own print network (\"1\") or not (\"0\"). This store has none.","schema":{"type":"string","enum":["0","1"]}},{"name":"platform","in":"query","required":false,"description":"Only orders from this platform.","schema":{"type":"string","enum":["etsy","shopify","woocommerce"]}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicOrder"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/orders/etsy":{"get":{"operationId":"getOrdersEtsy","summary":"List Etsy orders","description":"Orders from an Etsy shop. Empty unless the open store is an Etsy shop. Key ability: orders:read.","tags":["Orders"],"x-abilities":["orders:read"],"parameters":[{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","total_price","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}},{"name":"start_date","in":"query","required":false,"description":"From this date and time (ISO 8601, like 2026-11-01T00:00:00Z). At most 60 days back; left out, it is 60 days ago.","schema":{"type":"string","format":"date-time"}},{"name":"end_date","in":"query","required":false,"description":"Up to this date and time (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"description":"Personalization status of the order.","schema":{"type":"string","enum":["created","email_sent","partial_customized","customized"]}},{"name":"fulfillment_status","in":"query","required":false,"description":"Fulfillment status.","schema":{"type":"string","enum":["fulfilled","partial","cancelled","not_eligible","restocked"]}},{"name":"financial_status","in":"query","required":false,"description":"Payment status.","schema":{"type":"string","enum":["pending","authorized","partially_paid","paid","partially_refunded","refunded","voided","cancelled"]}},{"name":"test","in":"query","required":false,"description":"Test orders: \"1\" lists only test orders, \"0\" (the default) only real ones.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"by_teeinblue","in":"query","required":false,"description":"Orders fulfilled by the platform’s own print network (\"1\") or not (\"0\"). This store has none.","schema":{"type":"string","enum":["0","1"]}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicOrder"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/orders/etsy/batch-update":{"patch":{"operationId":"patchOrdersEtsyBatchUpdate","summary":"Batch update Etsy orders","description":"Updates several Etsy orders at once. The body is a list: each entry has etsy_id plus the fields to change. Key ability: orders:write.","tags":["Orders"],"x-abilities":["orders:write"],"parameters":[],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BatchResult"}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"description":"A list of { etsy_id, fulfillment_shipping_method, note, email, contact_email, shipping_address }."}}}}}},"/orders/etsy/{etsyId}":{"get":{"operationId":"getOrdersEtsyBy_etsyId","summary":"Get an Etsy order","description":"Key ability: orders:read.","tags":["Orders"],"x-abilities":["orders:read"],"parameters":[{"name":"etsyId","in":"path","required":true,"description":"The Etsy order id.","schema":{"type":"string"}},{"name":"include_customization","in":"query","required":false,"description":"Add each line item’s customization (what the customer chose, uploads and designs).","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOrder"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchOrdersEtsyBy_etsyId","summary":"Update an Etsy order","description":"Key ability: orders:write.","tags":["Orders"],"x-abilities":["orders:write"],"parameters":[{"name":"etsyId","in":"path","required":true,"description":"The Etsy order id.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOrder"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"fulfillment_shipping_method":{"type":"string","description":"The shipping method to fulfil with."},"note":{"type":"string","description":"A note on the order."},"email":{"type":"string","description":"The buyer’s email."},"contact_email":{"type":"string","description":"Where to send order updates."},"shipping_address":{"type":"object","description":"The address to ship to: first_name, last_name, company, phone, address1, address2, city, province, province_code, country, country_code, zip."}}}}}}}},"/orders/{orderId}":{"get":{"operationId":"getOrdersBy_orderId","summary":"Get an order","description":"One order by its id, or by its number (1048 or %231048). Key ability: orders:read.","tags":["Orders"],"x-abilities":["orders:read"],"parameters":[{"name":"orderId","in":"path","required":true,"description":"The order’s id or number.","schema":{"type":"string"}},{"name":"include_customization","in":"query","required":false,"description":"Add each line item’s customization (what the customer chose, uploads and designs).","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOrder"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stores/{platformDomain}/orders":{"get":{"operationId":"getStoresBy_platformDomainOrders","summary":"List one store’s orders","description":"The orders of the store with this address (like my-shop.myshopify.com). Key ability: orders:read.","tags":["Orders"],"x-abilities":["orders:read"],"parameters":[{"name":"platformDomain","in":"path","required":true,"description":"The store’s address.","schema":{"type":"string"}},{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","total_price","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}},{"name":"start_date","in":"query","required":false,"description":"From this date and time (ISO 8601, like 2026-11-01T00:00:00Z). At most 60 days back; left out, it is 60 days ago.","schema":{"type":"string","format":"date-time"}},{"name":"end_date","in":"query","required":false,"description":"Up to this date and time (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"description":"Personalization status of the order.","schema":{"type":"string","enum":["created","email_sent","partial_customized","customized"]}},{"name":"fulfillment_status","in":"query","required":false,"description":"Fulfillment status.","schema":{"type":"string","enum":["fulfilled","partial","cancelled","not_eligible","restocked"]}},{"name":"financial_status","in":"query","required":false,"description":"Payment status.","schema":{"type":"string","enum":["pending","authorized","partially_paid","paid","partially_refunded","refunded","voided","cancelled"]}},{"name":"test","in":"query","required":false,"description":"Test orders: \"1\" lists only test orders, \"0\" (the default) only real ones.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"by_teeinblue","in":"query","required":false,"description":"Orders fulfilled by the platform’s own print network (\"1\") or not (\"0\"). This store has none.","schema":{"type":"string","enum":["0","1"]}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicOrder"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/order-item-artworks/{orderItemArtworkId}/design":{"post":{"operationId":"postOrderItemArtworksBy_orderItemArtworkIdDesign","summary":"Replace an order item’s design","description":"Gives an order item a new print file. Send the file’s public address as url. The item must not be printed yet. Key ability: orders:write.","tags":["Orders"],"x-abilities":["orders:write"],"parameters":[{"name":"orderItemArtworkId","in":"path","required":true,"description":"The print area id: line_items[].print_areas[].id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrintArea"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"A public http(s) address of the new design (PNG or JPG)."},"file":{"type":"string","format":"binary","description":"Or the file itself (multipart). Needs the server; send url here."}}}}}}}},"/campaigns/product-base":{"get":{"operationId":"getCampaignsProductBase","summary":"List campaigns by product base","description":"Key ability: campaigns:read.","tags":["Campaigns"],"x-abilities":["campaigns:read"],"parameters":[{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductBaseCampaign"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campaigns/product-base/{id}":{"get":{"operationId":"getCampaignsProductBaseBy_id","summary":"Get a campaign by product base","description":"Key ability: campaigns:read.","tags":["Campaigns"],"x-abilities":["campaigns:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The campaign id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductBaseCampaign"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchCampaignsProductBaseBy_id","summary":"Update a campaign by product base","description":"Changes only the fields sent; empty or null fields are left as they are. Key ability: campaigns:write.","tags":["Campaigns"],"x-abilities":["campaigns:write"],"parameters":[{"name":"id","in":"path","required":true,"description":"The campaign id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductBaseCampaign"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The campaign’s name."},"product_tags":{"type":"string","description":"The campaign’s product tags."},"vendor":{"type":"string","description":"The campaign’s vendor."},"product_type":{"type":"string","description":"The campaign’s product type."},"product_display_type":{"type":"string","description":"The campaign’s product display type."},"label_available_product":{"type":"string","description":"The campaign’s label available product."},"internal_tags":{"type":"string","description":"Tags only your team sees."}}}}}}}},"/campaigns/platform-base":{"get":{"operationId":"getCampaignsPlatformBase","summary":"List campaigns by platform product","description":"Your products (each linked to an artwork) on the store’s platform. Key ability: campaigns:read.","tags":["Campaigns"],"x-abilities":["campaigns:read"],"parameters":[{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}},{"name":"platforms[]","in":"query","required":false,"description":"Only these platforms (send platforms[]=shopify&platforms[]=etsy).","schema":{"type":"array","items":{"type":"string","enum":["etsy","shopify","boundless"]}}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformCampaign"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campaigns/platform-base/{id}":{"get":{"operationId":"getCampaignsPlatformBaseBy_id","summary":"Get a campaign by platform product","description":"Key ability: campaigns:read.","tags":["Campaigns"],"x-abilities":["campaigns:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The campaign id, or the product’s own ID (prd_…, on its page in the portal).","schema":{"type":"string"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformCampaign"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchCampaignsPlatformBaseBy_id","summary":"Update a campaign by platform product","description":"Key ability: campaigns:write.","tags":["Campaigns"],"x-abilities":["campaigns:write"],"parameters":[{"name":"id","in":"path","required":true,"description":"The campaign id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformCampaign"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The product’s name."},"internal_tags":{"type":"string","description":"Tags only your team sees."}}}}}}}},"/campaigns/{campaignId}":{"get":{"operationId":"getCampaignsBy_campaignId","summary":"Get a campaign by UUID","description":"A campaign by product by its uuid, checked against the store it belongs to. Key ability: campaigns:read.","tags":["Campaigns"],"x-abilities":["campaigns:read"],"parameters":[{"name":"campaignId","in":"path","required":true,"description":"The campaign’s uuid.","schema":{"type":"string"}},{"name":"shop","in":"query","required":true,"description":"The store’s address, like my-shop.myshopify.com.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformCampaign"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/customizations":{"get":{"operationId":"getCustomizations","summary":"List customizations","description":"What customers personalized, newest first. Add include_data=1 for their choices. Key ability: customizations:read or orders:read.","tags":["Customizations"],"x-abilities":["customizations:read","orders:read"],"parameters":[{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}},{"name":"start_date","in":"query","required":false,"description":"From this date and time (ISO 8601, like 2026-11-01T00:00:00Z). At most 60 days back; left out, it is 60 days ago.","schema":{"type":"string","format":"date-time"}},{"name":"end_date","in":"query","required":false,"description":"Up to this date and time (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"instance_ids[]","in":"query","required":false,"description":"Only these stores (this API answers for the open store).","schema":{"type":"array","items":{"type":"integer"}}},{"name":"campaign_ids[]","in":"query","required":false,"description":"Only customizations of these campaigns.","schema":{"type":"array","items":{"type":"integer"}}},{"name":"platform_product_ids[]","in":"query","required":false,"description":"Only customizations of these products.","schema":{"type":"array","items":{"type":"integer"}}},{"name":"include_data","in":"query","required":false,"description":"Add what the customer chose (data).","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Customization"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/customizations/{uuid}":{"get":{"operationId":"getCustomizationsBy_uuid","summary":"Get a customization","description":"Key ability: customizations:read or orders:read.","tags":["Customizations"],"x-abilities":["customizations:read","orders:read"],"parameters":[{"name":"uuid","in":"path","required":true,"description":"The customization’s uuid (or id).","schema":{"type":"string"}},{"name":"include_designs","in":"query","required":false,"description":"Add the print designs.","schema":{"type":"boolean","default":true}},{"name":"include_data","in":"query","required":false,"description":"Add what the customer chose.","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customization"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/products":{"get":{"operationId":"getProducts","summary":"List products","description":"Your product bases, with their variants (every size and colour) and print areas. Key ability: products:read.","tags":["Products"],"x-abilities":["products:read"],"parameters":[{"name":"s","in":"query","required":false,"description":"Search by name (orders: by order name, like #1048).","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Sort by.","schema":{"type":"string","enum":["created_at","updated_at"],"default":"created_at"}},{"name":"sort_type","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–500).","schema":{"type":"integer","default":25,"minimum":1,"maximum":500}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before. Leave it out for the first page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/products/{id}":{"get":{"operationId":"getProductsBy_id","summary":"Get a product","description":"Key ability: products:read.","tags":["Products"],"x-abilities":["products:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The product id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/clipart-categories":{"get":{"operationId":"getClipartCategories","summary":"List clipart categories","description":"Clipart categories and sub-categories. With search, pages are numbered (page) instead of cursors. Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"name","in":"query","required":false,"description":"Exact name (case-sensitive).","schema":{"type":"string"}},{"name":"search","in":"query","required":false,"description":"Part of the name. Can’t be combined with name.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Clipart or vector categories.","schema":{"type":"string","enum":["clipart","vector"]}},{"name":"parent_id","in":"query","required":false,"description":"Only sub-categories of this category; 0 for top-level ones.","schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number, with search.","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–100).","schema":{"type":"integer","default":25,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ClipartCategory"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postClipartCategories","summary":"Create a clipart category","description":"Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[],"responses":{"201":{"description":"Created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipartCategory"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"The category’s name."},"type":{"type":"string","description":"clipart or vector."},"description":{"type":"string","description":"A note about it."},"parent_id":{"type":"integer","description":"Make it a sub-category of this category."},"on_duplicate":{"type":"string","description":"create (default) makes another with the same name; skip returns the existing one (200)."}}}}}}}},"/clipart-categories/{id}":{"get":{"operationId":"getClipartCategoriesBy_id","summary":"Get a clipart category","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The category id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipartCategory"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/clipart-category-bulk-uploads":{"post":{"operationId":"postClipartCategoryBulkUploads","summary":"Start a clipart bulk upload (zip)","description":"Pre-signed zip uploads need the server. In the portal, use Upload zip on a clipart category. Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[],"responses":{"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"Needs the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["filename","filesize"],"properties":{"filename":{"type":"string","description":"The zip’s name."},"filesize":{"type":"integer","description":"Its size in bytes."}}}}}}}},"/clipart-category-bulk-uploads/{id}":{"get":{"operationId":"getClipartCategoryBulkUploadsBy_id","summary":"Get a clipart bulk upload","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The bulk upload id.","schema":{"type":"integer"}}],"responses":{"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"Needs the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/clipart-category-bulk-uploads/{id}/extract":{"post":{"operationId":"postClipartCategoryBulkUploadsBy_idExtract","summary":"Extract an uploaded zip","description":"Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[{"name":"id","in":"path","required":true,"description":"The bulk upload id.","schema":{"type":"integer"}}],"responses":{"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"Needs the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/cliparts":{"get":{"operationId":"getCliparts","summary":"List cliparts","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"category_id","in":"query","required":false,"description":"Only this category’s cliparts.","schema":{"type":"integer"}},{"name":"name","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before.","schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–100).","schema":{"type":"integer","default":25,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Clipart"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postCliparts","summary":"Add a clipart","description":"Adds a picture to a clipart category by its public address. A category holds up to 300 cliparts. Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[],"responses":{"201":{"description":"Created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Clipart"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["category_id","url"],"properties":{"category_id":{"type":"integer","description":"The category to add it to."},"url":{"type":"string","format":"uri","description":"A public http(s) address of the picture (PNG, JPG, GIF, WebP or SVG)."},"name":{"type":"string","description":"Its name; left out, the file’s name."},"on_duplicate":{"type":"string","description":"create (default), skip (return the one with this name, 200) or replace (swap its picture, 200)."},"upload_id":{"type":"string","description":"Instead of url, after a pre-signed upload. Needs the server."}}}}}}}},"/cliparts/{id}":{"get":{"operationId":"getClipartsBy_id","summary":"Get a clipart","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The clipart id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Clipart"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteClipartsBy_id","summary":"Delete a clipart","description":"Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[{"name":"id","in":"path","required":true,"description":"The clipart id.","schema":{"type":"integer"}}],"responses":{"204":{"description":"Deleted. No body."},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/layer-image-categories":{"get":{"operationId":"getLayerImageCategories","summary":"List layer image categories","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"name","in":"query","required":false,"description":"Exact name (case-sensitive).","schema":{"type":"string"}},{"name":"search","in":"query","required":false,"description":"Part of the name.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Category type.","schema":{"type":"string","enum":["clipart","vector","gpx"]}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number, with search.","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–100).","schema":{"type":"integer","default":25,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LayerImageCategory"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postLayerImageCategories","summary":"Create a layer image category","description":"Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[],"responses":{"201":{"description":"Created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayerImageCategory"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The category’s name."},"description":{"type":"string","description":"A note about it."},"type":{"type":"string","description":"clipart (default), vector or gpx."},"on_duplicate":{"type":"string","description":"create (default) or skip (return the existing one, 200)."}}}}}}}},"/layer-image-categories/{id}":{"get":{"operationId":"getLayerImageCategoriesBy_id","summary":"Get a layer image category","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The category id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayerImageCategory"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/layer-images":{"get":{"operationId":"getLayerImages","summary":"List layer images","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"category_id","in":"query","required":false,"description":"Only this category’s images.","schema":{"type":"integer"}},{"name":"name","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"search","in":"query","required":false,"description":"Part of the name.","schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"Where the next page starts: meta.next_cursor from the page before.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number, with search.","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","required":false,"description":"How many per page (1–100).","schema":{"type":"integer","default":25,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LayerImage"}},"links":{"$ref":"#/components/schemas/CursorPageLinks"},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}}}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postLayerImages","summary":"Add a layer image","description":"Adds a picture to Assets › Vectors (or one of your layer image categories) by its public address. Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[],"responses":{"201":{"description":"Created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayerImage"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","category_id","artwork_width","url"],"properties":{"name":{"type":"string","description":"Its name."},"category_id":{"type":"integer","description":"The category to add it to."},"artwork_width":{"type":"integer","description":"How wide it is drawn in the artwork, in pixels (1 or more)."},"url":{"type":"string","format":"uri","description":"A public http(s) address of the picture."},"on_duplicate":{"type":"string","description":"create (default) or skip (return the one with this name, 200)."},"upload_id":{"type":"string","description":"Instead of url, after a pre-signed upload. Needs the server."}}}}}}}},"/layer-images/{id}":{"get":{"operationId":"getLayerImagesBy_id","summary":"Get a layer image","description":"Key ability: assets:read.","tags":["Assets"],"x-abilities":["assets:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"The layer image id.","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayerImage"}}}},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteLayerImagesBy_id","summary":"Delete a layer image","description":"Not while an artwork uses it (400). Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[{"name":"id","in":"path","required":true,"description":"The layer image id.","schema":{"type":"integer"}}],"responses":{"204":{"description":"Deleted. No body."},"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads":{"post":{"operationId":"postUploads","summary":"Create a pre-signed upload","description":"Gives an address to upload a file to, for upload_id. Needs the server; send url to the create endpoints instead. Key ability: assets:write.","tags":["Assets"],"x-abilities":["assets:write"],"parameters":[],"responses":{"401":{"description":"No key, an unknown key or an expired key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the ability this needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something sent is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Too many requests: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"Needs the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["filename","filesize"],"properties":{"filename":{"type":"string","description":".png, .jpg, .jpeg, .gif or .webp"},"filesize":{"type":"integer","description":"Bytes, up to 64 MB."},"filewidth":{"type":"integer","description":"Pixels."},"fileheight":{"type":"integer","description":"Pixels."}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Address":{"type":"object","properties":{"first_name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"name":{"type":["string","null"]},"company":{"type":["string","null"]},"phone":{"type":["string","null"]},"address1":{"type":["string","null"]},"address2":{"type":["string","null"]},"city":{"type":["string","null"]},"province":{"type":["string","null"]},"province_code":{"type":["string","null"]},"country":{"type":["string","null"]},"country_code":{"type":["string","null"]},"zip":{"type":["string","null"]}}},"Customer":{"type":"object","properties":{"id":{"type":"integer"},"platform_linked_id":{"type":["string","null"]},"first_name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"}}},"PrintArea":{"type":"object","properties":{"id":{"type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"updated_at":{"type":"string","format":"date-time"}}},"PublicOrderItem":{"type":"object","properties":{"id":{"type":"integer"},"campaign_id":{"type":["integer","null"]},"customization_id":{"type":["integer","null"]},"title":{"type":"string"},"fulfillment_status":{"type":["string","null"]},"quantity":{"type":"integer"},"is_fulfilled":{"type":"boolean"},"platform_sku":{"type":["string","null"]},"sku":{"type":["string","null"]},"by_teeinblue":{"type":"boolean"},"status":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"properties":{"type":"object"},"tracking_number":{"type":["string","null"]},"tracking_url":{"type":["string","null"],"format":"uri"},"shipment_carrier":{"type":["string","null"]},"print_areas":{"type":"array","items":{"$ref":"#/components/schemas/PrintArea"}},"variant":{"type":["object","null"]},"fulfiller":{"type":["object","null"]},"submit_customization_url":{"type":["string","null"],"format":"uri"},"customization":{"oneOf":[{"$ref":"#/components/schemas/Customization"},{"type":"null"}]}}},"PublicOrder":{"type":"object","properties":{"id":{"type":"integer"},"order_name":{"type":"string"},"platform_order_id":{"type":"string"},"test_order":{"type":"boolean"},"total_price":{"type":"number"},"currency":{"type":"string"},"fulfillment_status":{"type":["string","null"]},"financial_status":{"type":"string"},"status":{"type":"string"},"tib_status":{"type":"string"},"email":{"type":["string","null"]},"contact_email":{"type":["string","null"]},"note":{"type":["string","null"]},"shipping_method":{"type":["string","null"]},"instance_name":{"type":"string"},"platform_domain":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"address":{"$ref":"#/components/schemas/Address"},"line_items":{"type":"array","items":{"$ref":"#/components/schemas/PublicOrderItem"}},"customer":{"oneOf":[{"$ref":"#/components/schemas/Customer"},{"type":"null"}]}}},"CustomerUpload":{"type":"object","properties":{"original_url":{"type":["string","null"],"format":"uri"},"master_url":{"type":["string","null"],"format":"uri"}}},"CustomizationDesign":{"type":"object","properties":{"id":{"type":"integer"},"key":{"type":"string"},"thumbnail":{"type":["string","null"],"format":"uri"},"url":{"type":["string","null"],"format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"error_message":{"type":["string","null"]},"is_processing":{"type":"boolean"}}},"Customization":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"data":{"type":"object"},"customer_uploads":{"type":"array","items":{"$ref":"#/components/schemas/CustomerUpload"}},"designs":{"type":"array","items":{"$ref":"#/components/schemas/CustomizationDesign"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Artwork":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":["string","null"]},"width":{"type":"integer"},"height":{"type":"integer"},"thumbnail":{"type":["string","null"],"format":"uri"},"status":{"type":"integer"},"position":{"type":"integer"},"platform_variants_id":{"type":"array","items":{"type":"integer"}}}},"PlatformMockup":{"type":"object","properties":{"id":{"type":"integer"},"width":{"type":"integer"},"height":{"type":"integer"},"platform_variants_id":{"type":"array","items":{"type":"integer"}},"preview_url":{"type":["string","null"],"format":"uri"},"preview_thumbnail":{"type":["string","null"],"format":"uri"}}},"PlatformCampaign":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"code":{"type":"string"},"instance_id":{"type":"integer"},"domain":{"type":"string"},"platform_domain":{"type":"string"},"platform":{"type":"string"},"platform_linked_id":{"type":["integer","null"]},"name":{"type":"string"},"internal_tags":{"type":["string","null"]},"preview_url":{"type":["string","null"],"format":"uri"},"preview_thumbnail":{"type":["string","null"],"format":"uri"},"version":{"type":"integer"},"enable_artwork_variant_assignment":{"type":"boolean"},"published_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"artworks":{"type":"array","items":{"$ref":"#/components/schemas/Artwork"}},"mockups":{"type":"array","items":{"$ref":"#/components/schemas/PlatformMockup"}}}},"ProductBaseMockup":{"type":"object","properties":{"id":{"type":"integer"},"width":{"type":"integer"},"height":{"type":"integer"},"position":{"type":"integer"},"preview_url":{"type":["string","null"],"format":"uri"},"preview_thumbnail":{"type":["string","null"],"format":"uri"}}},"ProductBaseCampaign":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"product_tags":{"type":["string","null"]},"vendor":{"type":["string","null"]},"product_type":{"type":["string","null"]},"product_display_type":{"type":["string","null"]},"label_available_product":{"type":["string","null"]},"internal_tags":{"type":["string","null"]},"status":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"artworks":{"type":"array","items":{"$ref":"#/components/schemas/Artwork"}},"mockups":{"type":"array","items":{"$ref":"#/components/schemas/ProductBaseMockup"}}}},"ProductPrintArea":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"position":{"type":"integer"},"display_name":{"type":"string"}}},"ProductBaseVariant":{"type":"object","properties":{"id":{"type":"integer"},"sku":{"type":"string"},"color":{"type":"string"},"size":{"type":"string"}}},"ProductMockup":{"type":"object","properties":{"id":{"type":"integer"},"url":{"type":["string","null"],"format":"uri"},"thumbnail":{"type":["string","null"],"format":"uri"},"master":{"type":["string","null"],"format":"uri"},"old_url":{"type":["string","null"],"format":"uri"},"preview_url":{"type":["string","null"],"format":"uri"},"preview_thumbnail":{"type":["string","null"],"format":"uri"},"alt":{"type":["string","null"]},"width":{"type":"integer"},"height":{"type":"integer"}}},"Product":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"label":{"type":"string"},"internal_tags":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"mockups":{"type":"array","items":{"$ref":"#/components/schemas/ProductMockup"}},"printareas":{"type":"array","items":{"$ref":"#/components/schemas/ProductPrintArea"}},"variants":{"type":"array","items":{"$ref":"#/components/schemas/ProductBaseVariant"}}}},"ClipartCategory":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"type":"string"},"parent_id":{"type":["integer","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Clipart":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"category_id":{"type":"integer"},"status":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"thumbnail_url":{"type":["string","null"],"format":"uri"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"LayerImageCategory":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"LayerImage":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"category_id":{"type":"integer"},"status":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"thumbnail_url":{"type":["string","null"],"format":"uri"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"CursorPageLinks":{"type":"object","properties":{"next":{"type":["string","null"],"format":"uri"},"prev":{"type":["string","null"],"format":"uri"}}},"CursorPageMeta":{"type":"object","properties":{"per_page":{"type":"integer"},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]}}},"Error":{"type":"object","properties":{"message":{"type":"string"}}},"ValidationError":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object"}}},"Health":{"type":"object","properties":{"status":{"type":"string"}}},"Version":{"type":"object","properties":{"version":{"type":"string"}}},"BatchResult":{"type":"object","properties":{"etsy_id":{"type":["string","null"]},"status":{"type":"string"},"order":{"oneOf":[{"$ref":"#/components/schemas/PublicOrder"},{"type":"null"}]},"errors":{"type":["object","null"]}}}}}}