Product Pricing Updated

This webhook event is used to notify clients when existing product pricing information changes in Skulytics.

The product_pricing_updated webhook supports both manufacturer pricing and competitor pricing updates.

The payload returned by this webhook depends on the pricing category that triggered the event:

  • When manufacturer pricing changes, the webhook includes the complete latest manufacturer_price data for the affected product.
  • When competitor pricing changes, the webhook includes the complete latest competitor_price data for the affected product, market, and ZIP code.

Manufacturer pricing is not ZIP-code dependent. Therefore, manufacturer pricing webhook payloads do not include market or ZIP code information.

Competitor pricing is market and ZIP-code dependent. Therefore, competitor pricing webhook payloads include the applicable country and ZIP code.

Clients can use meta.changed_attributes to identify which pricing types, competitor sources, or pricing values changed.

Event Type

product_pricing_updated

When This Webhook Is Sent

The product_pricing_updated webhook is sent when supported existing pricing data changes.

The scope of the event depends on the pricing category:

  • Manufacturer pricing updates are triggered for a specific product.
  • Competitor pricing updates are triggered for a specific product, market, and ZIP code.

Event Sent

Example — Manufacturer Pricing Updated

{
  "type": "product_pricing_updated",
  "webhook_version": "3",
  "action_date": "06/20/2026 02:01:59",
  "payload": [
    {
      "product_id": 4,
      "sku": "HTX24EASKWS",
      "price": {
        "manufacturer_price": {
          "map": {
            "price": 579,
            "last_updated": "4/27/2024 6:48 AM"
          },
          "msrp": {
            "price": 579,
            "last_updated": "4/27/2024 6:47 AM"
          },
          "umrp": [
            {
              "territory": "No Territory",
              "price": 0,
              "last_updated": null
            },
            {
              "territory": "Midwest",
              "price": 0,
              "last_updated": null
            },
            {
              "territory": "Southeast",
              "price": 0,
              "last_updated": null
            },
            {
              "territory": "West",
              "price": 0,
              "last_updated": null
            }
          ],
          "pmap": {
            "price": 0,
            "start_date": null,
            "end_date": null,
            "last_updated": null
          },
          "pumrp": [
            {
              "territory": "No Territory",
              "price": 0,
              "start_date": null,
              "end_date": null,
              "last_updated": null
            },
            {
              "territory": "Midwest",
              "price": 0,
              "start_date": null,
              "end_date": null,
              "last_updated": null
            },
            {
              "territory": "Southeast",
              "price": 0,
              "start_date": null,
              "end_date": null,
              "last_updated": null
            },
            {
              "territory": "West",
              "price": 0,
              "start_date": null,
              "end_date": null,
              "last_updated": null
            }
          ],
          "lrp": [
            {
              "territory": "No Territory",
              "price": 0,
              "last_updated": null
            },
            {
              "territory": "Midwest",
              "price": 0,
              "last_updated": null
            },
            {
              "territory": "Southeast",
              "price": 0,
              "last_updated": null
            },
            {
              "territory": "West",
              "price": 0,
              "last_updated": null
            }
          ]
        }
      }
    }
  ],
  "meta": {
    "changed_attributes": [
      "price.manufacturer_price.map",
      "price.manufacturer_price.msrp"
    ]
  }
}

Example — Competitor Pricing Updated

{
  "type": "product_pricing_updated",
  "webhook_version": "3",
  "action_date": "06/20/2026 02:01:59",
  "payload": [
    {
      "product_id": 4,
      "sku": "HTX24EASKWS",
      "market": {
        "country": {
          "country_id": "1",
          "country_name": "United States",
          "country_code": "US"
        },
        "zipcode": 63011
      },
      "price": {
        "competitor_price": {
          "lap": {
            "lowest_price": {
              "price": 0,
              "source": null,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "lowes": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "homedepot": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "bestbuy": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "ajmadison": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "pc_richard_son": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "official_website": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            }
          },
          "lcp": {
            "lowest_price": {
              "price": 0,
              "source": null,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "lowes": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "homedepot": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "bestbuy": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "ajmadison": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "pc_richard_son": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            },
            "official_website": {
              "price": 0,
              "last_updated": "2/23/2026 9:30 PM"
            }
          }
        }
      }
    }
  ],
  "meta": {
    "changed_attributes": [
      "price.competitor_price.lap.ajmadison.price"
    ]
  }
}

Payload Details

NameTypeDefinition
typestringSpecifies the webhook event type. For this event, the value is product_pricing_updated.
webhook_versionstringSpecifies the webhook version. For Public API v3 webhook events, the value is 3.
action_datestringThe date and time when the pricing update event was generated, formatted as MM/DD/YYYY HH:MM:SS.
payloadarrayAn array containing the complete latest data for the pricing category that triggered the webhook.
metaobjectChange-tracking information for the webhook event.
meta.changed_attributesarrayA list of manufacturer pricing types or competitor pricing fields whose meaningful values changed.

Product Pricing Object Details

NameTypeDefinition
product_idintegerUnique Skulytics product identifier.
skustringNormalized product identifier used by Skulytics.
marketobjectMarket information associated with competitor pricing. Included only when the webhook is triggered by a competitor pricing update.
market.countryobjectCountry information for the affected competitor pricing market.
market.country.country_idinteger | stringUnique country identifier.
market.country.country_namestringCountry name, for example United States.
market.country.country_codestringISO country code, for example US.
market.zipcodeintegerZIP code where the competitor pricing information applies.
priceobjectContainer for the pricing category associated with the webhook event.
price.manufacturer_priceobjectComplete manufacturer-provided pricing information. Included only for manufacturer pricing updates.
price.competitor_priceobjectComplete competitor pricing information. Included only for competitor pricing updates.

Manufacturer Pricing Details

Manufacturer pricing is product-level pricing and does not depend on ZIP code.

When a manufacturer pricing change triggers the webhook, price.manufacturer_price contains the complete current manufacturer pricing structure.

MAP

NameTypeDefinition
price.manufacturer_price.mapobjectMinimum Advertised Price information.
price.manufacturer_price.map.pricenumberCurrent MAP value. Returns 0 when no MAP value is available.
price.manufacturer_price.map.last_updatedstring | nullDate and time when the MAP record was last updated.

MSRP

NameTypeDefinition
price.manufacturer_price.msrpobjectManufacturer's Suggested Retail Price information.
price.manufacturer_price.msrp.pricenumberCurrent MSRP value. Returns 0 when no MSRP value is available.
price.manufacturer_price.msrp.last_updatedstring | nullDate and time when the MSRP record was last updated.

UMRP

NameTypeDefinition
price.manufacturer_price.umrparrayTerritory-based Unilateral Minimum Retail Price records.
price.manufacturer_price.umrp[].territorystringTerritory where the UMRP value applies.
price.manufacturer_price.umrp[].pricenumberUMRP value for the territory. Returns 0 when no price is available.
price.manufacturer_price.umrp[].last_updatedstring | nullDate and time when the territory record was last updated.

PMAP

NameTypeDefinition
price.manufacturer_price.pmapobjectPromotional Minimum Advertised Price information.
price.manufacturer_price.pmap.pricenumberCurrent promotional MAP value. Returns 0 when no price is available.
price.manufacturer_price.pmap.start_datestring | nullDate when the promotional MAP period begins.
price.manufacturer_price.pmap.end_datestring | nullDate when the promotional MAP period ends.
price.manufacturer_price.pmap.last_updatedstring | nullDate and time when the PMAP record was last updated.

PUMRP

NameTypeDefinition
price.manufacturer_price.pumrparrayTerritory-based Promotional Unilateral Minimum Retail Price records.
price.manufacturer_price.pumrp[].territorystringTerritory where the promotional UMRP value applies.
price.manufacturer_price.pumrp[].pricenumberPromotional UMRP value for the territory. Returns 0 when no price is available.
price.manufacturer_price.pumrp[].start_datestring | nullDate when the promotional pricing period begins.
price.manufacturer_price.pumrp[].end_datestring | nullDate when the promotional pricing period ends.
price.manufacturer_price.pumrp[].last_updatedstring | nullDate and time when the territory record was last updated.

LRP

NameTypeDefinition
price.manufacturer_price.lrparrayTerritory-based Lowest Retail Price records.
price.manufacturer_price.lrp[].territorystringTerritory where the LRP value applies.
price.manufacturer_price.lrp[].pricenumberLRP value for the territory. Returns 0 when no price is available.
price.manufacturer_price.lrp[].last_updatedstring | nullDate and time when the territory record was last updated.

Competitor Pricing Details

Competitor pricing is associated with a specific market and ZIP code.

When a competitor pricing change triggers the webhook, the payload includes market and the complete current price.competitor_price structure for the affected ZIP code.

LAP

NameTypeDefinition
price.competitor_price.lapobjectCompetitor Lowest Advertised Price records.
price.competitor_price.lap.lowest_priceobjectLowest LAP value and the competitor source providing it.
price.competitor_price.lap.lowest_price.pricenumberLowest LAP value among the available competitor sources. Returns 0 when no lowest price is available.
price.competitor_price.lap.lowest_price.sourcestring | nullCompetitor source associated with the lowest LAP value.
price.competitor_price.lap.lowest_price.last_updatedstring | nullDate and time when the lowest LAP record was last updated.
price.competitor_price.lap.lowesobjectLowe's LAP information.
price.competitor_price.lap.homedepotobjectHome Depot LAP information.
price.competitor_price.lap.bestbuyobjectBest Buy LAP information.
price.competitor_price.lap.ajmadisonobjectAJ Madison LAP information.
price.competitor_price.lap.pc_richard_sonobjectP.C. Richard & Son LAP information.
price.competitor_price.lap.official_websiteobjectOfficial manufacturer website LAP information.
price.competitor_price.lap.<source>.pricenumberLAP value returned by the competitor source. Returns 0 when no price is available.
price.competitor_price.lap.<source>.last_updatedstring | nullDate and time when the competitor source record was last updated.

LCP

NameTypeDefinition
price.competitor_price.lcpobjectCompetitor Lowest Cart Price records.
price.competitor_price.lcp.lowest_priceobjectLowest LCP value and the competitor source providing it.
price.competitor_price.lcp.lowest_price.pricenumberLowest LCP value among the available competitor sources. Returns 0 when no lowest price is available.
price.competitor_price.lcp.lowest_price.sourcestring | nullCompetitor source associated with the lowest LCP value.
price.competitor_price.lcp.lowest_price.last_updatedstring | nullDate and time when the lowest LCP record was last updated.
price.competitor_price.lcp.lowesobjectLowe's LCP information.
price.competitor_price.lcp.homedepotobjectHome Depot LCP information.
price.competitor_price.lcp.bestbuyobjectBest Buy LCP information.
price.competitor_price.lcp.ajmadisonobjectAJ Madison LCP information.
price.competitor_price.lcp.pc_richard_sonobjectP.C. Richard & Son LCP information.
price.competitor_price.lcp.official_websiteobjectOfficial manufacturer website LCP information.
price.competitor_price.lcp.<source>.pricenumberLCP value returned by the competitor source. Returns 0 when no price is available.
price.competitor_price.lcp.<source>.last_updatedstring | nullDate and time when the competitor source record was last updated.

Changed Attributes

The meta.changed_attributes field identifies the meaningful pricing data that changed.

Manufacturer and competitor pricing use different levels of detail in their changed-attribute paths.

Manufacturer Pricing Changed Attributes

For manufacturer pricing, the changed-attribute path stops at the pricing-type level.

Valid values include:

ValueDefinition
price.manufacturer_price.mapThe existing MAP value changed, including a change to 0.
price.manufacturer_price.msrpThe existing MSRP value changed, including a change to 0.
price.manufacturer_price.umrpOne or more existing UMRP territory values changed, including a change to 0.
price.manufacturer_price.pmapThe existing PMAP price or promotional period changed.
price.manufacturer_price.pumrpOne or more existing PUMRP territory prices or promotional dates changed.
price.manufacturer_price.lrpOne or more existing LRP territory values changed, including a change to 0.

Competitor Pricing Changed Attributes

Competitor pricing uses detailed changed-attribute paths so clients can identify the affected pricing group, source, and field.

Valid examples include:

price.competitor_price.lap.lowest_price.price

price.competitor_price.lap.lowest_price.source

price.competitor_price.lap.ajmadison.price

price.competitor_price.lcp.homedepot.price

Territory-Based Pricing Behavior

Territory-based pricing applies to:

  • umrp
  • pumrp
  • lrp

When a manufacturer pricing webhook is sent, the complete territory array remains included in the payload, including territory records that did not change.

If one or more existing territory values change, meta.changed_attributes identifies only the related manufacturer pricing type.

ChangeChanged Attribute
An existing Midwest UMRP value changesprice.manufacturer_price.umrp
An existing Midwest UMRP value changes to 0price.manufacturer_price.umrp
Existing Midwest and West UMRP values changeprice.manufacturer_price.umrp
Existing PUMRP territory prices or dates changeprice.manufacturer_price.pumrp
An existing West LRP value changesprice.manufacturer_price.lrp

Territory names and individual properties are not included in the changed-attribute path.

Promotional Pricing Behavior

Promotional pricing applies to:

  • pmap
  • pumrp

The following are considered meaningful promotional pricing updates:

  • An existing promotional price changes.
  • An existing promotional price changes to 0.
  • An existing promotional start_date changes.
  • An existing promotional end_date changes.

A promotional pricing record being added for the first time does not trigger this webhook.

For PMAP updates, meta.changed_attributes returns:

price.manufacturer_price.pmap

For PUMRP updates, meta.changed_attributes returns:

price.manufacturer_price.pumrp

The individual promotional property that changed is not included in the changed-attribute path.