# Events - Index Item

## Available events

<table><thead><tr><th>Event type</th><th>Event schema</th></tr></thead><tbody><tr><td>index-item.updated</td><td><pre class="language-json"><code class="lang-json">{
      "id": "String",
      "code": "String",
      "siteCode": "String",
      "name": "Object",
      "description": "Object",
      "categoryAssignments": [
        {
          "id": "String",
          "code": "String",
          "name": "String",
          "localizedName": "Object",
          "localizedSlug": "Object",
          "parent": "Object"
        }
      ],
      "tags": [
        "String"
      ],
      "segmentIds": [
        "String"
      ],
      "popularity": "Integer",
      "prices": [
        {
          "id": "String"
        }
      ],
      "medias": [
        {
          "url": "String"
        }
      ],
      "availability": "Object",
      "mixins": "Map",
      "published": "Boolean",
      "available": "Boolean",
      "relatedItems": [
        {
          "refId": "String",
          "type": "String"
        }
      ],
      "productType": "String",
      "parentVariantId": "String",
      "labels": [
        {
          "id": "String",
          "name": "String",
          "description": "LocalizedString",
          "image": "String",
          "cloudinaryUrl": "String",
          "mediaId": "String",
          "overlay": {
            "isTrue": "Boolean",
            "position": "Integer"
          }
        }
      ],
      "brand": {
        "id": "String",
        "name": "String",
        "description": "String",
        "localizedName": "Object",
        "localizedDescription": "Object",
        "image": "String",
        "cloudinaryUrl": "String",
        "mediaId": "String"
      },
      "ownVariantAttributes": {
        "attributeKey": {
          "name": "Object",
          "value": {
            "type": "String",
            "qualifier": "Object",
            "name": "LocalizedString",
            "unit": "String"
          }
        }
      },
      "inheritedVariantAttributes": {
        "attributeKey": {
          "name": "LocalizedString",
          "value": {
            "type": "String",
            "qualifier": "Object",
            "name": "LocalizedString",
            "unit": "String"
          }
        }
      },
      "dynamicVariantType": "String",
      "vendor": {
        "id": "String",
        "name": "String"
      },
      "variants": {
        "variantId": {
          "version": "Integer",
          "name": "LocalizedString",
          "parentVariantId": "String",
          "code": "String",
          "sellable": "Boolean",
          "published": "Boolean",
          "dynamicVariantType": "String",
          "variantAttributes": {
            "attributeKey": {
              "name": "LocalizedString",
              "value": {
                "type": "String",
                "qualifier": "Object",
                "name": "LocalizedString",
                "unit": "String"
              }
            }
          }
        }
      },
      "sellable": "Boolean",
      "sitePrices": {
        "siteCode": [
          {
            "id": "String"
          }
        ]
      },
      "siteAvailabilities": {
        "siteCode": "Object"
      }
}
</code></pre></td></tr><tr><td>index-item.deleted</td><td><pre class="language-json"><code class="lang-json">{
  "id": "String",
  "siteCode": "String",
</code></pre></td></tr></tbody></table>

|

{% hint style="info" %}
**Learn about the `index.item-updated` event's specific behavior**

The `index.item-updated` webhook event is emitted whenever there is a change on an item in the system - the index is updated with the new information.\
For the event to be triggered, a product must have at least one defined **price**, as it is the price that determines products indexing on a specific site.\
Bear in mind all the events are site-specific, which means that they are linked to activities happening on particular sites.\
The prices are also site-specific, and a single price can be associated with multiple sites.\
The number of events triggered in the system depends on **the number of sites** assigned to a specific product’s prices, with one event emitted per each site.

Example:
{% endhint %}

| productid | price with associated sites       | number of emitted events | sites the event was emitted to |
| --------- | --------------------------------- | ------------------------ | ------------------------------ |
| 123       | $10 - sites A, B                  | 2                        | A, B                           |
| 234       | $10 - site A, $15 - sites A, B, C | 3                        | A, B, C                        |
| 345       | no price                          | 0                        | none                           |

{% hint style="info" %}

* A product *123* has one assigned price of *$10*, associated with two sites *A* and *B*. When you update the product *123*, the number of emitted `index.item-updated` events is **2** as there are two sites associated with the product price.
* A product *234* has two assigned prices: *$10* associated with site *A* and *$15* associated with site *A*, *B*, and *C*. So when you update the product *234*, the `index.item-updated` event runs **3** times, as there are three sites affected.
* A product *345* has no defined price. So when you update the *345* product, the `index.item-updated` is not emitted as no site is associated with the product.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.emporix.io/api-references/api-guides/webhooks/webhook-events/events-index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
