Editable property highlights
View .mdA property drawer can feature the manager’s own highlights using the existing
getVacationRental detail read. The fields
are additive in the 0.7.38 contract. Use an API deployment and SDK release that
include that contract; older responses may omit them.
import { createKismetClient } from '@kismet-tech/sdk/server';
const client = createKismetClient({ apiKey: process.env.KISMET_DEVELOPER_API_KEY!, baseUrl: process.env.KISMET_API_BASE!, collection: process.env.KISMET_COLLECTION!,});const property = await client.vacationRental.get('your-property-slug');const highlights = property.highlights ?? [];const sellingPoints = property.uniqueSellingPoints ?? [];The same fields are returned by GET /v1/developer/vacation-rentals/{vacationRental}
with the existing vacation_rentals.read grant and normal collection, publication
and TEST staging restrictions. There is no extra request or grant.
| Field | Meaning |
|---|---|
highlights |
Up to 12 saved objects in editorial order: required title, optional description and icon. |
uniqueSellingPoints |
Up to 12 saved short strings in editorial order. |
amenityHighlights |
The existing compact amenity list. Its behavior is unchanged; it is not curated editorial copy. |
An empty array means no usable values are stored. An absent field means the API response predates this addition. Neither means the home lacks attractive features. Hide an empty highlights section; do not manufacture highlights from amenity order.
Managers edit the canonical property’s Highlights & selling points in Kismet’s storefront editor. The website reads those same saved fields; it does not maintain another copy in its page CMS. These are current catalog fields, not CMS channel revisions, so editing them is not a staging-only draft workflow. This endpoint is read-only: it does not trigger import/enrichment, generate copy, or write edits.
Render titles, descriptions and selling points as text. Treat icon as an optional
identifier: map known values to local icons and fall back to text for unknown
values. Never interpret it as HTML, a remote asset URL or executable markup.
{highlights.length > 0 && <section aria-label="Highlights"> {highlights.map((highlight, index) => <article key={`${index}:${highlight.title}`}> <h3>{highlight.title}</h3> {highlight.description && <p>{highlight.description}</p>} </article>)}</section>}This works for an apartment drawer or a standalone cabin detail page. Keep its amenities section separate, and include the same editorial copy in the page’s Markdown representation when it appears in HTML.