Tags are custom labels you attach to listings to organize your portfolio. Flags are read-only labels that Wheelhouse applies automatically to highlight configuration issues, best practice violations, and performance signals.
GET /listings/:listing_id/tags
List all user-defined tags on a listing.
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/tags?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"
Parameters
listing_id(string, path, required)channel(string, query, required)
Response
Returns a flat array of tag objects:
[
{ "id": 42, "name": "beachfront", "description": "", "type": "user" },
{ "id": 43, "name": "pet-friendly", "description": "", "type": "user" }
]
id— Wheelhouse's internal tag IDname— the tag labeldescription— optional tag descriptiontype— tag type (e.g."user"for user-defined tags)
PUT /listings/:listing_id/tags
Add or replace tags on a listing.
curl -X PUT "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/tags?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"names": ["beachfront", "pet-friendly"],
"overwrite": false
}'
Parameters
listing_id(string, path, required)channel(string, query, required)
Request body
names(array of string, required) — tag names to add (or set ifoverwriteis true)overwrite(boolean, optional, default:false) — whentrue, replaces all existing tags with the provided list; whenfalse, merges with existing tags
Returns the listing's updated tag array on success.
To remove a tag
Send a PUT with overwrite: true and omit the tags you want to remove from the names array.
GET /listings/:listing_id/flags
Retrieve system-managed flags for a listing. Flags are set and cleared automatically by Wheelhouse — they are read-only and cannot be modified via the API.
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/flags?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"
```
## Parameters
- `listing_id` (string, path, required)
- `channel` (string, query, required)
## Response
Returns a flat array of flag objects:
json
[
{
"name": "min_rate_conflict",
```
"description": "Global minimum price is higher than the base price"
},
{
"name": "stagnation",
"description": "Listing has not had a booking in the last 30 days"
}
]
name— the flag identifierdescription— human-readable explanation of what the flag means
Flag names are not a fixed enum — call the endpoint to see which flags are currently active on a listing. Wheelhouse sets and clears flags automatically based on configuration, best practices, and performance signals.
Related
How to organize and filter listings (tags, segments, dynamic sets)