---
name: landing-pages
description: Публикует статичные лендинги и микроотчёты по ссылке. Используй, когда нужно превратить собранную информацию в веб-страницу, которую можно отправить человеку — отчёт клиенту, итоги занятия для родителя, коммерческое предложение, промо-страницу, résumé, приглашение. Триггеры — «сделай лендинг», «собери отчёт ссылкой», «оформи страницей», «отправить родителю/клиенту», «нужна ссылка на страницу».
---

# Публикация лендингов

Сервис принимает текст в блочном формате и возвращает ссылку на готовую страницу.

**База:** `https://lp.somnarium.ru`
**Ключ:** переменная окружения `LP_API_KEY`

## Прежде чем публиковать

Актуальный справочник блоков живёт по адресу **https://lp.somnarium.ru/llms.txt** — он статичен и одинаков для всех.
Если сомневаешься в наборе блоков или в формате — скачай его и верь ему, а не этому файлу: сервис может обновиться раньше скилла.

## Как публиковать

```bash
curl -sS -X POST https://lp.somnarium.ru/api/v1/sites \
  -H "Authorization: Bearer $LP_API_KEY" \
  -H "Content-Type: application/json" \
  -d @payload.json
```

Тело: `{"title": "...", "content": "...", "ttl": "90d"}`.
В ответе поле `url` — готовая ссылка, её и отдавай человеку.

Пиши JSON в файл и передавай через `-d @file.json`. Не собирай его в одну строку в шелле: контент многострочный, кавычки и переносы почти всегда ломаются.

## Формат контента

Блоки размечаются заборчиками, внутри — обычный markdown:

```
:::hero
# Заголовок
Подзаголовок
:::

:::stats
- 90 мин | на ковре
- 12 | схваток
:::

:::text
## Подробности
Обычный **markdown**: списки, ссылки, выделение.
:::
```

Формат прощающий: незнакомый блок отрисуется как текст, незакрытый закроется сам. Запрос не упадёт из-за разметки.

## Блоки

`hero` шапка · `text` проза · `stats` числа · `cards` карточки · `gallery` фотосетка · `image` картинка · `quote` цитата · `list` галочки · `steps` шаги · `progress` шкалы · `table` таблица · `faq` вопросы · `cta` кнопка · `contacts` контакты · `badges` теги · `divider` разделитель · `footer` подвал

Точные атрибуты каждого — в `/llms.txt`.

## Картинки

Загрузить и получить `id`, затем подставить его в блок (`image=<id>`, или строкой в `gallery`):

```bash
curl -sS -X POST https://lp.somnarium.ru/api/v1/assets \
  -H "Authorization: Bearer $LP_API_KEY" \
  -F "file=@photo.jpg" -F "ttl=3w"
```

Загружай файлом. Загрузка по ссылке (`{"url": "..."}`) работает, только если сервису доступен внешний адрес.

## Сроки хранения

`ttl`: `30d`, `3w`, `6M`, `1y`, `forever`. У страницы по умолчанию бессрочно.

Картинка без своего `ttl`, привязанная к странице через `-F "site=<slug>"`, умирает вместе с ней. Логотип, который переиспользуется, заливай один раз с `ttl=forever`.

## Управление

| Действие | Запрос |
|---|---|
| Список | `GET /api/v1/sites` |
| Прочитать | `GET /api/v1/sites/{slug}` |
| Изменить | `PATCH /api/v1/sites/{slug}` |
| Удалить | `DELETE /api/v1/sites/{slug}` |

Ключ видит только страницы своего клиента.

## О чём помнить

- Ссылка — это и есть доступ: у кого она есть, тот видит страницу. Для персональных данных ставь `ttl`.
- Страницы закрыты от индексации, но публичны по ссылке. Не клади туда то, что не готов отправить в мессенджере.
- Перед отправкой человеку открой ссылку и убедись, что страница отвечает `200`.
- Оформление одно на все страницы и не настраивается — думай про содержание и порядок блоков, а не про цвета.
