---
title: "Upload product image"
method: POST
path: "/v2/commerce/products/{productId}/images"
tags: ["Products"]
---

# Upload product image

`POST /v2/commerce/products/{productId}/images`

## Request

- Base URL: `https://api.squarespace.com`
- URL: `https://api.squarespace.com/v2/commerce/products/{productId}/images`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/squarespace/apis/commerce-api/docs/v2/commerce/products/:productId/images/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads an image for a product. Uploading an image doesn't set the product's featured image. A successful request creates a ProductImage subresource of the Product.

## Path parameters

- `productId` string, required

## Headers

- `Authorization` string, required
- `User-Agent` string, required

## Response `202`

The request was accepted and the uploaded image is being processed.

- UploadProductImageResponse
  - `imageId` string: Unique ProductImage id.

## Other responses

- `400`: Bad request. The request body does not conform to specification.
- `404`: Not found. The requested Product was not found.
- `409`: Conflict. The specified Product has reached its limit of 100 images.

---

[API](https://skmtc.dev/squarespace/apis/commerce-api.md) - [All operations](https://skmtc.dev/squarespace/apis/commerce-api/llms.txt) - [OpenAPI document](https://skmtc.dev/squarespace/apis/commerce-api/revisions/5dd4b1b7cd38?raw)
