## List Products `ProductListProductsResponse Products.ListProducts(ProductListProductsParams?parameters, CancellationTokencancellationToken = default)` **get** `/api/v2/public/products` Retrieves a paginated list of products. ### Parameters - `ProductListProductsParams parameters` - `string pageSize` The number of items per page. - `string pageStart` The starting page index for pagination. - `IReadOnlyList productNumber` Optional array of product numbers to filter by. ### Returns - `class ProductListProductsResponse:` Lightweight paginated result set. - `Long PageNumber` Current page number (1-based). - `Long PageSize` Maximum number of records returned per page. - `IReadOnlyList? Records` Collection of records for the current page. - `required string Barcode` - `required string ProductName` Display name of the product. - `required string ProductNumber` Unique product number. - `Boolean? AllowDecimal` - `string? AttentionCode` - `Double? AverageWeight` - `string? BarcodesArray` - `string? BaseUnitName` - `string? BrandCode` - `string? BrandDescription` - `Double CarrierItemQuantity` - `string? CategoryCode` - `string? Color` - `string? ColorCode` - `IReadOnlyList? CountriesAllowed` - `IReadOnlyList? CountriesNotAllowed` - `string? CountryCode` - `DateTimeOffset? DeprecationDate` - `Int EditMinMaxPercentage` - `Int? ExpirationMinRange` - `IReadOnlyList? FreeFields` - `string? Key` - `Int SortOrder` - `string? Value` - `string? GeneralLedger` - `string? ImageUrl` - `Boolean? IsActive` - `Boolean? IsCounted` - `Boolean? IsEditMinMax` - `Boolean? IsEditReplenishment` - `Boolean? IsExpiration` - `Boolean? IsOrderManually` - `Boolean? IsPromotion` - `Boolean? IsSet` - `Boolean? IsStock` - `Boolean? IsStoreProduct` - `Boolean? IsTemplate` - `string? MarginCategory` - `Double? Moq` - `Double? OldPrice` - `Double? Price` - `Double PriceCompareMultiplier` - `string? PriceCompareUnit` - `string? PriceLines` - `string? ProductDetails` - `string? ProductType` - `string? ProductUrl` - `IReadOnlyList? PromoStoresAllowed` - `IReadOnlyList? PromoStoresNotAllowed` - `string? Promotion` - `string? PromotionWeek` - `Double? PurchasePrice` - `string? PurchaseUnitBarcode` - `string? PurchaseUnitName` - `string? PurchaseUnitProductNumber` - `Double? PurchaseUnitQuantity` - `string? ReferralProductID` - `Boolean? ResetStoreStock` - `IReadOnlyList? SetProduct` - `string? SetItemQuantity` - `string? SetProductNumber` - `Boolean? ShelfLabel` - `Boolean? ShelfLabelBarcode` - `Int? ShelfLabelLayout` - `Boolean? ShelfLabelPrice` - `Int ShelfLabelQuantity` - `string? Size` - `string? SizeCode` - `string? SmallestProductNumber` - `Double? SmallestQuantity` - `Double? SpecialPrice` - `IReadOnlyList? StoresAllowed` - `IReadOnlyList? StoresNotAllowed` - `string? SupplierID` - `string? SupplierName` - `string? SupplierProductNumber` - `IReadOnlyList? Units` - `string? UnitBarcode` - `string? UnitName` - `Double UnitQuantity` - `string? VariantCode` - `Double? VariantFactor` - `string? VariantFamily` - `string? Volume` - `Long TotalRecordCount` Total number of records matching the query across all pages. ### Example ```csharp ProductListProductsParams parameters = new(); var response = await client.Products.ListProducts(parameters); Console.WriteLine(response); ```