Batch Product Full Create

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://docs.maddenanalytics.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "Madden Analytics API MCP server": {
    "url": "https://docs.maddenanalytics.com/mcp"
  }
}

Close
POST /v2/api/products/batch

Batch Creates/updates product, variant, brand & categories where needed.\

application/json

Body Required

  • activePlanning boolean

    Active Planning indicates if the variant is included in planning

    Default value is false.

  • additionalSuppliers object

    Suppliers

  • ageGroup string

    AgeGroup assosciated with the product

  • brandName string Required

    Name of the products brand

  • carryOver boolean

    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.

  • categoryName string

    Category of product.

  • collection string

    Collection that the product belongs to

  • color string Required

    Color assosciated with the variant

  • costCalculationPrice number

    CostCalculationPrice is the base cost price to be used with CostCalculationValues.

  • costCalculationValues object

    CostCalculationValues used to calculate the cost price

  • costPrice number

    CostPrice of the Variant

  • costPriceCurrency string

    CostPriceCurrency of the Variant

  • customFields string

    Any JSON object holding additional filter attributes On writes its keys merge into the stored object: keys not sent are kept.

  • department string

    Department assosciated with the product

  • ean string

    EAN of Variant

  • endDate string

    Date the SKU stops selling (YYYY-MM-DD)

  • externalAttributes object

    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 string

    Gender assosciated with the product

  • id integer
  • imageUrl string
  • info object

    Any info / data needed by the integration (json)

  • key string Required

    Key used between products, transaction & stock tables. Usually SKU or EAN but needs to be same on all occurrences

  • leadTime integer

    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_time read 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.

  • moq integer

    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 integer

    Packsize

  • price number

    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.

  • priceCurrency string

    Sales Price Currency of the Variant

  • priceIncludingVat boolean

    If Price is including VAT or not. Always true in responses.

  • prices array[object]

    Prices of the Variant across multiple price lists

    Hide prices attributes Show prices attributes object
    • customPrice1 number
    • customPrice2 number
    • customPrice3 number
    • customPrice4 number
    • listExternalID string

      ID of Price list in external platform

    • price number

      Price including VAT.

    • vat number
  • productGroupID string Required

    ProductGroupID is used to group products together within Madden

  • productMoq integer

    Minimum Order Quantity of product

  • productName string Required

    Name of product

  • productType number

    Type of product (1: Normal/standard, 2: Commission, 3: Local)

    Values are 1, 2, or 3. Default value is 1.

  • productionLeadTimeDays integer

    Production lead time of the SKU in days.

  • season string

    Season that the product belongs to

  • shippingLeadTimeDays integer

    Shipping lead time of the SKU in days.

  • size string Required

    Size assosciated with the variant

  • sku string

    SKU of product. Should be unique per size/variant

  • skuMoq integer

    Minimum Order Quantity of the SKU (a single size)

  • skuSynonyms array[string]

    List of sku synonyms that should point to this variant

  • startDate string

    Date the SKU starts selling (YYYY-MM-DD)

  • status number

    Status of the variant (1: Inactive, 2: Active, 3: Outgoing)

    Values are 1, 2, 3, 4, 5, 6, or 7. Default value is 2.

  • subCategory string Required

    Subcategory of product. Should be a relevant for segmentation

  • supplier string

    Supplier of the Product

  • supplierPrice number

    Price to produce

  • supplierPriceCurrency string

    Currency to produce

  • unitVolume number

    Unit volume of the product in meters (l*w*h) (CBM)

  • variantExternalID string

    ID of variant in external platform

  • variantGroupID string

    VariantGroupID is used to group variants

  • variantMoq integer

    Minimum Order Quantity of variant

  • variantName string Required

    Name of specific variant

  • vatValue number

    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.

  • vendorSKU string

    Vendors SKU if using own sku structure

  • weight number

    Weight of the product in kilograms (kg)

  • wholesalePrice number

    Wholesale price of the Variant (Excl VAT). In responses: from the account's default B2B price list.

  • wholesalePriceCurrency string

    Currency Code of the Wholeale Price

  • year string

    Start of the porducts life-cycle

Responses

  • 201 application/json

    Created

    Hide response attributes Show response attributes object
    • error string
    • message string
    • statusCode integer
  • default application/json

    All errors will return the same object with a describing code & message

    Hide response attributes Show response attributes object
    • message string
    • reference string
    • referenceField string
    • statusCode integer
POST /v2/api/products/batch
curl \
 --request POST 'https://api.maddenanalytics.com/v2/api/products/batch' \
 --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"
  }
]'
Request examples
[
  {
    "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"
  }
]
Response examples (201)
[
  [
    {
      "error": "Error Type (if any)",
      "message": "Message describing the error",
      "statusCode": 400
    }
  ]
]
Response examples (default)
[
  {
    "message": "Missing BrandName",
    "reference": "123456-001-43",
    "referenceField": "key",
    "statusCode": 400
  }
]