Classifications and website catalogs

Source-reviewed draft; deployment and release verification pending.

Draft — source-reviewed on 22 October 2026. Website-owned catalog keys remain proposed handoff identifiers; deployed registry contents have not been verified.

Physical classification answers what a property is. Catalog membership answers which marketing collections it belongs to. Keep those concepts separate in forms, badges and navigation.

Canonical physical hierarchy

property_type is the parent, features_type its subtype and property_detail_type an optional third level. The supported non-null pairs and third-level values are:

property_typefeatures_typeAllowed non-null property_detail_type
HOMESFLATDUPLEX, PENTHOUSE, PENTHOUSE_DUPLEX, STUDIO
HOMESHOUSEBUNGALOW
HOMESHOUSE_INDEPENDENTNone
HOMESHOUSE_SEMIDETACHEDCORNER
HOMESHOUSE_TERRACEDCORNER
HOMESRUSTICNone
GARAGEGARAGENone
OFFICEOFFICENone
PREMISES_COMMERCIALPREMISES, PREMISES_COMMERCIAL, PREMISES_INDUSTRIALNone
LANDLAND, LAND_URBAN, LAND_COUNTRYBUILDABLE, LAND_COUNTRYNONBUILDABLENone
STORAGESTORAGENone
BUILDINGBUILDING_HOTEL, BUILDING_COMMERCIAL, BUILDING_INDUSTRIAL, BUILDING_OFFICE, BUILDING_CHALET, BUILDING_OTHERNone

A null subtype is valid for every parent; detail is optional for every tuple. All three public fields are nullable/optional, so unknown classification must remain unknown. A non-null detail requires its allowed parent/subtype combination. Buildings never use a third-level detail. Do not use the superseded BUILDING/BUILDING/HOTEL representation or old building detail values.

PENTHOUSE_DUPLEX is one canonical detail. A search selecting PENTHOUSE or DUPLEX also matches it; selecting only PENTHOUSE_DUPLEX matches that detail. Do not translate this into deprecated apartment booleans. Those flags are not canonical public fields.

The public reference response lists individual enum inventories (property_types, features_types, property_detail_types), but does not return the full tuple matrix. This reviewed table supplies that relationship for frontend design; do not call an authenticated CRM metadata endpoint from the website.

Catalog membership

Summary/detail catalogs is an array of active membership keys. It is not inferred from physical type, details, a view or construction flags. A flat does not automatically belong to apartments, and a building classified as a hotel does not automatically join hotels.

Reference catalogs entries contain key, nullable parent_key, localized labels and sort_order. Use returned active metadata, preserve keys as identities and select an appropriate label language with an explicit fallback. Search selections match any supplied active catalog key. Parent selection does not automatically expand descendants: request the intended keys explicitly.

Reviewed proposed website catalog inventory

The source registry marks website-owned keys as proposed_handoff, not verified external website identifiers. The following inventory is meaningful for design review but must be agreed before deployment. A runtime reference response may differ after authorized registry updates.

KeyEnglish marketing label
apartmentsApartments / flats
apartments.apartmentApartment / flat
apartments.duplexDuplex
apartments.penthousePenthouse
apartments.studioStudio
housesVillas / houses
houses.villaVilla
houses.houseHouse
houses.estateEstate / finca
houses.bungalowBungalow
townhousesTownhouses
townhouses.semi_detachedSemi-detached
townhouses.cornerCorner townhouse
garagesGarages
landLand
commercial_propertiesCommercial properties
hotelsHotels
buildingsBuildings
buildings.chaletChalet
buildings.commercialCommercial
buildings.hotelHotel
buildings.industrialIndustrial
buildings.officeOffice
buildings.otherOther building
commercial_premisesCommercial premises
gas_stationsGas stations
ready_made_businessReady-made business
new_constructionNew construction
new_developmentNew development
development_projectsDevelopment projects
residential_propertiesResidential properties

CRM-owned special offers

These membership entries belong to the CRM-owned special_offers group (English label: Special offers). They are still catalog memberships, not property booleans or independent financial offers.

KeyEnglish marketing label
special_offers.urgent_saleUrgent sale
special_offers.unique_propertyUnique property
special_offers.rent_to_ownRent-to-own
special_offers.other_islandsOther islands
special_offers.first_lineSeafront Property
special_offers.installment_purchaseInstallment purchase
special_offers.exclusiveExclusive
special_offers.promotionPromo

Do not infer a payment plan, legal purchase entitlement or rental booking capability from a marketing membership. In particular, special_offers.other_islands does not add other destination coverage; the implemented public search destination remains TENERIFE.

Unknown/inactive requested catalog keys return 422. If metadata loading fails, show a retry state rather than inventing or silently submitting keys. An empty membership array means no active memberships in that response.

Related operations

GET /api/v1/public/property-reference supplies available values and active catalog metadata. POST /api/v1/public/properties/search accepts classification/catalog selections. GET /api/v1/public/properties/{public_id} exposes the selected classification and memberships.


Did this page help you?