> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# Custom Fields

## Custom Fields

Custom fields associated with a product.

> **Note**
>
> This is archived documentation. The V2 Catalog API is deprecated. For current API documentation, see the [Catalog API](/developer/docs/admin/catalog-and-inventory).

#### Custom Field Object Properties

| Name        | Type   | Description                      |
| ----------- | ------ | -------------------------------- |
| id          | int    |                                  |
| product\_id | int    | ID of the associated product     |
| name        | string | key; limited to 250 characters   |
| text        | string | value; limited to 250 characters |

| Manages             | OAuth Scopes                    |
| ------------------- | ------------------------------- |
| store\_v2\_products | store\_v2\_products\_read\_only |

#### List Custom Fields

Gets custom fields associated with a product.

`GET /stores/{store_hash}/v2/products/{product_id}/custom_fields`

### Filters

There are no filter parameters specific to `custom_fields`.

### Pagination

Parameters can be added to the URL query string to paginate the collection. The maximum limit is 250. If a limit isn't provided, up to 50 custom\_fields are returned by default.

| Parameter | Type | Example                                                     |
| --------- | ---- | ----------------------------------------------------------- |
| page      | int  | `/api/v2/products/{product_id}/custom_fields?page={number}` |
| limit     | int  | `/api/v2/products/{product_id}/custom_fields?limit={count}` |

### Response

Example JSON returned in the response:

```json showLineNumbers={false}
[
  {
    "id": 1,
    "product_id": 30,
    "name": "Toy manufactured in",
    "text": "USA"
  },
  {
    "id": 2,
    "product_id": 45,
    "name": "Release Date",
    "text": "2013-12-25"
  }
]
```

#### Get a Custom Field

Gets a custom field associated with a product.

`GET /stores/{store_hash}/v2/products/{product_id}/custom_fields/{id}`

### Response

Example JSON returned in the response:

```json showLineNumbers={false}
{
  "id": 2,
  "product_id": 30,
  "name": "Toy manufactured in",
  "text": "USA"
}
```

#### Get a Count of Custom Fields

Gets a count of the number of custom fields in the store.

`GET /stores/{store_hash}/v2/products/custom_fields/count`

### Response

Example JSON returned in the response:

```json showLineNumbers={false}
{
  "count": 0
}
```

#### Create a Custom Field

Creates a new custom field associated with a product

`POST /stores/{store_hash}/v2/products/{product_id}/custom_fields`

### Read-only Properties

The following properties of the custom field are read-only. If one or more of these properties are included in the request, it will be rejected.

* product\_id

### Requirements

The following properties of the custom field are required. The request won't be fulfilled unless these properties are valid.

* name
* text

### Request

Example request object:

```json showLineNumbers={false}
{
  "name": "Release Date",
  "text": "2013-12-25"
}
```

### Response

Example JSON returned in the response:

```json showLineNumbers={false}
{
  "id": 5,
  "product_id": 45,
  "name": "Release Date",
  "text": "2013-12-25"
}
```

#### Update a Custom Field

Updates an existing custom field associated with a product.

`PUT /stores/{store_hash}/v2/products/{product_id}/custom_fields/{id}`

### Read-only Properties

The following properties of the custom field are read-only. If one or more of these properties are included in the request, it will be rejected.

* product\_id

### Requirements

The following properties of the custom field are required. The request won't be fulfilled unless these properties are valid.

* name
* text

### Request

Example request object:

```json showLineNumbers={false}
{
  "name": "Release Date",
  "text": "2013-12-31"
}
```

### Response

Example JSON returned in the response:

```json showLineNumbers={false}
{
  "id": 5,
  "product_id": 45,
  "name": "Release Date",
  "text": "2013-12-31"
}
```

#### Delete a Custom Field

Deletes a custom field associated with a product.

`DELETE /stores/{store_hash}/v2/products/{product_id}/custom_fields/{id}`

#### Delete Multiple Custom Fields

Deletes multiple custom fields associated with a product.

`DELETE /stores/{store_hash}/v2/products/{product_id}/custom_fields`

### Pagination

Parameters can be added to the URL query string to paginate the collection. The maximum limit is 250. If a limit isn't provided, up to 50 custom\_fields are returned by default.

| Parameter | Type | Example                                                     |
| --------- | ---- | ----------------------------------------------------------- |
| page      | int  | `/api/v2/products/{product_id}/custom_fields?page={number}` |
| limit     | int  | `/api/v2/products/{product_id}/custom_fields?limit={count}` |