Skip to main content
POST
/
open-api
/
v1.0
/
products
Create a product
curl --request POST \
  --url https://api.fourthwall.com/open-api/v1.0/products \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "productTemplateId": "pro_k66ZW4fsRm6c2def3itltA",
  "regions": [
    {
      "region": "front",
      "imageId": "img_k66ZW4fsRm6c2def3itltA",
      "placementId": "<string>",
      "placementStrategy": "AUTO"
    }
  ],
  "name": "My Awesome Design Tee",
  "type": "<string>",
  "colors": [
    "<string>"
  ],
  "sizes": [
    "<string>"
  ],
  "description": "Limited edition design",
  "profitMargin": 10,
  "publishOnCreate": true
}
'
{ "images": [ { "url": "<string>", "width": 123, "height": 123, "style": "<string>", "color": "<string>", "size": "<string>", "region": "<string>" } ], "productId": "<string>", "customizationId": "<string>" }
OAuth scope: offer_writeAPI keys have full access to this endpoint.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

Create a product by running the design pipeline: renders each region's registered image into mockups and creates a purchasable product. The product is created hidden unless publishOnCreate is true.

productTemplateId
string
required

Id of the product template to render the design onto, from GET /open-api/v1.0/product-templates.

Example:

"pro_k66ZW4fsRm6c2def3itltA"

regions
Product Design Region · object[]
required

Design regions to place on the product. Each region references a registered media image by id (register it via POST /open-api/v1.0/media/images and pass the returned id as imageId).

name
string
required

Product name

Example:

"My Awesome Design Tee"

type
string
required
colors
string[]

Colors to render. Defaults to all available product colors when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied colors are available.

sizes
string[]

Sizes to include. Defaults to all available product sizes when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied sizes are available. When both colors and sizes are supplied, the request is also rejected with 400 if no requested color/size combination is an available variant.

description
string

Product description

Example:

"Limited edition design"

profitMargin
number

Profit margin in USD applied on top of the base cost.

Example:

10

publishOnCreate
boolean

Publish the product immediately on creation. Defaults to false (product stays hidden).

Response

Created

Response returned after creating a product.

images
Design Pipeline Image · object[]
required

Rendered product images

productId
string

ID of the created product

customizationId
string

Customization used to back the product, when applicable