4A. Endpoint — Brand property list
GET
/api/v3/content/{brandId}/propertiesReturns the complete property roster for a hospitality brand as application/json. Use it to discover the Bonafide ID of every property under your brand, then call the FAQ feed for any individual property.
Path parameters
| Name | Type | Description |
|---|---|---|
brandId required | string | Bonafide ID of a hospitality brand BusinessEntity. Pattern: ^HO-.+$. Example: HO-XXXXXXXXXXXX. An unknown ID, or the ID of a non-hospitality entity (DMO-*, AIR-*), returns 404. |
This endpoint takes no query parameters and is not paginated — the full roster is returned in a single response.
Request headers
| Header | Required? | Description |
|---|---|---|
X-API-Key or Authorization | required | API key as described in §3. |
Request
curl -H "X-API-Key: bcp_<your_secret_key>" \
"https://api.bonafide.ai/api/v3/content/HO-XXXXXXXXXXXX/properties"Response status codes
| Status | Body | When |
|---|---|---|
200 | JSON | Success. A valid brand with no matching properties returns count: 0 and an empty properties array. |
401 | ErrorResponse | Missing, invalid, or expired API key. |
404 | ErrorResponse | brandId did not resolve, or resolved to a non-hospitality entity. |
429 | ErrorResponse | Hourly per-key rate limit exceeded. See §8.2. |
Response body — BrandPropertiesResponse
| Field | Type | Notes |
|---|---|---|
brandId | string | The brand ID you requested. |
brandName | string | The brand’s name. |
count | integer | Number of entries in properties. |
properties | array of PropertyItem | One entry per property in the brand roster. Empty array when the brand has none. |
properties[] — PropertyItem
| Field | Type | Notes |
|---|---|---|
name | string | Property name. |
bonafideId | string | Bonafide property ID (HO- prefix). Pass it as entityId to the FAQ feed. |
propertyId | integer · nullable | Your external property ID. Always present in the response; null when no external ID is held for the property. |
Example response
{
"brandId": "HO-XXXXXXXXXXXX",
"brandName": "{BRAND_NAME}",
"count": 2,
"properties": [
{ "name": "{PROPERTY_NAME_1}", "bonafideId": "HO-AAAAAAAAAAAA", "propertyId": 12345 },
{ "name": "{PROPERTY_NAME_2}", "bonafideId": "HO-BBBBBBBBBBBB", "propertyId": null }
]
}Error example
{
"timestamp": "2026-05-30T10:00:00.000",
"status": 404,
"error": "Not Found",
"message": "Content not found with ID: HO-DOES-NOT-EXIST",
"path": "/api/v3/content/HO-DOES-NOT-EXIST/properties"
}Last updated on