Lists all Products with prices from all price lists
Query parameters
-
Page Number
Minimum value is
1. Default value is1. -
Page Size
Default value is
10. -
Filter on a specific key
-
Filter by sku ID, repeatable (e.g. ?sku_id=1&sku_id=2)
-
Filter by sku, repeatable (e.g. ?skus=abc&skus=def)
-
Filter by season, repeatable (e.g. ?seasons=AW25&seasons=SS25)
-
Filter by productGroupId, repeatable (e.g. ?productgroupids=1&productgroupids=2)
-
Filter by variantGroupId, repeatable (e.g. ?variantgroupids=1&variantgroupids=2)
-
Return each variant's sizes in size order (XS, S, M, L, ...) instead of by id, grouped by productGroupID and variantGroupID. Sorts the returned page only, so raise pageSize (max 10000) to keep a variant whole
Default value is
false.
Body
Required
-
Active Planning indicates if the variant is included in planning
Default value is
false. -
Suppliers
-
AgeGroup assosciated with the product
-
Name of the products brand
-
CarryOver marks a new version of an existing SKU (same sku, new season) on accounts that version SKUs by season. The new version inherits every field the request does not send from the SKU's latest existing version: attributes, custom fields, info, prices and suppliers alike. Key, season, status and sales dates are not inherited. Ignored when the version already exists, which is updated as sent (info replaced, a legacy price needing vatValue) except that an omitted brand or category name keeps the stored one, and on accounts without versions. On accounts with versions, an externalSizeId in the sent info (the key the size had before it was carried over) becomes a synonym of the version, so a later keyswitch from that key finds it.
-
Category of product.
-
Collection that the product belongs to
-
Color assosciated with the variant
-
CostCalculationPrice is the base cost price to be used with CostCalculationValues.
-
CostCalculationValues used to calculate the cost price
-
CostPrice of the Variant
-
CostPriceCurrency of the Variant
-
Any JSON object holding additional filter attributes On writes its keys merge into the stored object: keys not sent are kept.
-
Department assosciated with the product
-
EAN of Variant
-
Date the SKU stops selling (YYYY-MM-DD)
-
External Attributes is a JSON field that can be used to store any additional information about the product. On writes its keys merge into the stored object: keys not sent are kept, null values are ignored.
-
Gender assosciated with the product
-
Any info / data needed by the integration (json)
-
Key used between products, transaction & stock tables. Usually SKU or EAN but needs to be same on all occurrences
-
DEPRECATED: derived = ProductionLeadTimeDays + ShippingLeadTimeDays. Use the split fields below. The physical skus.lead_time column has been retired, so this field must never be written. gorm:"->" (read-only) blocks struct-based writes (Save / Updates(struct)) while keeping the list endpoint's
as lead_timeread alias working. It does NOT cover the Assign(item). FirstOrCreate upsert path, whose SET map is built via BuildCondition (keyed on Readable) — that path omits "lead_time" explicitly in Create(). See MAD-8917. -
DEPRECATED: use variantMoq. The same value under its old name; either one writes the variant MOQ, and sending both with different values is rejected.
-
Packsize
-
Sales Price of the Variant. In requests: including or excluding VAT according to priceIncludingVat (excluding when omitted); a price excluding VAT is converted to gross with vatValue. In responses: the gross (inc VAT) price from the account's default D2C price list, with priceIncludingVat set to true.
-
Sales Price Currency of the Variant
-
If Price is including VAT or not. Always true in responses.
-
Prices of the Variant across multiple price lists
-
ProductGroupID is used to group products together within Madden
-
Minimum Order Quantity of product
-
Name of product
-
Type of product (1: Normal/standard, 2: Commission, 3: Local)
Values are
1,2, or3. Default value is1. -
Production lead time of the SKU in days.
-
Season that the product belongs to
-
Shipping lead time of the SKU in days.
-
Size assosciated with the variant
-
SKU of product. Should be unique per size/variant
-
Minimum Order Quantity of the SKU (a single size)
-
List of sku synonyms that should point to this variant
-
Date the SKU starts selling (YYYY-MM-DD)
-
Status of the variant (1: Inactive, 2: Active, 3: Outgoing)
Values are
1,2,3,4,5,6, or7. Default value is2. -
Subcategory of product. Should be a relevant for segmentation
-
Supplier of the Product
-
Price to produce
-
Currency to produce
-
Unit volume of the product in meters (l*w*h) (CBM)
-
ID of variant in external platform
-
VariantGroupID is used to group variants
-
Minimum Order Quantity of variant
-
Name of specific variant
-
Vat Value is the percentage of VAT. When price is sent and vatValue is omitted or 0, the default D2C price list's default VAT is used if the list has one; any other value is used as sent, even when it differs from that default.
-
Vendors SKU if using own sku structure
-
Weight of the product in kilograms (kg)
-
Wholesale price of the Variant (Excl VAT). In responses: from the account's default B2B price list.
-
Currency Code of the Wholeale Price
-
Start of the porducts life-cycle
curl \
--request GET 'https://api.maddenanalytics.com/v2/api/products' \
--header "Authorization: $API_KEY" \
--header "Content-Type: application/json" \
--data '{
"activePlanning": true,
"additionalSuppliers": {},
"ageGroup": "Senior",
"brandName": "Acme",
"carryOver": true,
"categoryName": "Sneakers",
"collection": "SS21",
"color": "Black",
"costCalculationPrice": 42.0,
"costCalculationValues": {},
"costPrice": 42,
"costPriceCurrency": "USD",
"customFields": "{}",
"department": "Sports",
"ean": "7340192703345",
"endDate": "2026-02-01",
"externalAttributes": {},
"gender": "Unisex",
"id": 42,
"imageUrl": "https://example.com/image.jpg",
"info": {},
"key": "7340192703345",
"leadTime": 3,
"moq": 300,
"packsize": 1,
"price": 42,
"priceCurrency": "USD",
"priceIncludingVat": true,
"prices": [
{
"customPrice1": 42.0,
"customPrice2": 42.0,
"customPrice3": 42.0,
"customPrice4": 42.0,
"listExternalID": "retail_SEK",
"price": 42.0,
"vat": 42.0
}
],
"productGroupID": "123456",
"productMoq": 300,
"productName": "Petter",
"productType": 1,
"productionLeadTimeDays": 30,
"season": "Spring/Summer",
"shippingLeadTimeDays": 14,
"size": "43",
"sku": "123456-001-43",
"skuMoq": 50,
"skuSynonyms": [
"string"
],
"startDate": "2026-01-15",
"status": 2,
"subCategory": "Low Sneakers",
"supplier": "string",
"supplierPrice": 42,
"supplierPriceCurrency": "string",
"unitVolume": 42.0,
"variantExternalID": "shopify_432345",
"variantGroupID": "123456-001",
"variantMoq": 300,
"variantName": "Petter Black",
"vatValue": 25,
"vendorSKU": "9876543-001-43",
"weight": 42.0,
"wholesalePrice": 42,
"wholesalePriceCurrency": "USD",
"year": "2021"
}'
{
"activePlanning": true,
"additionalSuppliers": {},
"ageGroup": "Senior",
"brandName": "Acme",
"carryOver": true,
"categoryName": "Sneakers",
"collection": "SS21",
"color": "Black",
"costCalculationPrice": 42.0,
"costCalculationValues": {},
"costPrice": 42,
"costPriceCurrency": "USD",
"customFields": "{}",
"department": "Sports",
"ean": "7340192703345",
"endDate": "2026-02-01",
"externalAttributes": {},
"gender": "Unisex",
"id": 42,
"imageUrl": "https://example.com/image.jpg",
"info": {},
"key": "7340192703345",
"leadTime": 3,
"moq": 300,
"packsize": 1,
"price": 42,
"priceCurrency": "USD",
"priceIncludingVat": true,
"prices": [
{
"customPrice1": 42.0,
"customPrice2": 42.0,
"customPrice3": 42.0,
"customPrice4": 42.0,
"listExternalID": "retail_SEK",
"price": 42.0,
"vat": 42.0
}
],
"productGroupID": "123456",
"productMoq": 300,
"productName": "Petter",
"productType": 1,
"productionLeadTimeDays": 30,
"season": "Spring/Summer",
"shippingLeadTimeDays": 14,
"size": "43",
"sku": "123456-001-43",
"skuMoq": 50,
"skuSynonyms": [
"string"
],
"startDate": "2026-01-15",
"status": 2,
"subCategory": "Low Sneakers",
"supplier": "string",
"supplierPrice": 42,
"supplierPriceCurrency": "string",
"unitVolume": 42.0,
"variantExternalID": "shopify_432345",
"variantGroupID": "123456-001",
"variantMoq": 300,
"variantName": "Petter Black",
"vatValue": 25,
"vendorSKU": "9876543-001-43",
"weight": 42.0,
"wholesalePrice": 42,
"wholesalePriceCurrency": "USD",
"year": "2021"
}
[
{
"activePlanning": true,
"additionalSuppliers": {},
"ageGroup": "Senior",
"brandName": "Acme",
"carryOver": true,
"categoryName": "Sneakers",
"collection": "SS21",
"color": "Black",
"costCalculationPrice": 42.0,
"costCalculationValues": {},
"costPrice": 42,
"costPriceCurrency": "USD",
"customFields": "{}",
"department": "Sports",
"ean": "7340192703345",
"endDate": "2026-02-01",
"externalAttributes": {},
"gender": "Unisex",
"id": 42,
"imageUrl": "https://example.com/image.jpg",
"info": {},
"key": "7340192703345",
"leadTime": 3,
"moq": 300,
"packsize": 1,
"price": 42,
"priceCurrency": "USD",
"priceIncludingVat": true,
"prices": [
{
"customPrice1": 42.0,
"customPrice2": 42.0,
"customPrice3": 42.0,
"customPrice4": 42.0,
"listExternalID": "retail_SEK",
"price": 42.0,
"vat": 42.0
}
],
"productGroupID": "123456",
"productMoq": 300,
"productName": "Petter",
"productType": 1,
"productionLeadTimeDays": 30,
"season": "Spring/Summer",
"shippingLeadTimeDays": 14,
"size": "43",
"sku": "123456-001-43",
"skuMoq": 50,
"skuSynonyms": [
"string"
],
"startDate": "2026-01-15",
"status": 2,
"subCategory": "Low Sneakers",
"supplier": "string",
"supplierPrice": 42,
"supplierPriceCurrency": "string",
"unitVolume": 42.0,
"variantExternalID": "shopify_432345",
"variantGroupID": "123456-001",
"variantMoq": 300,
"variantName": "Petter Black",
"vatValue": 25,
"vendorSKU": "9876543-001-43",
"weight": 42.0,
"wholesalePrice": 42,
"wholesalePriceCurrency": "USD",
"year": "2021"
}
]
{
"error": "Error Type (if any)",
"message": "Message describing the error",
"statusCode": 400
}