This webhook event is used to notify clients when product specification information changes in Skulytics.
The product_spec_updated webhook helps clients keep product specifications synchronized with Skulytics.
When product specification data changes, Skulytics sends this webhook with the complete latest Product Specifications payload for the affected product.
The webhook does not return only the specification that changed. Instead, it returns the complete current product_specs collection after the change has been applied.
Clients can use meta.changed_attributes to identify that the product_specs collection changed.
Event Type
product_spec_updated
When This Webhook Is Sent
The product_spec_updated webhook is sent when product specification data changes.
Changes may include:
- A specification is added.
- A specification is removed.
- A specification section changes.
- A specification name changes.
- A specification value changes.
- The number of product specifications changes.
- The specification collection changes.
The webhook is not sent when the latest specification data is identical to the existing specification data.
The detailed trigger behavior for PIM and scraping processes is handled separately from this webhook specification.
Supported Specification Type
The webhook supports changes to:
product_specs
Event Sent
Example — Product Spec Updated
{
"type": "product_spec_updated",
"webhook_version": "3",
"action_date": "06/20/2026 02:01:59",
"payload": [
{
"product_id": 989,
"sku": "GNE27JYMFS",
"product_specs": [
{
"section": "Warranty",
"spec": "Parts",
"value": "1 Year"
},
{
"section": "Warranty",
"spec": "Labor",
"value": "1 Year"
},
{
"section": "WEIGHTS & DIMENSIONS",
"spec": "Overall Depth",
"value": "35.875 in"
},
{
"section": "WEIGHTS & DIMENSIONS",
"spec": "Overall Width",
"value": "35.75 in"
},
{
"section": "WEIGHTS & DIMENSIONS",
"spec": "Overall Height",
"value": "69.875 in"
},
{
"section": "Other",
"spec": "Back Air Clearances",
"value": "2 in"
},
{
"section": "Other",
"spec": "Top Air Clearances",
"value": "1 in"
},
{
"section": "Other",
"spec": "Side Air Clearances",
"value": "0.125 in"
},
{
"section": "Dimensions & Weight",
"spec": "Width",
"value": "35.75 in."
},
{
"section": "Dimensions & Weight",
"spec": "Height",
"value": "69.88 in."
},
{
"section": "Dimensions & Weight",
"spec": "Length",
"value": "35.88 in."
},
{
"section": "Dimensions & Weight",
"spec": "Weight",
"value": "308 lbs."
},
{
"section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
"spec": "Number of Boxes",
"value": "1"
},
{
"section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
"spec": "Shipping Width",
"value": "40.75 in."
},
{
"section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
"spec": "Shipping Height",
"value": "74.88 in."
},
{
"section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
"spec": "Shipping Length",
"value": "40.88 in."
},
{
"section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
"spec": "Shipping Weight",
"value": "348 lbs."
},
{
"section": "Cubic Feet Measurement & Dimensional Weight",
"spec": "Cubic Feet Measurement",
"value": "51.86 ft³"
},
{
"section": "FEATURES",
"spec": "Temperature Management Features",
"value": "Turbo Cool setting"
},
{
"section": "CAPACITY",
"spec": "Fresh Food Capacity",
"value": "18.82 cu ft"
},
{
"section": "FEATURES",
"spec": "Icemaker",
"value": "Factory-Installed"
},
{
"section": "APPEARANCE",
"spec": "Case Color",
"value": "Gray"
},
{
"section": "POWER / RATINGS",
"spec": "Energy Consumption (kWh/year)",
"value": "633"
},
{
"section": "WARRANTY",
"spec": "Labor Warranty",
"value": "Limited 1-year entire appliance"
},
{
"section": "CAPACITY",
"spec": "Total Capacity (cubic feet)",
"value": "27.00 cu ft"
},
{
"section": "FEATURES",
"spec": "Exterior Style",
"value": "Free-Standing"
}
],
"date_modified": "6/16/2026 6:04 AM"
}
],
"meta": {
"changed_attributes": [
"product_specs"
]
}
}Payload Behavior
When the webhook is sent, the payload contains the complete latest Product Specifications data for the affected product.
The webhook does not return only the specification that was added, removed, or updated.
The product_specs array always represents the latest current state of the product's specification collection at the time the webhook is generated.
For example:
- If a product previously has 20 specifications and 1 specification is deleted, the webhook returns the remaining 19 current specifications.
- If a product has 20 specifications and the value of 1 specification changes, the webhook returns all 20 current specifications.
- If a product has 20 specifications and the section of 1 specification changes, the webhook returns all 20 current specifications.
- If a product has 20 specifications and the specification name of 1 record changes, the webhook returns all 20 current specifications.
- If a new specification is added to a product that previously had 20 specifications, the webhook returns all 21 current specifications.
- Specifications that did not change remain included in the payload.
- Specifications that were deleted are no longer included in the payload.
Clients should use the returned product_specs array as the complete latest specification state for the product rather than treating the payload as a list of individual specification changes.
The meta.changed_attributes field indicates that the product_specs collection changed, but it does not identify the specific specification record or specification field that changed.
Empty Specification Behavior
The product_specs field is returned as an array.
When no product specifications are available, the field returns an empty array:
{
"product_specs": []
}For example, if the last remaining specification is removed, the latest payload includes:
{
"product_id": 989,
"sku": "GNE27JYMFS",
"product_specs": [],
"date_modified": "06/20/2026 02:01 PM"
}Removing the last specification is considered a product specification update and can trigger the webhook.
Payload Details
| Name | Type | Definition |
|---|---|---|
| type | string | Specifies the webhook event type. For this event, the value is product_spec_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 specification update event was generated, formatted as MM/DD/YYYY HH:MM:SS. |
| payload | array | An array containing the complete latest Product Specifications data for the affected product. |
| meta | object | Change-tracking information for the webhook event. |
| meta.changed_attributes | array | Identifies which supported specification collection changed. For this webhook, the value is product_specs. |
Product Specification Object Details
| Name | Type | Definition |
|---|---|---|
| product_id | integer | Unique Skulytics product identifier. |
| sku | string | Normalized product identifier used by Skulytics. |
| product_specs | array | Complete latest collection of current product specification records. |
| date_modified | string | Date and time when the product specification data was last modified. |
Product Specification Details
| Name | Type | Definition |
|---|---|---|
| product_specs[].section | string | The section or category used to group the specification, such as FEATURES, CAPACITY, Warranty, or WEIGHTS & DIMENSIONS. |
| product_specs[].spec | string | The name of the product specification, such as Overall Width, Weight, or Total Capacity (cubic feet). |
| product_specs[].value | string | null | The current value of the specification, including units when applicable. |
The complete latest product_specs array is included whenever the webhook is sent.
Changes to product_specs may include:
- A specification is added.
- A specification is removed.
- A specification section changes.
- A specification name changes.
- A specification value changes.
- The number of specifications changes.
- The specification collection changes.
When any of these changes occur, meta.changed_attributes includes:
product_specs
Changed Attributes
The meta.changed_attributes field identifies which supported specification collection changed.
For the product_spec_updated webhook, the supported value is:
| Value | Definition |
|---|---|
| product_specs | The product specification collection, section, specification name, value, or quantity changed. |
The changed-attribute path stops at the specification collection level.
Regardless of which specification record or field changes, meta.changed_attributes contains only:
{
"meta": {
"changed_attributes": [
"product_specs"
]
}
}More detailed changed-attribute paths are not returned.
For example, the webhook does not return:
product_specs.section
product_specs.spec
product_specs.value
