# Ecommerce API — Products

> Canonical URL: https://developers.apideck.com/apis/ecommerce/reference#tag/Products

This document contains every operation on the `Products` resource.

---

# List Products

> **Ecommerce API** · `GET /ecommerce/products`
> Canonical URL: https://developers.apideck.com/apis/ecommerce/reference#tag/Products/operation/productsAll

List Products

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `raw` | query | `boolean` | No | Include raw response. Mostly used for debugging purposes |
| `x-apideck-consumer-id` | header | `string` | Yes | ID of the consumer which you want to get or push data from |
| `x-apideck-app-id` | header | `string` | Yes | The ID of your Unify application |
| `x-apideck-service-id` | header | `string` | No | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. |
| `cursor` | query | `string` | No | Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response. |
| `limit` | query | `integer` | No | Number of results to return. Minimum 1, Maximum 200, Default 20 |
| `pass_through` | query | `object` | No | Optional unmapped key/values that will be passed through to downstream as query parameters. Ie: ?pass_through[search]=leads becomes ?search=leads |
| `fields` | query | `string` | No | The 'fields' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation. <br /><br />Example: `fields=name,email,addresses.city`<br /><br />In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded. |
| `filter` | query | `object` | No | Apply filters |

### Responses

#### 200 — Products

- `status_code` `integer` **required** — HTTP Response Status Code — example: `200`
- `status` `string` **required** — HTTP Response Status — example: `OK`
- `service` `string` **required** — Apideck ID of service provider — example: `shopify`
- `resource` `string` **required** — Unified API resource name — example: `products`
- `operation` `string` **required** — Operation performed — example: `all`
- `data` `array of object` **required**
  - `id` `string` **required** — A unique identifier for an object. — example: `12345`
  - `name` `string` — The name of the product as it should be displayed to customers. — example: `MacBook Pro`
  - `description` `string` — A detailed description of the product. — example: `Powerful and portable, the MacBook Pro is perfect for professionals and creatives.`
  - `status` `string` — The current status of the product (active or archived). — enum: `active`, `archived` — example: `active`
  - `price` `string` — The price of the product. — example: `1999.99`
  - `sku` `string` — The stock keeping unit of the product. — example: `MBP123`
  - `inventory_quantity` `string` — The quantity of the product in stock. — example: `10`
  - `images` `array of object` — An array of image URLs for the product.
    - `id` `string` — A unique identifier for an object. — example: `12345`
    - `url` `string` — The URL of an image of the product. — example: `https://example.com/macbook-pro.jpg`
  - `weight` `string` — The weight of the product. — example: `1.25`
  - `weight_unit` `string` — The unit of measurement for the weight of the product. — example: `lb`
  - `options` `array of object` — An array of options for the product.
    - `id` `string` — A unique identifier for the option of the product. — example: `1`
    - `name` `string` — The name of the option for the product. — example: `Color`
    - `values` `array of string`
  - `variants` `array of object`
    - `id` `string` — A unique identifier for the variant of the product. — example: `1`
    - `name` `string` — The name for the variant, used for displaying to customers. — example: `Midnight 16inch MacBook Pro`
    - `price` `string` — The price of the variant. — example: `1999.99`
    - `sku` `string` — The stock keeping unit of the variant. — example: `MBP123-16GB-SILVER-13`
    - `inventory_quantity` `string` — The quantity of the variant in stock. — example: `5`
    - `weight` `string` — The weight of the variant. — example: `1.25`
    - `weight_unit` `string` — The unit of measurement for the weight of the variant. — example: `lb`
    - `options` `array of object`
      - `id` `string` — A unique identifier for the option of the variant. — example: `1`
      - `name` `string` — The name of the option for the variant. — example: `Color`
      - `value` `string` — The value of the option for the variant. — example: `Silver`
    - `images` `array of object`
      - `id` `string` — A unique identifier for an object. — example: `12345`
      - `url` `string` — The URL of an image of the variant. — example: `https://example.com/macbook-pro.jpg`
  - `tags` `array of string` — An array of tags for the product, used for organization and searching.
  - `categories` `array of object` — An array of categories for the product, used for organization and searching.
    - `id` `string` — A unique identifier for an object. — example: `12345`
    - `name` `string` — The name of the category. — example: `Laptops`
  - `custom_mappings` `object` — When custom mappings are configured on the resource, the result is included here.
  - `created_at` `string` — The date and time when the object was created. — format: `date-time` — example: `2020-09-30T07:43:32.000Z`
  - `updated_at` `string` — The date and time when the object was last updated. — format: `date-time` — example: `2020-09-30T07:43:32.000Z`
- `_raw` `object` — Raw response from the integration when raw=true query param is provided
- `meta` `object` — Response metadata
  - `items_on_page` `integer` — Number of items returned in the data property of the response — example: `50`
  - `cursors` `object` — Cursors to navigate to previous or next pages through the API
    - `previous` `string` — Cursor to navigate to the previous page of results through the API — example: `em9oby1jcm06OnBhZ2U6OjE=`
    - `current` `string` — Cursor to navigate to the current page of results through the API — example: `em9oby1jcm06OnBhZ2U6OjI=`
    - `next` `string` — Cursor to navigate to the next page of results through the API — example: `em9oby1jcm06OnBhZ2U6OjM=`
- `links` `object` — Links to navigate to previous or next pages through the API
  - `previous` `string` — Link to navigate to the previous page through the API — example: `https://unify.apideck.com/crm/companies?cursor=em9oby1jcm06OnBhZ2U6OjE%3D`
  - `current` `string` — Link to navigate to the current page through the API — example: `https://unify.apideck.com/crm/companies`
  - `next` `string` — Link to navigate to the previous page through the API — example: `https://unify.apideck.com/crm/companies?cursor=em9oby1jcm06OnBhZ2U6OjM`

#### 400 — Bad Request

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 401 — Unauthorized

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 402 — Payment Required

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 404 — The specified resource was not found

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 422 — Unprocessable

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### default — Unexpected error

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

---

# Get Product

> **Ecommerce API** · `GET /ecommerce/products/{id}`
> Canonical URL: https://developers.apideck.com/apis/ecommerce/reference#tag/Products/operation/productsOne

Get Product

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | `string` | Yes | ID of the record you are acting upon. |
| `x-apideck-consumer-id` | header | `string` | Yes | ID of the consumer which you want to get or push data from |
| `x-apideck-app-id` | header | `string` | Yes | The ID of your Unify application |
| `x-apideck-service-id` | header | `string` | No | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. |
| `raw` | query | `boolean` | No | Include raw response. Mostly used for debugging purposes |
| `fields` | query | `string` | No | The 'fields' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation. <br /><br />Example: `fields=name,email,addresses.city`<br /><br />In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded. |

### Responses

#### 200 — Products

- `status_code` `integer` **required** — HTTP Response Status Code — example: `200`
- `status` `string` **required** — HTTP Response Status — example: `OK`
- `service` `string` **required** — Apideck ID of service provider — example: `shopify`
- `resource` `string` **required** — Unified API resource name — example: `products`
- `operation` `string` **required** — Operation performed — example: `one`
- `data` `object` **required**
  - `id` `string` **required** — A unique identifier for an object. — example: `12345`
  - `name` `string` — The name of the product as it should be displayed to customers. — example: `MacBook Pro`
  - `description` `string` — A detailed description of the product. — example: `Powerful and portable, the MacBook Pro is perfect for professionals and creatives.`
  - `status` `string` — The current status of the product (active or archived). — enum: `active`, `archived` — example: `active`
  - `price` `string` — The price of the product. — example: `1999.99`
  - `sku` `string` — The stock keeping unit of the product. — example: `MBP123`
  - `inventory_quantity` `string` — The quantity of the product in stock. — example: `10`
  - `images` `array of object` — An array of image URLs for the product.
    - `id` `string` — A unique identifier for an object. — example: `12345`
    - `url` `string` — The URL of an image of the product. — example: `https://example.com/macbook-pro.jpg`
  - `weight` `string` — The weight of the product. — example: `1.25`
  - `weight_unit` `string` — The unit of measurement for the weight of the product. — example: `lb`
  - `options` `array of object` — An array of options for the product.
    - `id` `string` — A unique identifier for the option of the product. — example: `1`
    - `name` `string` — The name of the option for the product. — example: `Color`
    - `values` `array of string`
  - `variants` `array of object`
    - `id` `string` — A unique identifier for the variant of the product. — example: `1`
    - `name` `string` — The name for the variant, used for displaying to customers. — example: `Midnight 16inch MacBook Pro`
    - `price` `string` — The price of the variant. — example: `1999.99`
    - `sku` `string` — The stock keeping unit of the variant. — example: `MBP123-16GB-SILVER-13`
    - `inventory_quantity` `string` — The quantity of the variant in stock. — example: `5`
    - `weight` `string` — The weight of the variant. — example: `1.25`
    - `weight_unit` `string` — The unit of measurement for the weight of the variant. — example: `lb`
    - `options` `array of object`
      - `id` `string` — A unique identifier for the option of the variant. — example: `1`
      - `name` `string` — The name of the option for the variant. — example: `Color`
      - `value` `string` — The value of the option for the variant. — example: `Silver`
    - `images` `array of object`
      - `id` `string` — A unique identifier for an object. — example: `12345`
      - `url` `string` — The URL of an image of the variant. — example: `https://example.com/macbook-pro.jpg`
  - `tags` `array of string` — An array of tags for the product, used for organization and searching.
  - `categories` `array of object` — An array of categories for the product, used for organization and searching.
    - `id` `string` — A unique identifier for an object. — example: `12345`
    - `name` `string` — The name of the category. — example: `Laptops`
  - `custom_mappings` `object` — When custom mappings are configured on the resource, the result is included here.
  - `created_at` `string` — The date and time when the object was created. — format: `date-time` — example: `2020-09-30T07:43:32.000Z`
  - `updated_at` `string` — The date and time when the object was last updated. — format: `date-time` — example: `2020-09-30T07:43:32.000Z`
- `_raw` `object` — Raw response from the integration when raw=true query param is provided

#### 400 — Bad Request

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 401 — Unauthorized

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 402 — Payment Required

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 404 — The specified resource was not found

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### 422 — Unprocessable

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

#### default — Unexpected error

> Standard error response — see [Error Responses](https://developers.apideck.com/errors)

---
