Customer Tags require customer scopes: reads use read_customers and writes use write_customers. Tags label customer profiles and can participate in customer-group rules. They are separate from Product Tags and do not filter products. The slug is optional when creating a Customer Tag and is generated from its name when omitted.
Endpoints#
Customer Tag limits
Get Customer Tag limits.
Returns the field and request limits enforced by Customer Tag endpoints.
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
List Customer Tags
List Customer Tags for the store.
Returns a paginated, searchable, and sortable list. Customer counts include assignments in the token's store only.
Query parameters
| Name | Type | Description |
|---|---|---|
page
|
integer |
Page number. |
limit
|
integer |
Page size. |
search
|
string |
Search by name or slug. |
sort_by
|
string |
Sort by
Allowed values
namecustomer_countcreated_at |
sort_direction
|
string |
Sort direction:
Allowed values
ascdesc |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400CUSTOMER_TAG_LIST_INVALID_PAGEPage must be positive.
-
400CUSTOMER_TAG_LIST_INVALID_LIMITLimit is outside the Customer Tag range.
-
400CUSTOMER_TAG_LIST_INVALID_SORT_BYSort_by is not supported.
-
400CUSTOMER_TAG_LIST_INVALID_SORT_DIRECTIONSort_direction is not supported.
-
400CUSTOMER_TAG_SEARCH_TOO_LONGSearch exceeds the maximum length.
Get a Customer Tag
Get one Customer Tag.
Returns the Customer Tag when it belongs to the token's store.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
string |
Customer Tag UUID. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400CUSTOMER_REQUEST_INVALIDId is not a valid UUID.
-
404CUSTOMER_TAG_NOT_FOUNDCustomer Tag does not exist in this store.
Create a Customer Tag
Create a Customer Tag.
Creates a Customer Tag. Omit slug to generate it from the name.
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
name
required
|
string |
Customer Tag name. |
slug
|
string |
Customer Tag slug. Omit on create to generate it from the name. |
Errors
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400CUSTOMER_TAG_NAME_REQUIREDName is required.
-
400CUSTOMER_TAG_NAME_TOO_LONGName exceeds the configured limit.
-
400CUSTOMER_SLUG_INVALIDSlug is invalid.
-
409CUSTOMER_TAG_NAME_DUPLICATEA Customer Tag with this name already exists.
-
409CUSTOMER_TAG_SLUG_DUPLICATEA Customer Tag with this slug already exists.
-
400CUSTOMER_TAGS_LIMITThe store has reached its Customer Tag limit.
Bulk create Customer Tags
Create multiple Customer Tags.
Creates tags from names. Existing names are skipped and row validation errors are returned without discarding valid rows.
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
names
required
|
array<string> |
Customer Tag names to create. |
Errors
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400CUSTOMER_TAGS_BULK_EMPTYNames must contain at least one item.
-
400CUSTOMER_TAGS_BULK_CREATE_MAXThe request exceeds the bulk-create cap.
Update a Customer Tag
Update a Customer Tag.
Updates provided fields. Omitted fields remain unchanged.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
string |
Customer Tag UUID. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
name
|
string |
Customer Tag name. |
slug
|
string |
Customer Tag slug. Omit on create to generate it from the name. |
Errors
-
400CUSTOMER_REQUEST_INVALIDId is not a valid UUID.
-
404CUSTOMER_TAG_NOT_FOUNDCustomer Tag does not exist in this store.
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400CUSTOMER_TAG_NAME_REQUIREDName is required.
-
400CUSTOMER_TAG_NAME_TOO_LONGName exceeds the configured limit.
-
400CUSTOMER_SLUG_INVALIDSlug is invalid.
-
409CUSTOMER_TAG_NAME_DUPLICATEA Customer Tag with this name already exists.
-
409CUSTOMER_TAG_SLUG_DUPLICATEA Customer Tag with this slug already exists.
-
400CUSTOMER_TAGS_LIMITThe store has reached its Customer Tag limit.
Delete a Customer Tag
Delete a Customer Tag.
If assignments or customer-group rules depend on the tag, retry with the returned confirmation token.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
string |
Customer Tag UUID. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
confirmed
|
boolean |
On a confirmation retry, set this to true and send the returned confirmation_token. Omit it on the first request. |
confirmation_token
|
string |
Token from the CONFIRMATION_REQUIRED response. Omit it on the first request and resend the exact same id selection when using it. |
Errors
-
400CUSTOMER_REQUEST_INVALIDId is not a valid UUID.
-
404CUSTOMER_TAG_NOT_FOUNDCustomer Tag does not exist in this store.
-
409CONFIRMATION_REQUIREDDeletion requires confirmation.
-
400CUSTOMER_CONFIRMATION_INVALIDThe confirmation token is invalid or expired.
Bulk delete Customer Tags
Delete multiple Customer Tags.
Deletes the selected store-scoped UUIDs transactionally. Dependency changes can require a fresh confirmation retry.
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
tag_ids
required
|
array<string> |
Store-scoped Customer Tag UUIDs. |
confirmed
|
boolean |
On a confirmation retry, set this to true and send the returned confirmation_token. Omit it on the first request. |
confirmation_token
|
string |
Token from the CONFIRMATION_REQUIRED response. Omit it on the first request and resend the exact same id selection when using it. |
Errors
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400CUSTOMER_TAGS_NONE_SPECIFIEDTag_ids must contain at least one UUID.
-
400CUSTOMER_TAGS_BULK_DELETE_MAXThe request exceeds the bulk-delete cap.
-
409CUSTOMER_TAG_BULK_RACEDDependencies changed; obtain a fresh confirmation.
-
409CONFIRMATION_REQUIREDDeletion requires confirmation.
-
400CUSTOMER_CONFIRMATION_INVALIDThe confirmation token is invalid or expired.
Fields#
Field |
Type |
Create |
Update |
Required |
Translatable |
|---|---|---|---|---|---|
|
text |
Yes |
Yes |
create |
No |
|
slug |
Yes |
Yes |
No |
|
|
integer |
No |
No |
No |
|
|
datetime |
No |
No |
No |
|
|
datetime |
No |
No |
No |
Webhook events#
Subscribe to these events to keep your integration in sync with customer tags. Each event shows the required Store API scope and store permission, the available payload fields, and an example payload. Subscription setup is validated against those permissions; delivery is always restricted to the subscription's store.
Customer tag created
Fired when a customer tag is created.
Payload fields
| Field | Type | Description |
|---|---|---|
tag.id |
string |
Always present |
tag.name |
string |
Selectable in the Payload builder |
tag.slug |
string |
Selectable in the Payload builder |
tag.customer_count |
integer |
Selectable in the Payload builder |
tag.created_at |
string |
Selectable in the Payload builder |
tag.updated_at |
string |
Selectable in the Payload builder |
Customer tag updated
Fired when a customer tag is renamed.
Possible changed_fields values
The changed_fields array names exactly which of these changed in this event — use it to skip processing updates your integration doesn't care about.
name slug
Payload fields
| Field | Type | Description |
|---|---|---|
previous.id |
string |
Always present |
previous.name |
string |
Selectable in the Payload builder |
previous.slug |
string |
Selectable in the Payload builder |
previous.customer_count |
integer |
Selectable in the Payload builder |
previous.created_at |
string |
Selectable in the Payload builder |
previous.updated_at |
string |
Selectable in the Payload builder |
current.id |
string |
Always present |
current.name |
string |
Selectable in the Payload builder |
current.slug |
string |
Selectable in the Payload builder |
current.customer_count |
integer |
Selectable in the Payload builder |
current.created_at |
string |
Selectable in the Payload builder |
current.updated_at |
string |
Selectable in the Payload builder |
changed_fields |
array |
Selectable in the Payload builder |
Customer tag deleted
Fired when a customer tag is deleted; assignments cascade.
Payload fields
| Field | Type | Description |
|---|---|---|
tag.id |
string |
Always present |
tag.name |
string |
Selectable in the Payload builder |
tag.slug |
string |
Selectable in the Payload builder |
tag.customer_count |
integer |
Selectable in the Payload builder |
tag.created_at |
string |
Selectable in the Payload builder |
tag.updated_at |
string |
Selectable in the Payload builder |