{"componentChunkName":"component---src-templates-redoc-operation-js","path":"/api/products/operation/list-products/","result":{"data":{"contentItem":{"type":"redoc-operation","link":"/api/products/operation/list-products/","data":{"redocStoreStr":"{\"menu\":{\"activeItemIdx\":-1},\"definition\":{\"data\":{\"openapi\":\"3.0.1\",\"info\":{\"title\":\"Carriyo Products API\",\"description\":\"# Carriyo Products API\\n[**Download OpenAPI specification**](/oas/products.yaml)\\n\\nThe Carriyo Products API lets you manage your product catalogue in Carriyo. Products are referenced by shipments, orders, returns, and inventory — keeping your catalogue in Carriyo up to date ensures accurate downstream data.\\n\\n## Key Resources\\n\\n* [Products](./products.md) — Create, read, update, and delete products in your catalogue\\n\\n## What You Can Do\\n\\n- **List and search** your catalogue with filtering, sorting, pagination, and free-text search\\n- **Look up** individual products by Carriyo `product_id`, your `product_ref`, or `sku`\\n- **Create, update, and delete** products one at a time, or in bulk\\n- **Capture cross-border attributes** like HS code, country of origin, material composition, dangerous goods, and battery details\\n- **Attach custom metadata** via `carriyo_metadata` name/value pairs\\n\\n## Identifiers\\n\\nEach product can be referenced by three identifiers:\\n\\n| Identifier      | Source                  | Uniqueness                                |\\n| --------------- | ----------------------- | ----------------------------------------- |\\n| `product_id`    | Assigned by Carriyo     | Unique per tenant                         |\\n| `product_ref`   | Supplied by you         | Recommended unique within a merchant      |\\n| `sku`           | Supplied by you         | Not guaranteed unique — lookups return an array |\\n\\n\",\"contact\":{\"name\":\"Carriyo Support\",\"url\":\"https://help.carriyo.com\",\"email\":\"support@carriyo.com\"},\"version\":\"\"},\"servers\":[{\"url\":\"https://api.carriyo.com\",\"description\":\"Production Server\"},{\"url\":\"https://demo-api.carriyo.com\",\"description\":\"Demo Server\"}],\"security\":[{\"OAuth2-Production\":[]},{\"OAuth2-Demo\":[]}],\"tags\":[{\"name\":\"Products\",\"description\":\"# Products\\n\\nThe **Products** resource represents items in your catalogue. Products are scoped to a merchant within your tenant and may be referenced by shipments, orders, returns, and inventory records.\\n\\n## Identifiers\\n\\nCarriyo supports three ways to identify a product:\\n\\n- **`product_id`** — Assigned by Carriyo when the product is created. Unique within a tenant. Use this when you have stored the Carriyo identifier alongside your own.\\n- **`product_ref`** — Your reference for the product. We recommend keeping this unique within a merchant so it can be used as a reliable lookup key.\\n- **`sku`** — Stock keeping unit. SKU is not enforced as unique, so lookups by SKU return an array of matching products.\\n\\n## Listing Products\\n\\nThe `GET /products` endpoint is backed by Elasticsearch and supports:\\n\\n- **Free-text search** across `sku`, `barcode`, `product_ref`, `description`, `hs_code`, `manufacturer_id`, and `material_composition`\\n- **Filters** on `merchant`, `product_id`, `sku`, `barcode`, `product_ref`, and `status` — repeat any filter parameter to match multiple values\\n- **Sorting** by `sku`, `barcode`, `product_ref`, `description`, `hs_code`, or `manufacturer_id`, in ascending or descending direction\\n- **Pagination** via `page` (zero-indexed) and `page_size` (max 250)\\n\\nThe response returns the matching page of products together with the total count, so you can drive paging UIs and report-style queries from the same endpoint.\\n\\n## Cross-Border Attributes\\n\\nFor shipments crossing customs borders, certain product attributes are typically required by carriers and customs:\\n\\n- `hs_code` — Harmonised System code for customs classification\\n- `origin_country` — ISO 3166-1 alpha-2 country code\\n- `material_composition` — e.g., \\\"100% cotton\\\" — relevant for textile classification\\n- `dangerous_goods` — set `true` if the product is classified as dangerous goods\\n- `battery` — supply `material_type` and `packing_type` if the product contains batteries\\n- `manufacturer_id` — manufacturer reference, required by some carriers in certain destinations\\n\\n## Custom Metadata\\n\\nUse `carriyo_metadata` to attach arbitrary name/value pairs to a product when the standard fields don't capture the attribute you need. These values are preserved in the product record and can be referenced in automation rules and downstream integrations.\\n\\n## Bulk Operations\\n\\nFor larger catalogues, two bulk operations are available:\\n\\n- **Bulk create/update** (`POST /products/{merchant_id}/bulk/import`) — submit up to 500 products in a single request. Each item is processed independently and the response reports per-item outcomes.\\n- **Bulk delete** (`DELETE /products/{merchant_id}/bulk`) — deletes all products for the merchant. Large catalogues may require multiple invocations; the `more_items_available` flag in the response indicates whether to re-invoke.\\n\"}],\"paths\":{\"/products\":{\"get\":{\"tags\":[\"Products\"],\"summary\":\"List Products\",\"operationId\":\"list-products\",\"description\":\"Returns a paginated list of products that match the supplied filter, sort, and search criteria.\\n\\nThe list endpoint is backed by Elasticsearch and supports free-text search across product fields such as `description`, `sku`, `barcode`, `product_ref`, `hs_code`, `manufacturer_id`, and `material_composition`.\\n\\nFilters are applied as exact term matches. Most filters can be repeated to match any of the supplied values.\",\"parameters\":[{\"name\":\"x-api-key\",\"in\":\"header\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"Your Carriyo API key for authentication.\"},{\"name\":\"tenant-id\",\"in\":\"header\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"Your unique tenant identifier in Carriyo.\"},{\"name\":\"search_string\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\"},\"description\":\"Free-text search applied across `sku`, `barcode`, `product_ref`, `description`, `hs_code`, `manufacturer_id`, and `material_composition`.\"},{\"name\":\"merchant\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\"},\"description\":\"Filter by merchant. Repeat the parameter to match multiple merchants.\"},{\"name\":\"product_id\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\"},\"description\":\"Filter by Carriyo product ID. Repeat the parameter to match multiple values.\"},{\"name\":\"sku\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\"},\"description\":\"Filter by SKU. Repeat the parameter to match multiple values.\"},{\"name\":\"barcode\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\"},\"description\":\"Filter by barcode. Repeat the parameter to match multiple values.\"},{\"name\":\"product_ref\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\"},\"description\":\"Filter by your reference (`product_ref`). Repeat the parameter to match multiple values.\"},{\"name\":\"status\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\",\"enum\":[\"ACTIVE\",\"INACTIVE\",\"DELETED\"]},\"description\":\"Filter by product status.\"},{\"name\":\"sort_by\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\",\"enum\":[\"sku\",\"barcode\",\"product_ref\",\"description\",\"hs_code\",\"manufacturer_id\"]},\"description\":\"Field to sort the results by.\"},{\"name\":\"sort_direction\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"string\",\"enum\":[\"asc\",\"desc\"],\"default\":\"desc\"},\"description\":\"Sort direction. Defaults to `desc`.\"},{\"name\":\"page\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"integer\",\"default\":0},\"description\":\"Page number, starting from 0. Defaults to 0.\"},{\"name\":\"page_size\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"integer\",\"default\":10,\"maximum\":250},\"description\":\"Number of results per page. Defaults to 10. Maximum 250.\"}],\"responses\":{\"200\":{\"description\":\"A paginated list of products.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-list-response\"}}}}}}},\"/products/{merchant_id}\":{\"get\":{\"tags\":[\"Products\"],\"summary\":\"Search Products by SKU\",\"operationId\":\"search-products-by-sku\",\"description\":\"Returns all products belonging to the merchant that match the supplied `sku`. SKU is not guaranteed to be unique within a merchant, so this endpoint returns an array.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"name\":\"sku\",\"in\":\"query\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"The SKU to look up.\"}],\"responses\":{\"200\":{\"description\":\"List of matching products.\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/product-response\"}}}}},\"404\":{\"description\":\"No products found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}},\"post\":{\"tags\":[\"Products\"],\"summary\":\"Create Product\",\"operationId\":\"create-product\",\"description\":\"Creates a new product for the specified merchant. Either `sku` or `product_ref` is required to identify the product within your catalogue.\\n\\nReturns the created product, including the Carriyo-assigned `product_id`.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-request\"}}}},\"responses\":{\"200\":{\"description\":\"Successfully created the product.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"400\":{\"description\":\"Invalid request payload.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}}},\"/products/{merchant_id}/{product_id}\":{\"get\":{\"tags\":[\"Products\"],\"summary\":\"Get Product by ID\",\"operationId\":\"get-product\",\"description\":\"Retrieves a single product by its Carriyo `product_id`.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"$ref\":\"#/components/parameters/product_id\"}],\"responses\":{\"200\":{\"description\":\"The product record.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"404\":{\"description\":\"No product found for the supplied ID.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}},\"put\":{\"tags\":[\"Products\"],\"summary\":\"Update Product\",\"operationId\":\"update-product\",\"description\":\"Replaces the full product record. All fields are overwritten with the values in the request body — fields omitted from the body will be cleared.\\n\\nUse `PATCH` to update only a subset of fields.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"$ref\":\"#/components/parameters/product_id\"}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-request\"}}}},\"responses\":{\"200\":{\"description\":\"The updated product record.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"404\":{\"description\":\"No product found for the supplied ID.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}},\"patch\":{\"tags\":[\"Products\"],\"summary\":\"Patch Product\",\"operationId\":\"patch-product\",\"description\":\"Partially updates the product record. Only fields supplied in the request body are updated; omitted fields retain their current values.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"$ref\":\"#/components/parameters/product_id\"}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-request\"}}}},\"responses\":{\"200\":{\"description\":\"The updated product record.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"404\":{\"description\":\"No product found for the supplied ID.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}},\"delete\":{\"tags\":[\"Products\"],\"summary\":\"Delete Product\",\"operationId\":\"delete-product\",\"description\":\"Deletes the product. The returned record reflects the product's state at the time of deletion.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"$ref\":\"#/components/parameters/product_id\"}],\"responses\":{\"200\":{\"description\":\"The deleted product record.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"404\":{\"description\":\"No product found for the supplied ID.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}}},\"/products/{merchant_id}/product-ref/{product_ref}\":{\"get\":{\"tags\":[\"Products\"],\"summary\":\"Get Product by Product Ref\",\"operationId\":\"get-product-by-product-ref\",\"description\":\"Retrieves a single product by your `product_ref`.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"$ref\":\"#/components/parameters/product_ref\"}],\"responses\":{\"200\":{\"description\":\"The product record.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"404\":{\"description\":\"No product found for the supplied product_ref.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}},\"delete\":{\"tags\":[\"Products\"],\"summary\":\"Delete Product by Product Ref\",\"operationId\":\"delete-product-by-product-ref\",\"description\":\"Deletes the product identified by your `product_ref`.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"},{\"$ref\":\"#/components/parameters/product_ref\"}],\"responses\":{\"200\":{\"description\":\"The deleted product record.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/product-response\"}}}},\"404\":{\"description\":\"No product found for the supplied product_ref.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}}},\"/products/{merchant_id}/bulk/import\":{\"post\":{\"tags\":[\"Products\"],\"summary\":\"Bulk Create Products\",\"operationId\":\"bulk-create-products\",\"description\":\"Creates or updates multiple products in a single request. Each item in the request array is processed independently — the response array reports the outcome (`accepted` or `rejected`) for each item, in the same order.\\n\\n### Limits\\n\\n- Maximum **500** items per request.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/product-request\"}}}}},\"responses\":{\"200\":{\"description\":\"Per-item processing results.\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/bulk-create-update-response\"}}}}},\"400\":{\"description\":\"Invalid request (e.g., too many items).\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/error-response\"}}}}}}},\"/products/{merchant_id}/bulk\":{\"delete\":{\"tags\":[\"Products\"],\"summary\":\"Bulk Delete Products\",\"operationId\":\"bulk-delete-products\",\"description\":\"Deletes all products for the specified merchant.\\n\\n> **Warning:** This operation is destructive and cannot be undone. The response indicates how many records were deleted, attempted, and failed, and whether more items remain — large catalogues may require multiple invocations to fully clear.\",\"parameters\":[{\"$ref\":\"#/components/parameters/x-api-key\"},{\"$ref\":\"#/components/parameters/tenant-id\"},{\"$ref\":\"#/components/parameters/merchant_id\"}],\"responses\":{\"200\":{\"description\":\"Bulk delete summary.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/bulk-delete-response\"}}}}}}}},\"components\":{\"parameters\":{\"x-api-key\":{\"name\":\"x-api-key\",\"in\":\"header\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"Your Carriyo API key for authentication.\"},\"tenant-id\":{\"name\":\"tenant-id\",\"in\":\"header\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"Your unique tenant identifier in Carriyo.\"},\"merchant_id\":{\"name\":\"merchant_id\",\"in\":\"path\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"The merchant identifier the product belongs to.\"},\"product_id\":{\"name\":\"product_id\",\"in\":\"path\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"The Carriyo-assigned product identifier.\"},\"product_ref\":{\"name\":\"product_ref\",\"in\":\"path\",\"required\":true,\"schema\":{\"type\":\"string\"},\"description\":\"Your reference for the product (`product_ref`).\"}},\"schemas\":{\"product-request\":{\"title\":\"Product Request\",\"type\":\"object\",\"properties\":{\"product_ref\":{\"type\":\"string\",\"description\":\"Your reference for the product. Recommended to be unique within a merchant.\"},\"sku\":{\"type\":\"string\",\"description\":\"Stock keeping unit.\"},\"description\":{\"type\":\"string\",\"description\":\"Human-readable product description.\"},\"barcode\":{\"type\":\"string\",\"description\":\"Barcode (e.g., EAN, UPC).\"},\"image_link\":{\"type\":\"string\",\"description\":\"URL to a product image.\"},\"hs_code\":{\"type\":\"string\",\"description\":\"Harmonised System code. Often required for cross-border shipments.\"},\"origin_country\":{\"type\":\"string\",\"description\":\"ISO 3166-1 alpha-2 country code of origin.\"},\"manufacturer_id\":{\"type\":\"string\",\"description\":\"Manufacturer reference. Required by some carriers in certain destinations.\"},\"material_composition\":{\"type\":\"string\",\"description\":\"Material details (e.g., \\\"100% cotton\\\"). Relevant for textile customs classification.\"},\"category\":{\"type\":\"string\",\"description\":\"Product category.\"},\"dangerous_goods\":{\"type\":\"boolean\",\"description\":\"Whether the product is classified as dangerous goods.\"},\"battery\":{\"$ref\":\"#/components/schemas/battery\"},\"digital\":{\"type\":\"boolean\",\"description\":\"Whether the product is a digital good (no physical shipment).\"},\"non_returnable\":{\"type\":\"boolean\",\"description\":\"Whether the product is excluded from returns.\"},\"status\":{\"$ref\":\"#/components/schemas/status\"},\"weight\":{\"$ref\":\"#/components/schemas/weight\"},\"dimension\":{\"$ref\":\"#/components/schemas/dimension\"},\"do_not_place_above\":{\"type\":\"boolean\",\"description\":\"Stacking constraint — must not be placed above other items.\"},\"do_not_place_below\":{\"type\":\"boolean\",\"description\":\"Stacking constraint — must not be placed below other items.\"},\"carriyo_metadata\":{\"type\":\"array\",\"description\":\"Custom name/value pairs for storing additional product attributes.\",\"items\":{\"$ref\":\"#/components/schemas/carriyo-metadata\"}}}},\"product-response\":{\"title\":\"Product Response\",\"type\":\"object\",\"properties\":{\"tenant\":{\"type\":\"string\",\"description\":\"The tenant identifier.\"},\"merchant\":{\"type\":\"string\",\"description\":\"The merchant the product belongs to.\"},\"product_id\":{\"type\":\"string\",\"description\":\"The Carriyo-assigned product identifier.\"},\"product_ref\":{\"type\":\"string\",\"description\":\"Your reference for the product.\"},\"sku\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"barcode\":{\"type\":\"string\"},\"image_link\":{\"type\":\"string\"},\"hs_code\":{\"type\":\"string\"},\"origin_country\":{\"type\":\"string\"},\"manufacturer_id\":{\"type\":\"string\"},\"material_composition\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"dangerous_goods\":{\"type\":\"boolean\"},\"battery\":{\"$ref\":\"#/components/schemas/battery\"},\"digital\":{\"type\":\"boolean\"},\"non_returnable\":{\"type\":\"boolean\"},\"status\":{\"$ref\":\"#/components/schemas/status\"},\"weight\":{\"$ref\":\"#/components/schemas/weight\"},\"dimension\":{\"$ref\":\"#/components/schemas/dimension\"},\"do_not_place_above\":{\"type\":\"boolean\"},\"do_not_place_below\":{\"type\":\"boolean\"},\"carriyo_metadata\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/carriyo-metadata\"}},\"creation_date\":{\"type\":\"string\",\"format\":\"date-time\",\"description\":\"Creation timestamp (ISO 8601).\"},\"update_date\":{\"type\":\"string\",\"format\":\"date-time\",\"description\":\"Last update timestamp (ISO 8601).\"},\"creation_source\":{\"$ref\":\"#/components/schemas/request-source\"},\"update_source\":{\"$ref\":\"#/components/schemas/request-source\"}}},\"product-list-response\":{\"title\":\"Product List Response\",\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"description\":\"The page of matching products.\",\"items\":{\"$ref\":\"#/components/schemas/product-response\"}},\"total\":{\"type\":\"integer\",\"description\":\"Total number of products matching the query (across all pages).\"}}},\"bulk-create-update-response\":{\"title\":\"Bulk Create/Update Response Item\",\"type\":\"object\",\"properties\":{\"productId\":{\"type\":\"string\",\"description\":\"The Carriyo-assigned product ID, if assigned.\"},\"sku\":{\"type\":\"string\"},\"productRef\":{\"type\":\"string\"},\"result\":{\"type\":\"string\",\"enum\":[\"accepted\",\"rejected\"],\"description\":\"Outcome for this item.\"},\"reason\":{\"type\":\"string\",\"description\":\"Reason for rejection, if `result` is `rejected`.\"},\"item\":{\"$ref\":\"#/components/schemas/product-response\"}}},\"bulk-delete-response\":{\"title\":\"Bulk Delete Response\",\"type\":\"object\",\"properties\":{\"deleted_count\":{\"type\":\"integer\",\"description\":\"Number of products successfully deleted.\"},\"attempted_count\":{\"type\":\"integer\",\"description\":\"Number of products attempted in this invocation.\"},\"failed_count\":{\"type\":\"integer\",\"description\":\"Number of products that failed to delete.\"},\"reason\":{\"type\":\"string\",\"description\":\"Failure reason, if applicable.\"},\"result\":{\"type\":\"string\",\"enum\":[\"accepted\",\"rejected\"]},\"more_items_available\":{\"type\":\"boolean\",\"description\":\"Whether more products remain to be deleted. Re-invoke until `false`.\"}}},\"status\":{\"title\":\"Status\",\"type\":\"string\",\"enum\":[\"ACTIVE\",\"INACTIVE\",\"DELETED\"],\"description\":\"Lifecycle status of the product.\"},\"weight\":{\"title\":\"Weight\",\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"number\"},\"unit\":{\"type\":\"string\",\"enum\":[\"kg\"],\"description\":\"Default unit is `kg`.\"}}},\"dimension\":{\"title\":\"Dimension\",\"type\":\"object\",\"properties\":{\"width\":{\"type\":\"number\"},\"height\":{\"type\":\"number\"},\"depth\":{\"type\":\"number\"},\"unit\":{\"type\":\"string\",\"enum\":[\"cm\"],\"description\":\"Default unit is `cm`.\"}}},\"battery\":{\"title\":\"Battery\",\"type\":\"object\",\"description\":\"Battery details. Usually required for cross-border shipments containing batteries.\",\"properties\":{\"material_type\":{\"type\":\"string\",\"enum\":[\"lithium_metal\",\"lithium_ion\"]},\"packing_type\":{\"type\":\"string\",\"enum\":[\"contained_in_equipment\",\"packed_with_equipment\",\"stand_alone\"]}}},\"carriyo-metadata\":{\"title\":\"Carriyo Metadata\",\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"request-source\":{\"title\":\"Request Source\",\"type\":\"object\",\"properties\":{\"source_type\":{\"type\":\"string\",\"description\":\"The system that originated the request (e.g., `api`, `dashboard`, `shopify_connector`).\"},\"source_id\":{\"type\":\"string\",\"description\":\"Identifier of the user or system that made the request.\"},\"api_pattern\":{\"type\":\"string\",\"description\":\"The API pattern that was invoked (for `source_type: api`).\"},\"request_type\":{\"type\":\"string\"},\"system_log_identifier\":{\"type\":\"string\"}}},\"error-response\":{\"title\":\"Error Response\",\"type\":\"object\",\"properties\":{\"error\":{\"type\":\"string\",\"description\":\"Error message describing what went wrong.\"},\"code\":{\"type\":\"string\",\"description\":\"Error code for programmatic handling.\"}}}},\"securitySchemes\":{\"OAuth2-Production\":{\"type\":\"oauth2\",\"flows\":{\"clientCredentials\":{\"tokenUrl\":\"https://api.carriyo.com/oauth/token\",\"scopes\":{}}}},\"OAuth2-Demo\":{\"type\":\"oauth2\",\"flows\":{\"clientCredentials\":{\"tokenUrl\":\"https://demo-api.carriyo.com/oauth/token\",\"scopes\":{}}}}}}}},\"options\":{\"hideTryItPanel\":false,\"pagination\":\"item\",\"noAutoAuth\":true,\"generateCodeSamples\":{\"languages\":[{\"lang\":\"curl\",\"label\":\"cURL\"},{\"lang\":\"JavaScript\",\"label\":\"JS\"},{\"lang\":\"Java\"},{\"lang\":\"Python\"},{\"lang\":\"Go\"},{\"lang\":\"PHP\"},{\"lang\":\"C#\"}]},\"disableSearch\":true,\"ctrlFHijack\":false,\"disableSidebar\":true,\"theme\":{\"overrides\":{\"DownloadButton\":{\"custom\":\"\"},\"NextSectionButton\":{\"custom\":\"\"}},\"codeBlock\":{\"tokens\":{}},\"schema\":{\"constraints\":{},\"examples\":{}},\"rightPanel\":{\"textColor\":\"#eeeeee\"},\"typography\":{\"heading1\":{},\"heading2\":{},\"heading3\":{},\"rightPanelHeading\":{}}}}}","redocHasSecurityDefinitions":false,"redocInfoPageLink":"/api/products/overview/","redocItemId":"tag/Products/operation/list-products","redocHasInfoPage":false,"settings":{"noAutoAuth":true,"generateCodeSamples":{"languages":[{"lang":"curl","label":"cURL"},{"lang":"JavaScript","label":"JS"},{"lang":"Java"},{"lang":"Python"},{"lang":"Go"},{"lang":"PHP"},{"lang":"C#"}]}},"requestLogin":false,"lastModified":"2026-05-05T11:00:19.000Z"},"seo":{"title":"List Products"}}},"pageContext":{"id":"8f205c3f-fc44-57c0-8ac9-c358e8950d01operation/list-products__redocly content/api/products/operation/list-products/","seo":{"title":"List Products","description":"Returns a paginated list of products that match the supplied filter, sort, and search criteria.\n\nThe list endpoint is backed by Elasticsearch and supports free-text search across product fields such as `description`, `sku`, `barcode`, `product_ref`, `hs_code`, `manufacturer_id`, and `material_composition`.\n\nFilters are applied as exact term matches. Most filters can be repeated to match any of the supplied values.","image":"","keywords":null,"jsonLd":null,"lang":null,"siteUrl":null},"pageId":"api/products.page.yaml#operation/list-products","pageBaseUrl":"/api/products","type":"redoc-operation","toc":{"enable":true,"maxDepth":4,"headings":null},"data":{},"catalogInfo":null,"link":"/api/products/operation/list-products/","sidebarName":"api","isLanding":false,"showPrevButton":null,"showNextButton":null,"apiVersions":[{"definitionId":"products","id":"products","title":"products","isDefault":true,"apiId":null}],"apiVersionId":null,"isDefaultApiVersion":true}},"staticQueryHashes":["1123603147","1302185487","1344209882","1398840060","1520077861","1975142765","2667623876","2950305614","3240152602","3743992808","561138138"]}