Skip to main content

Tags & Flags: Custom Labels and System Indicators

Written by Ryo

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 ID

  • name — the tag label

  • description — optional tag description

  • type — 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 if overwrite is true)

  • overwrite (boolean, optional, default: false) — when true, replaces all existing tags with the provided list; when false, 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 identifier

  • description — 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)

Did this answer your question?