Встройте AI-поиск LiKE в ваши приложения, сайт или внутренние системы. Три способа интеграции: REST API, JS-виджет, iframe.


#REST API

Доступность по тарифу. Публичный API и публичный виджет работают только на тарифах, которые их включают (см. Тарифы и оплата). На остальных тарифах создать ключ или публичный виджет нельзя, а уже выпущенные перестают отвечать: запрос по ключу получает 403, кнопка виджета на сайте не появляется. Корпоративный виджет от этого флага не зависит.

#Шаг 1 — Создайте API-ключ

  1. Интеграции → Public API → «Создать ключ»
  2. Введите название (например, «Мобильное приложение»)
  3. Скопируйте ключ — он показывается только один раз

#Шаг 2 — Используйте API

Все запросы авторизуются через заголовок:

X-API-Key: ваш-ключ

#Основные endpoints

Endpoint Метод Описание
/api/public/search POST AI-поиск по базе знаний
/api/public/toc GET Оглавление публичных статей
/api/public/articles GET Список публичных статей
/api/public/articles/{id} GET Содержимое статьи

#Пример: AI-поиск

curl -X POST https://your-account.lynkora.pro/api/public/search \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "Как оформить отпуск?"}'

Ответ:

{
  "answer": "Для оформления отпуска...",
  "sources": [
    {"title": "Политика отпусков", "url": "..."}
  ]
}

#Rate limits

Запросы к API ограничены по каждому ключу; при превышении возвращается HTTP 429 с заголовком Retry-After.

#Безопасность

  1. Храните ключи в переменных окружения, не в коде
  2. Создавайте отдельный ключ для каждого приложения
  3. Удаляйте неиспользуемые ключи
  4. Ограничивайте домены в настройках ключа

#JS-виджет

Плавающая кнопка AI-поиска для встраивания на любой сайт.

#Шаг 1 — Получите код

  1. Интеграции → Каналы → карточка «JS Widget» → «Управлять виджетами» → «Создать виджет». Укажите «Адрес сайта, где будет стоять виджет»
  2. Настройте параметры (см. таблицу ниже)
  3. Скопируйте код

#Шаг 2 — Вставьте на сайт

Вставьте скопированный <script> перед закрывающим тегом </body>:

#Где вставить код в конструкторах сайтов

Код один для всех сайтов — менять его не нужно: виджет находит себя на странице сам, где бы конструктор ни вставил строку. Разница только в том, куда её вставить.

Любой сайт (HTML). Вставьте код перед закрывающим тегом </body> на каждой странице, где нужен поиск, — или в общий шаблон сайта.

WordPress. Установите плагин WPCode (Insert Headers and Footers) → Code Snippets → Header & Footer → вставьте код в поле Footer → Save Changes. На WordPress.com плагины доступны не на всех тарифах.

Tilda. Для всего сайта: Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD → вставьте код → Сохранить → опубликуйте все страницы. Для одной страницы: добавьте блок Другое → T123 (HTML-код) и вставьте код в него.

Wix. В панели управления сайтом откройте Настройки → Собственный код (Custom Code; в зависимости от версии интерфейса — в разделе «Расширенные» или «Разработка и интеграции») → Добавить собственный код → вставьте код → Все страницы → Body — конец → Применить. Не используйте элемент «Встроить HTML» на странице: он открывается во фрейме на другом адресе, и виджет там не заработает. Собственный код в Wix доступен на премиум-тарифе с подключённым доменом.

Webflow. Site settings → Custom code → Footer code → вставьте код → Save → опубликуйте сайт. Код в настройках сайта доступен на платных тарифах сайта.

Squarespace. Откройте Code Injection (в настройках сайта; в зависимости от версии интерфейса — в разделе Developer tools или Website Tools) → вставьте код в поле Footer → Сохранить. Внедрение кода доступно не на всех тарифах.

Shopify. Интернет-магазин → Темы → … → Изменить код → файл layout/theme.liquid → вставьте код перед </body> → Сохранить.

Framer. Site Settings → General → Custom Code → вставьте код в поле End of tag → опубликуйте сайт.

Google Tag Manager. Теги → Создать → Пользовательский HTML → вставьте код → триггер All Pages → Сохранить → Опубликовать контейнер.

Docusaurus. Код задаётся в docusaurus.config.js, тем же ключом:

scripts: [
  {
    src: 'https://your-account.lynkora.pro/api/public/widget.js',
    'data-key': 'wk_live_ВАШ_КЛЮЧ',
    async: true,
  },
],

Адреса сайта. Виджет работает только на адресах из поля Разрешённые домены, и адрес сверяется точно: example.com и www.example.com — два разных адреса, добавьте оба. Если проверяете сайт на адресе предпросмотра конструктора (например, *.tilda.ws, *.wixsite.com, *.webflow.io, *.myshopify.com), добавьте и его.

Кнопка не появилась? Проверьте три вещи: виджет включён; адрес страницы есть в Разрешённых доменах — точно, с www или без; код стоит в настройках сайта или шаблоне, а не в элементе, который конструктор открывает во фрейме.

#Параметры виджета

Параметр Значение Описание
data-key wk_live_... Обязательный. Ключ виджета (создаётся в Интеграции → Каналы → JS Widget). Без него виджет не запустится
data-position bottom-right / bottom-left / none Позиция плавающей кнопки (по умолчанию bottom-right)
data-theme light / dark / auto Тема оформления (по умолчанию light; auto — как у сайта)
data-lang ru / en / de / es / fr / it / pt / ko / sr / sr-Cyrl / zh / ar Язык по умолчанию. Применяется, только когда язык посетителя неизвестен: выбор посетителя и языки его браузера сильнее. Если не подошёл ни один — английский
data-hotkey k Клавиша открытия в сочетании с Cmd/Ctrl (по умолчанию k → Cmd/Ctrl + K)
data-session-token JWT Опционально. Session-токен для режима per-user identity (см. «Сравнение режимов аутентификации» ниже)

#Результат

На вашем сайте появится кнопка в углу (цвет — из настроек виджета). Клик → окно чата с полем вопроса → AI-ответ из вашей базы знаний.

#Язык

Посетитель меняет язык кнопкой с глобусом в шапке окна; выбор запоминается в его браузере для этого виджета. Без выбора виджет берёт первый подходящий из языков браузера, затем язык из настроек виджета (data-lang), затем английский. Язык страницы вашего сайта не учитывается. На арабском окно открывается справа налево.

#Привязка к сайту

Виджет работает только на адресах, указанных при создании («Адрес сайта, где будет стоять виджет»); с других сайтов запросы отклоняются. Несколько адресов — через запятую. Без адреса виджет включить нельзя, звёздочка «любой сайт» не принимается. Адрес сравнивается точно: example.com и www.example.com — разные адреса, укажите оба, если сайт открывается по обоим. Для локальной проверки укажите адрес с портом, например http://127.0.0.1:8899.

#Что видит посетитель

  • В тексте ответа нет меток источников вида [2.3]; заголовки и ссылки оформлены.
  • Под ответом — блок «Источники»: ссылка ведёт на страницу-первоисточник, а если её нет — на статью.
  • Ссылка «Открыть полный поиск» есть только у корпоративного виджета.

#Если лимит AI-ответов исчерпан

Публичный виджет на сайте скрывается целиком, пока лимит не вернётся. Корпоративный виджет остаётся на месте, но не принимает вопросы и показывает, когда поиск снова станет доступен.


#iframe

Полноценный интерфейс поиска, встроенный на вашу страницу:

#Код для вставки

/embed — единственный адрес портала, который разрешено открывать в рамке на чужом сайте. Корень портала (https://your-account.lynkora.pro) встроить нельзя: браузер откажет. Ключ рамке не нужен — она работает анонимно и показывает ровно то, что видит анонимный посетитель портала; область берётся из настроек виджета.

#Прямая ссылка

Если iframe не подходит — дайте пользователям прямую ссылку: https://your-account.lynkora.pro


#Демо-режим

Для тестирования без API-ключа доступен демо-endpoint с ограничениями:

Параметр Значение
Авторизация Не требуется
Ограничения Действует лимит запросов с одного адреса. При превышении возвращается HTTP 429 с заголовком Retry-After
Назначение Знакомство с API. Для рабочей нагрузки создайте ключ

Endpoint: POST /api/public/demo/search


#Сравнение режимов аутентификации

Виджет поддерживает два режима аутентификации.

#Mode A — Доверять URL-зоне

Аутентификация на стороне клиента: вы сами отвечаете за то, кто попадает на страницы с виджетом (VPN, SSO, защищённые роуты). Lynkora не знает identity пользователя — только Origin/IP запроса. Виджет видят все, кто открывает страницу с embed-кодом.

  • Бэкенд-код: 0 строк
  • Время onboarding: ~2 минуты
  • Подходит: intranet, internal portal

#Mode B — Session-токен (per-user JWT)

Ваш backend выпускает короткий session-токен на каждого пользователя. Lynkora знает identity, ведёт audit per user, поддерживает revocation и GDPR DSAR.

  • Бэкенд-код: ~10 строк (через SDK)
  • Время onboarding: 1–2 часа
  • Подходит: multi-tenant SaaS, regulated industries
Mode A — URL-зона Mode B — Session-токен
Identity пользователя нет (только Origin/IP) да (per-user JWT)
Audit per user нет да
Revocation / GDPR DSAR нет да
Бэкенд-код 0 строк ~10 строк (SDK)
Onboarding ~2 минуты 1–2 часа