- Used to Search and Filter Experiences in the Chameleon Dashboard.
- Used to define Rate Limit Groups of Experiences that are limited to a particular rate limit (i.e. 2 per week, 3 per month etc.).
- Normalized with the typical rules.
Schema
| Property | Type | Description |
|---|---|---|
id | ID | The Chameleon ID |
created_at | timestamp | When this happened or when this was added to the Database |
updated_at | timestamp | The last time any property was updated |
uid | string | The normalized name. Or an external ID |
name | string | The original text entered for the Tag |
description | string | The display description |
models_count | number | The number of Experiences attached to this Tag |
disabled_at | timestamp | A timestamp indicating that this tag should no longer be displayed in the UI |
last_seen_at | timestamp | This last time this Tag was added or removed from an Experience |
Listing all Tags
HTTP Request
| param | - | description |
|---|---|---|
limit | optional | Defaults to 50 with a maximum of 500 |
before | optional | Used when paginating, use directly from the cursor object from the previous response |
before | optional | Read as “created before” and can be given as a timestamp to get only limit items that were created before this time |
after | optional | Read as “created after” and can be given as a timestamp or ID to get only limit items that were created after this time |
HTTP Response
Filtering by Segment
See Listing Related modelsRetrieve a Tag
HTTP Request
| param | - | description |
|---|---|---|
id | required | The Chameleon ID of the Tag to show |
HTTP Response
Bulk tag operations
Apply multiple tag operations across multiple Experiences (Tours, Microsurveys, Tooltips, Launchers) in a single request. This endpoint is optimized for bulk updates. Check out this guide with specific examples
A Tour, Microsurvey, and Embed is model_type=Campaign when used in this API
- Tags names are automatically normalized when created
- If a tag name is provided that doesn’t exist, it will be created automatically
- Multiple operations on the same model are applied in order
- When using
tag_namesarray, the model’s tags are set to exactly the specified list (tags not in the list are removed) - Tag counts (
models_count) are updated automatically - The
last_seen_attimestamp is updated for all affected tags
HTTP Request
| param | - | description |
|---|---|---|
updates | required | An array of tag update operations to perform |
| Property | Type | Description |
|---|---|---|
model_id | ID | The Chameleon ID of the model to update |
model_type | string | The type of model: Campaign, Tooltip, List (Microsurveys and Embeddables are considered a Campaign here) |
tag_id | string | The tag ID prefixed with + to add or - to remove (e.g., "+5f3c4232c712de665632a5f1" or "-5f3c4232c712de665632a5f1") |
| Property | Type | Description | |
|---|---|---|---|
model_id | ID | The Chameleon ID of the model to update | |
model_type | string | The type of model: Campaign, Tooltip, List (Microsurveys and Embeddables are considered a Campaign here) | |
tag_name | string | The tag name prefixed with + to add or - to remove (e.g., "+Feature" or "-Bug") |
| Property | Type | Description | |
|---|---|---|---|
model_id | ID | The Chameleon ID of the model to update | |
model_type | string | The type of model: Campaign, Tooltip, List (Microsurveys and Embeddables are considered a Campaign here) | |
tag_names | array<string> | Array of tag names to set (creates tags if needed). The model’s tags will be set to exactly this list |

