Skip to content
KismetKismetDevelopers
Beta accessllms.txt

Editable property highlights

View .md

A 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.