---
title: "POST /v1/{+parent}/products"
method: POST
path: "/v1/{+parent}/products"
tags: ["projects"]
---

# POST /v1/{+parent}/products

`POST /v1/{+parent}/products`

Creates and returns a new product resource. Possible errors: * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 characters. * Returns INVALID_ARGUMENT if description is longer than 4096 characters. * Returns INVALID_ARGUMENT if product_category is missing or invalid.

## Path parameters

- `parent` string, required

## Query parameters

- `productId` string

## Request body

- Product — A Product contains ReferenceImages.
  - `productCategory` string — Immutable. The category for the product identified by the reference image. This should be one of "homegoods-v2", "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The legacy categories "homegoods", "apparel", and "toys" are still supported, but these should not be used for new products.
  - `name` string — The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.
  - `productLabels` KeyValue[] — Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. "1199". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.
    - `key` string — The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.
    - `value` string — The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.
  - `description` string — User-provided metadata to be stored with this product. Must be at most 4096 characters long.
  - `displayName` string — The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/vision.md) · [All operations](https://skmtc.net/google/apis/vision/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/vision/versions/d5becca397b9/schema)
