Resources

The Shirtplatform API is a comprehensive REST service for viewing the product and motive catalog, other shop resources, and making and completing orders for our printing and fulfillment services.

Account
The Account resource is a collection of the general settings and information about merchants's account. One account can have multiple shops.

The resource lets you retrieve information about the account but doesn't let you update any information. Only the merchant can update this information from inside the Shirtplatform admin.

Authentication
An app can interact with the Shirtplatform API on behalf of a single account. Before it can interact with the Shirtplatform API, your app must provide the necessary authentication credentials.

Private resources are secured with the HTTP Basic Auth mechanism.

Carrier
A carrier service provides shipping rates. The term carrier is often used interchangeably with the term shipping company.

Using the Carrier resource, you can add a carrier to an order and then get a list of applicable shipping rates at checkout.

This read-only resource lists the carriers configured on your account. Carriers are account-scoped: the {shopId} path segment is required by the URL template but does not narrow the result — every shop of the account sees the same carriers.

Country
The Country resource represents the tax rates applied to orders and used currency from the different countries where a shop sells its products.
Creator
Get the Creator widget embedding snippet for a shop. Returns the embedding payload for the widget: the HTML block (a mount element plus the preloader <script> tag) that the host page injects, together with the preloader script URL. All start-up state is supplied through the query parameters below and is baked into the returned snippet. Inject the returned HTML into a sized container on your page, then drive the widget through its JavaScript API and receive the persisted ordered-product ids via the addToBasketCallback you name here.

This endpoint is a thin proxy to the Creator widget service, which hosts the widget, preloader and design assets. It is a legacy but functional integration path; other integration methods exist and are documented separately through shirtplatform support.

Filter
A stored filter defines reusable query criteria for paginated list endpoints.

Create a filter via POST /rest/filters with a JSON or XML body describing the target entity, expressions, and sort order. The returned filterId can then be passed as a query parameter to any list endpoint that supports filtering. Filters are scoped to the authenticated user and deduplicated by content digest.

Motive
A motive is a graphical element that can be placed on a product design.

Motives are the basic visual building blocks of designs. Users can choose motives from the platform library or upload their own. Each motive can have localizations for different languages, and its image can be retrieved in various sizes and formats.

POST /accounts/{accountId}/shops/{shopId}/motives · Create a new motive GET /accounts/{accountId}/shops/{shopId}/motives · List all motives for the shop GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId} · Get a single motive by its id PUT /accounts/{accountId}/shops/{shopId}/motives/{motiveId} · Update an existing motive DELETE /accounts/{accountId}/shops/{shopId}/motives/{motiveId} · Delete a motive GET /accounts/{accountId}/shops/{shopId}/motives/allCustomizable · List all customizable motives for the shop GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/assignedCategories · List all category assignments for a motive GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/image · Get the rendered image of a motive GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/localizations · List all localizations for a motive GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/tags · List all tags assigned to a motive GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/technologies · List all print technologies for a motive GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/assignedCategories/{assignedCategoryId} · Get a single category assignment by its id GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/localizations/{localizationId} · Get a single motive localization by its id GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/tags/{tagId} · Get a single motive tag by its id GET /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/technologies/{motivePrintTechnologyId} · Get a single motive print technology by its id POST /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/assignedCategories · Create a new category assignment for a motive POST /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/bitmap · Upload a bitmap image for a motive POST /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/localizations · Create a new motive localization POST /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/technologies · Create a new motive print technology DELETE /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/localizations/{localizationId} · Delete a motive localization PUT /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/localizations/{localizationId} · Update a motive localization PUT /accounts/{accountId}/shops/{shopId}/motives/{motiveId}/tags/{tagId} · Assign a tag to a motive
Order
An order is a customer's completed request to purchase one or more products from a shop.

Orders can be created through the API, but no payment information will be collected, and no transaction performed. You can mark the order with any payment status.

POST /accounts/{accountId}/shops/{shopId}/orders · Create a new order GET /accounts/{accountId}/shops/{shopId}/orders · Get a list of all orders for your shop GET /accounts/{accountId}/shops/{shopId}/orders/{orderId} · Get a single order by its id PUT /accounts/{accountId}/shops/{shopId}/orders/{orderId} · Update the uniqueId of an order DELETE /accounts/{accountId}/shops/{shopId}/orders/{orderId} · Delete the order by its id GET /accounts/{accountId}/shops/{shopId}/orders/expanded · Get a list of all orders (expanded) for your shop GET /accounts/{accountId}/shops/{shopId}/orders/session · Get the current session order GET /accounts/{accountId}/shops/{shopId}/orders/by-uniqueid/{uniqueId} · Get a single order by its custom uniqueId GET /accounts/{accountId}/shops/{shopId}/orders/expanded/{orderId} · Get a single order (expanded) by its id GET /accounts/{accountId}/shops/{shopId}/orders/expanded/by-uniqueid/{uniqueId} · Get a single order (expanded) by its custom uniqueId POST /accounts/{accountId}/shops/{shopId}/orders/session · Create an order and make it the current session order POST /accounts/{accountId}/shops/{shopId}/orders/usingCreatorSE · Create a new order in deferred processing mode using the CreatorSE POST /accounts/{accountId}/shops/{shopId}/orders/{destinationOrderId}/transferItems · Transfer ordered products from one order into another PUT /accounts/{accountId}/shops/{shopId}/orders/{orderId}/associate · Make an existing order the current session order DELETE /accounts/{accountId}/shops/{shopId}/orders/{orderId}/cancelOrder · Cancels an existing order for a specific account and shop PUT /accounts/{accountId}/shops/{shopId}/orders/{orderId}/commitOrder · Commits an order for the given account and shop with an optional financial status PUT /accounts/{accountId}/shops/{shopId}/orders/{orderId}/sendToProduction · Sends a committed order into the production and fulfilment pipeline
OrderedProduct
OrderedProduct contains information about an item in the order.
GET /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts · Get a list of items for your order GET /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/{orderedProductId} · Get a single order item by its id DELETE /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/{orderedProductId} · Delete the OrderedProduct by its id GET /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/{orderedProductId}/changePrintTechnologyPreview · [For Testing Purposes] Get preview of ordered item after changing of print technology of all elements GET /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/{orderedProductId}/image · Get image for your OrderedProduct POST /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/usingCreatorSE · Create a new ordered product using CreatorSE POST /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/usingBaseProduct/{productId} · Create a new ordered product using base product POST /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/usingTemplateProduct/{designedTemplateProductId} · Save new ordered product using designedTemplate PUT /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/{orderedProductId}/changePrintTechnology · [For Testing Purposes] Change print technology of all elements POST /accounts/{accountId}/shops/{shopId}/orders/{orderId}/orderedProducts/{orderedProductId}/share · Share ordered product
Product
Manages products within a shop. A product is a template that defines how a physical item (e.g. a t-shirt, mug, or poster) should be printed and sold. Each product is composed of views (front, back, sleeve), colors, sizes, SKUs, prices, localizations, category assignments, print technology configurations, and preview images.

All endpoints require the accountId and shopId path parameters to scope operations to a specific shop within an account.

POST /accounts/{accountId}/shops/{shopId}/products · Create a new product in the specified shop GET /accounts/{accountId}/shops/{shopId}/products · List products in the shop GET /accounts/{accountId}/shops/{shopId}/products/{productId} · Get a product by its ID PUT /accounts/{accountId}/shops/{shopId}/products/{productId} · Update an existing product's core properties such as name, description, active status, and weight DELETE /accounts/{accountId}/shops/{shopId}/products/{productId} · Delete a product and all its associated sub-resources (views, colors, sizes, SKUs, prices, images, etc GET /accounts/{accountId}/shops/{shopId}/products/expanded · List products with all sub-resources expanded inline (views, colors, sizes, SKUs, prices, etc GET /accounts/{accountId}/shops/{shopId}/products/expanded/{productId} · Get a product by its ID with all sub-resources expanded inline (views, colors, sizes, SKUs, prices, localizations, print technologies, etc GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedAttributeListItems · List attribute list item assignments for a specific product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedCategories · List category assignments for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedColors · List color assignments for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedPrintTechnologies · List print technology assignments for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedSizes · List size assignments for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViewColors · List all view-color associations for a product across all views GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews · List view assignments for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/image · Get a rendered product preview image using the default view and color GET /accounts/{accountId}/shops/{shopId}/products/{productId}/localizations · List localizations for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/measurementImage · Get the measurement image for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/prices · List prices for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/sku · List SKUs (Stock Keeping Units) for a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedAttributeListItems/{assignedAttributeListItemId} · Get an attribute list item assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedCategories/{assignedCategoryId} · Get a category assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedColors/{assignedColorId} · Get a color assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedPrintTechnologies/{assignedPrintTechnologyId} · Get a print technology assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedSizes/{assignedSizeId} · Get a size assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViewColors/{assignedViewColorId} · Get a view-color association by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId} · Get a view assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/localizations/{localizationId} · Get a product localization by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/prices/{priceId} · Get a price by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/printStyles/userMotives · Get the print style limits for user motives on a product GET /accounts/{accountId}/shops/{shopId}/products/{productId}/sku/{skuId} · Get a SKU by its ID GET /accounts/{accountId}/shops/{shopId}/products/by-sku/{sku}/printStyles/userMotives · Get the print style limits for user motives by SKU string instead of product ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/assignedColors · List view-color associations for a product view GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/assignedStickers · List sticker assignments for a product view GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/colisions · List collision zones for a product view GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/sourceSwf · Get the source SWF (Flash) file for a product view GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/assignedColors/{assignedColorId} · Get a view-color association by its view and color IDs GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/assignedStickers/{assignedStickerId} · Get a sticker assignment by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/colisions/{colisionId} · Get a collision zone by its ID GET /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId}/assignedColors/{assignedColorId}/image · Get a rendered product preview image for a specific view and color combination DELETE /accounts/{accountId}/shops/{shopId}/products/assignedCategories · Bulk-remove all category assignments from products matching the given filter in the shop POST /accounts/{accountId}/shops/{shopId}/products/assignedCategories · Bulk-assign a category to all products matching the given filter in the shop POST /accounts/{accountId}/shops/{shopId}/products/import/{importableProductId} · Import a shared product into the shop, making it available as a local product POST /accounts/{accountId}/shops/{shopId}/products/importOwn/{productId} · Import an own product into the specified shop POST /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedCategories · Assign a category to a product POST /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedColors · Assign a color variant to a product POST /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedPrintTechnologies · Assign a print technology to a product POST /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedSizes · Assign a size variant to a product POST /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews · Assign a view to a product POST /accounts/{accountId}/shops/{shopId}/products/{productId}/duplicate · Duplicate an existing product POST /accounts/{accountId}/shops/{shopId}/products/{productId}/localizations · Create a new product localization for a specific language POST /accounts/{accountId}/shops/{shopId}/products/{productId}/prices · Create a new product price DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedCategories/{assignedCategoryId} · Remove a category assignment from a product PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedCategories/{assignedCategoryId} · Update a category assignment on a product, for example to change sort order or reassign to a different category DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedColors/{assignedColorId} · Remove a color assignment from a product PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedColors/{assignedColorId} · Update a color assignment on a product DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedPrintTechnologies/{assignedPrintTechnologyId} · Remove a print technology assignment from a product PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedPrintTechnologies/{assignedPrintTechnologyId} · Update a print technology assignment on a product DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedSizes/{assignedSizeId} · Remove a size assignment from a product PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedSizes/{assignedSizeId} · Update a size assignment on a product, for example to change sort order or size-specific attributes PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViewColors/{assignedViewColorId} · Update a view-color association record directly by its ID, for example to change image offset or other view-color-specific properties DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId} · Remove a view assignment from a product PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/assignedViews/{assignedViewId} · Update a view assignment on a product, for example to change print area dimensions, coordinates, or sort order DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/localizations/{localizationId} · Delete a product localization, removing the translated content for that language PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/localizations/{localizationId} · Update a product localization DELETE /accounts/{accountId}/shops/{shopId}/products/{productId}/prices/{priceId} · Delete a product price PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/prices/{priceId} · Update a product price PUT /accounts/{accountId}/shops/{shopId}/products/{productId}/sku/{skuId} · Update a SKU (Stock Keeping Unit) for a product
Shop
The Shop resource is a collection of the general settings and information about the store.

The resource lets you retrieve information about the store but doesn't let you update any information. Only the merchant can update this information from inside the Shirtplatform admin.

UserMotive
A user motive is an image uploaded by an end customer into their own private motive library, for use in their designs.

Unlike the shop's built-in motive catalog (the Motive resource), this library is scoped to the calling customer. Entries are keyed by a customer key derived from the request: a temporary, per-session library, or a permanent library identified by a customer key. An uploaded motive is referenced by its returned id when it is placed in a design.

Webhook
You can use webhook subscriptions to receive notifications about particular events in your shops. After you've subscribed to a webhook, you can let your app execute code immediately after specific events occur in your shops.

For example, you can rely on webhooks to trigger an action in your app when a customer creates a new order or shirtplatform fulfills an order.

By using webhooks subscriptions you can make fewer API calls overall, which makes sure that your apps are more efficient and update quickly.