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_pricedata for the affected product. - When competitor pricing changes, the webhook includes the complete latest
competitor_pricedata 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
| Name | Type | Definition |
|---|---|---|
type | string | Specifies the webhook event type. For this event, the value is product_pricing_updated. |
webhook_version | string | Specifies the webhook version. For Public API v3 webhook events, the value is 3. |
action_date | string | The date and time when the pricing update event was generated, formatted as MM/DD/YYYY HH:MM:SS. |
payload | array | An array containing the complete latest data for the pricing category that triggered the webhook. |
meta | object | Change-tracking information for the webhook event. |
meta.changed_attributes | array | A list of manufacturer pricing types or competitor pricing fields whose meaningful values changed. |
Product Pricing Object Details
| Name | Type | Definition |
|---|---|---|
product_id | integer | Unique Skulytics product identifier. |
sku | string | Normalized product identifier used by Skulytics. |
market | object | Market information associated with competitor pricing. Included only when the webhook is triggered by a competitor pricing update. |
market.country | object | Country information for the affected competitor pricing market. |
market.country.country_id | integer | string | Unique country identifier. |
market.country.country_name | string | Country name, for example United States. |
market.country.country_code | string | ISO country code, for example US. |
market.zipcode | integer | ZIP code where the competitor pricing information applies. |
price | object | Container for the pricing category associated with the webhook event. |
price.manufacturer_price | object | Complete manufacturer-provided pricing information. Included only for manufacturer pricing updates. |
price.competitor_price | object | Complete 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
| Name | Type | Definition |
|---|---|---|
price.manufacturer_price.map | object | Minimum Advertised Price information. |
price.manufacturer_price.map.price | number | Current MAP value. Returns 0 when no MAP value is available. |
price.manufacturer_price.map.last_updated | string | null | Date and time when the MAP record was last updated. |
MSRP
| Name | Type | Definition |
|---|---|---|
price.manufacturer_price.msrp | object | Manufacturer's Suggested Retail Price information. |
price.manufacturer_price.msrp.price | number | Current MSRP value. Returns 0 when no MSRP value is available. |
price.manufacturer_price.msrp.last_updated | string | null | Date and time when the MSRP record was last updated. |
UMRP
| Name | Type | Definition |
|---|---|---|
price.manufacturer_price.umrp | array | Territory-based Unilateral Minimum Retail Price records. |
price.manufacturer_price.umrp[].territory | string | Territory where the UMRP value applies. |
price.manufacturer_price.umrp[].price | number | UMRP value for the territory. Returns 0 when no price is available. |
price.manufacturer_price.umrp[].last_updated | string | null | Date and time when the territory record was last updated. |
PMAP
| Name | Type | Definition |
|---|---|---|
price.manufacturer_price.pmap | object | Promotional Minimum Advertised Price information. |
price.manufacturer_price.pmap.price | number | Current promotional MAP value. Returns 0 when no price is available. |
price.manufacturer_price.pmap.start_date | string | null | Date when the promotional MAP period begins. |
price.manufacturer_price.pmap.end_date | string | null | Date when the promotional MAP period ends. |
price.manufacturer_price.pmap.last_updated | string | null | Date and time when the PMAP record was last updated. |
PUMRP
| Name | Type | Definition |
|---|---|---|
price.manufacturer_price.pumrp | array | Territory-based Promotional Unilateral Minimum Retail Price records. |
price.manufacturer_price.pumrp[].territory | string | Territory where the promotional UMRP value applies. |
price.manufacturer_price.pumrp[].price | number | Promotional UMRP value for the territory. Returns 0 when no price is available. |
price.manufacturer_price.pumrp[].start_date | string | null | Date when the promotional pricing period begins. |
price.manufacturer_price.pumrp[].end_date | string | null | Date when the promotional pricing period ends. |
price.manufacturer_price.pumrp[].last_updated | string | null | Date and time when the territory record was last updated. |
LRP
| Name | Type | Definition |
|---|---|---|
price.manufacturer_price.lrp | array | Territory-based Lowest Retail Price records. |
price.manufacturer_price.lrp[].territory | string | Territory where the LRP value applies. |
price.manufacturer_price.lrp[].price | number | LRP value for the territory. Returns 0 when no price is available. |
price.manufacturer_price.lrp[].last_updated | string | null | Date 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
| Name | Type | Definition |
|---|---|---|
price.competitor_price.lap | object | Competitor Lowest Advertised Price records. |
price.competitor_price.lap.lowest_price | object | Lowest LAP value and the competitor source providing it. |
price.competitor_price.lap.lowest_price.price | number | Lowest LAP value among the available competitor sources. Returns 0 when no lowest price is available. |
price.competitor_price.lap.lowest_price.source | string | null | Competitor source associated with the lowest LAP value. |
price.competitor_price.lap.lowest_price.last_updated | string | null | Date and time when the lowest LAP record was last updated. |
price.competitor_price.lap.lowes | object | Lowe's LAP information. |
price.competitor_price.lap.homedepot | object | Home Depot LAP information. |
price.competitor_price.lap.bestbuy | object | Best Buy LAP information. |
price.competitor_price.lap.ajmadison | object | AJ Madison LAP information. |
price.competitor_price.lap.pc_richard_son | object | P.C. Richard & Son LAP information. |
price.competitor_price.lap.official_website | object | Official manufacturer website LAP information. |
price.competitor_price.lap.<source>.price | number | LAP value returned by the competitor source. Returns 0 when no price is available. |
price.competitor_price.lap.<source>.last_updated | string | null | Date and time when the competitor source record was last updated. |
LCP
| Name | Type | Definition |
|---|---|---|
price.competitor_price.lcp | object | Competitor Lowest Cart Price records. |
price.competitor_price.lcp.lowest_price | object | Lowest LCP value and the competitor source providing it. |
price.competitor_price.lcp.lowest_price.price | number | Lowest LCP value among the available competitor sources. Returns 0 when no lowest price is available. |
price.competitor_price.lcp.lowest_price.source | string | null | Competitor source associated with the lowest LCP value. |
price.competitor_price.lcp.lowest_price.last_updated | string | null | Date and time when the lowest LCP record was last updated. |
price.competitor_price.lcp.lowes | object | Lowe's LCP information. |
price.competitor_price.lcp.homedepot | object | Home Depot LCP information. |
price.competitor_price.lcp.bestbuy | object | Best Buy LCP information. |
price.competitor_price.lcp.ajmadison | object | AJ Madison LCP information. |
price.competitor_price.lcp.pc_richard_son | object | P.C. Richard & Son LCP information. |
price.competitor_price.lcp.official_website | object | Official manufacturer website LCP information. |
price.competitor_price.lcp.<source>.price | number | LCP value returned by the competitor source. Returns 0 when no price is available. |
price.competitor_price.lcp.<source>.last_updated | string | null | Date 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:
| Value | Definition |
|---|---|
price.manufacturer_price.map | The existing MAP value changed, including a change to 0. |
price.manufacturer_price.msrp | The existing MSRP value changed, including a change to 0. |
price.manufacturer_price.umrp | One or more existing UMRP territory values changed, including a change to 0. |
price.manufacturer_price.pmap | The existing PMAP price or promotional period changed. |
price.manufacturer_price.pumrp | One or more existing PUMRP territory prices or promotional dates changed. |
price.manufacturer_price.lrp | One 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:
umrppumrplrp
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.
| Change | Changed Attribute |
|---|---|
| An existing Midwest UMRP value changes | price.manufacturer_price.umrp |
An existing Midwest UMRP value changes to 0 | price.manufacturer_price.umrp |
| Existing Midwest and West UMRP values change | price.manufacturer_price.umrp |
| Existing PUMRP territory prices or dates change | price.manufacturer_price.pumrp |
| An existing West LRP value changes | price.manufacturer_price.lrp |
Territory names and individual properties are not included in the changed-attribute path.
Promotional Pricing Behavior
Promotional pricing applies to:
pmappumrp
The following are considered meaningful promotional pricing updates:
- An existing promotional price changes.
- An existing promotional price changes to
0. - An existing promotional
start_datechanges. - An existing promotional
end_datechanges.
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.
