> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # UpdateStorageItemCounterBy # Package: automations # Namespace: StorageService # Method link: https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/update-storage-item-counter-by.md ## Permission Scopes: Set Up Automations: SCOPE.CRM.SETUP-AUTOMATIONS ## Introduction Atomically increments or decrements a storage item of type `COUNTER` by the specified value. Learn more about [atomic updates](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). > **Note**: To update other types of items, call [Update Storage Item Value](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/update-storage-item-value.md). --- ## REST API ### Schema ``` Method: updateStorageItemCounterBy Description: Atomically increments or decrements a storage item of type `COUNTER` by the specified value. Learn more about [atomic updates](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). > **Note**: To update other types of items, call [Update Storage Item Value](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/update-storage-item-value.md). URL: https://www.wixapis.com/v1/storage-items/{key}/update-counter-by Method: PATCH # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: value Method parameters: param name: value | type: value | description: Value to add to the existing counter, represented as a string. To decrement the counter, use a negative value. | required: true Return type: UpdateStorageItemCounterByResponse - name: storageItem | type: StorageItem | description: Updated storage item. - ONE-OF: - name: stringValue | type: StringValue | description: When the item type is `STRING`, the string value. - name: value | type: string | description: String value. - name: format | type: Format | description: String format. - enum: - PLAIN_TEXT: Plain text. - URI: [Universal Resource Identifier (URI)](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier). - EMAIL: Email. - DATETIME: Datetime string in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601). - name: booleanValue | type: BooleanValue | description: When the item type is `BOOLEAN`, the boolean value. - name: value | type: boolean | description: Boolean value. - name: numberValue | type: NumberValue | description: When the item type is `NUMBER`, the numeric value. - name: value | type: string | description: Numeric decimal value, represented as a string. - name: counterValue | type: CounterValue | description: When the item type is `COUNTER`, the counter value. > **Note**: Counters are numeric values used for running totals. They support [atomic increment and decrement operations](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). - name: value | type: string | description: Counter decimal value, represented as a string. - name: id | type: string | description: Storage item GUID. - name: key | type: string | description: Unique storage item key. The key can only contain letters, numbers, and underscores. Once you create the item, you can't update its key. - name: displayName | type: string | description: Storage item display name. The display name appears when you [add or edit steps to your automation](https://support.wix.com/en/article/wix-automations-creating-an-automation-with-the-new-builder#step-3-add-steps-to-you-automation). - name: description | type: string | description: Storage item description. - name: type | type: Type | description: Data type of the storage item's value. Once created, you can't change the value's type. - enum: - STRING: String. - BOOLEAN: Boolean. - NUMBER: Number. - COUNTER: Counter. > **Note**: Counters are numeric values used for running totals. They support [atomic increment and decrement operations](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). - name: createdDate | type: string | description: When the storage item was created. - name: updatedDate | type: string | description: When the storage item was last updated. - name: tags | type: Tags | description: [Tags](https://dev.wix.com/docs/api-reference/business-management/tags/introduction.md) assigned to the storage item. You can use public and private tags for categorization and filtering. - name: privateTags | type: TagList | description: List of private tags. Private tags require additional permissions to access. They are usually hidden from site members and visitors. - name: tagIds | type: array | description: List of tag GUIDs. - name: publicTags | type: TagList | description: List of public tags. Public tags are visible to anyone with access to the main storage item, including site members and visitors. - name: extendedFields | type: ExtendedFields | description: Extended fields. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). Possible Errors: HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: INVALID_NUMBER_VALUE | Description: Invalid value. The value is not a valid number. HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: INVALID_STORAGE_ITEM_TYPE_EXCEPTION | Description: Invalid storage item type. ``` ### Examples ### Increment Counter Item ```curl curl -X PATCH 'https://www.wixapis.com/storage-service/v1/storage-items/email_sent_count/update-counter-by' \ -H 'authorization: ' \ -H 'content-type: application/json' \ --data-binary '{ "value": "1" }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.automations.StorageService.updateStorageItemCounterBy(key, value) Description: Atomically increments or decrements a storage item of type `COUNTER` by the specified value. Learn more about [atomic updates](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). > **Note**: To update other types of items, call [Update Storage Item Value](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/update-storage-item-value.md). # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: key, value Method parameters: param name: key | type: string | description: Key of the storage item to update. | required: true param name: value | type: string | description: Value to add to the existing counter, represented as a string. To decrement the counter, use a negative value. | required: true Return type: PROMISE - name: storageItem | type: StorageItem | description: Updated storage item. - ONE-OF: - name: stringValue | type: StringValue | description: When the item type is `STRING`, the string value. - name: value | type: string | description: String value. - name: format | type: Format | description: String format. - enum: - PLAIN_TEXT: Plain text. - URI: [Universal Resource Identifier (URI)](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier). - EMAIL: Email. - DATETIME: Datetime string in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601). - name: booleanValue | type: BooleanValue | description: When the item type is `BOOLEAN`, the boolean value. - name: value | type: boolean | description: Boolean value. - name: numberValue | type: NumberValue | description: When the item type is `NUMBER`, the numeric value. - name: value | type: string | description: Numeric decimal value, represented as a string. - name: counterValue | type: CounterValue | description: When the item type is `COUNTER`, the counter value. > **Note**: Counters are numeric values used for running totals. They support [atomic increment and decrement operations](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). - name: value | type: string | description: Counter decimal value, represented as a string. - name: _id | type: string | description: Storage item GUID. - name: key | type: string | description: Unique storage item key. The key can only contain letters, numbers, and underscores. Once you create the item, you can't update its key. - name: displayName | type: string | description: Storage item display name. The display name appears when you [add or edit steps to your automation](https://support.wix.com/en/article/wix-automations-creating-an-automation-with-the-new-builder#step-3-add-steps-to-you-automation). - name: description | type: string | description: Storage item description. - name: type | type: Type | description: Data type of the storage item's value. Once created, you can't change the value's type. - enum: - STRING: String. - BOOLEAN: Boolean. - NUMBER: Number. - COUNTER: Counter. > **Note**: Counters are numeric values used for running totals. They support [atomic increment and decrement operations](https://dev.wix.com/docs/api-reference/business-management/automations/storage-item/introduction.md#atomic-updates). - name: _createdDate | type: Date | description: When the storage item was created. - name: _updatedDate | type: Date | description: When the storage item was last updated. - name: tags | type: Tags | description: [Tags](https://dev.wix.com/docs/api-reference/business-management/tags/introduction.md) assigned to the storage item. You can use public and private tags for categorization and filtering. - name: privateTags | type: TagList | description: List of private tags. Private tags require additional permissions to access. They are usually hidden from site members and visitors. - name: tagIds | type: array | description: List of tag GUIDs. - name: publicTags | type: TagList | description: List of public tags. Public tags are visible to anyone with access to the main storage item, including site members and visitors. - name: extendedFields | type: ExtendedFields | description: Extended fields. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). Possible Errors: HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: INVALID_NUMBER_VALUE | Description: Invalid value. The value is not a valid number. HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: INVALID_STORAGE_ITEM_TYPE_EXCEPTION | Description: Invalid storage item type. ``` ### Examples ### updateStorageItemCounterBy ```javascript import { storageItem } from '@wix/automations'; async function updateStorageItemCounterBy(key,value) { const response = await storageItem.updateStorageItemCounterBy(key,value); }; ``` ### updateStorageItemCounterBy (with elevated permissions) ```javascript import { storageItem } from '@wix/automations'; import { auth } from '@wix/essentials'; async function myUpdateStorageItemCounterByMethod(key,value) { const elevatedUpdateStorageItemCounterBy = auth.elevate(storageItem.updateStorageItemCounterBy); const response = await elevatedUpdateStorageItemCounterBy(key,value); } ``` ### updateStorageItemCounterBy (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { storageItem } from '@wix/automations'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { storageItem }, // Include the auth strategy and host as relevant }); async function updateStorageItemCounterBy(key,value) { const response = await myWixClient.storageItem.updateStorageItemCounterBy(key,value); }; ``` ---