---
title: "Generate hotel highlights (Beta)"
method: POST
path: "/data/hotel/highlights"
tags: ["Hotels"]
---

# Generate hotel highlights (Beta)

`POST /data/hotel/highlights`

## Overview

**Beta Feature** - Generate short, AI-written "Smart Highlight" cards for a hotel. Each highlight is a title plus a one or two sentence description, generated directly in the requested language.

**Rate Limiting**: This endpoint is rate-limited to **10 requests per minute** per API key for both sandbox and production API keys. Exceeding this limit will result in a `429 Too Many Requests` response.

## When to Use

- **Hotel detail pages** - Show a few compelling reasons to consider a property
- **Partner-specific tone** - Adjust voice and emphasis per surface via `tone`, `style` and per-highlight `context`

## What You Get

- Exactly `count` highlights, always, in the requested order
- `type` echoed back from the request so you can map each card to your own UI
- `generated` indicating whether the copy is AI-generated or template fallback

## Behaviour

Hotel facts (name, city, country, description) are resolved server-side from `hotelId`; the caller never supplies them. Generated copy is grounded in those facts.

If AI generation fails, the endpoint still returns `200` with the requested number of neutral template highlights and `generated: false`. It never returns an empty array for a valid hotel.

Results are cached, so repeated calls with an identical request body return identical copy.

**Note:** This is a beta feature and may be subject to changes.

## Request body

- object
  - `hotelId` string, required — Unique ID of the hotel (liteAPI format)
  - `language` string, required — Language code. Highlights are generated directly in this language.
  - `count` integer — Number of highlights to generate. If `highlights` is supplied, `count` must equal its length.
  - `tone` string — Global writing guidance, e.g. `professional and inviting` or `calm and practical`.
  - `style` string — Formatting preferences such as title or description length.
  - `highlights` object[] — Per-highlight guidance. Omit for generic generation. When supplied, its length must equal `count` and the response preserves this order.
    - `type` string — Partner-defined category label, echoed back in the response.
    - `context` string — Free-text guidance describing what this highlight should emphasise. Treated as topic guidance only; claims not supported by the hotel's data will not be invented.

## Response `200`

OK

- object
  - `data` object
    - `hotelId` string, required
    - `language` string, required
    - `generated` boolean, required — `false` when AI generation failed and template fallback copy was returned.
    - `highlights` object[], required
      - `type` string
      - `title` string, required
      - `description` string, required

## Other responses

- `400` — Invalid request: missing or malformed hotelId, unsupported language, or count outside 1-10 / not matching highlights length.
- `404` — The hotelId was not found.
- `429` — Too Many Requests - Rate limit exceeded (10 requests per minute per API key).
- `500` — Technical failure fetching hotel data.

---

[API](https://skmtc.net/liteapi/apis/api-search.md) · [All operations](https://skmtc.net/liteapi/apis/api-search/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/liteapi/api-search/versions/315ba2a4dcf4/schema)
