После этой статьи ваш сайт будет сам забирать готовые материалы проекта — текст, картинки, видео — и публиковать их у себя. Владельцу нужно несколько минут, чтобы выпустить ключ; разработчику — написать три запроса. Сайт ничего не генерирует, он только получает готовое.
Как это устроено
Telematic не получает доступа к вашему сайту. Сайт сам время от времени запрашивает новые материалы и получает их в формате JSON. Опубликовав материал, он сообщает об этом — и в проекте материал становится опубликованным.
К одному проекту можно подключить несколько сайтов. У каждого свой ключ и своя отметка о том, что уже опубликовано; материалы все сайты видят одни и те же.
Создайте подключение и скопируйте ключ
- Откройте раздел «Интеграции» и нажмите «Добавить фид сайта».
- В окне «Подключить внешний сайт» заполните «Название сайта».
- В блоке «Какие статусы отдавать в фид» оставьте нужные статусы: «Принято», «Запланировано», «Опубликовано». Черновики, отклонённые и архивные материалы сайту не отдаются никогда.
- Выберите «Темп выдачи» — о нём ниже.
- Нажмите «Сгенерировать ключ».

Появится блок «Ваш секретный ключ». Ключ начинается с tlmf_.
Важно. Ключ показывается один раз: сервис хранит только его отпечаток. Скопируйте ключ сразу и передайте разработчику безопасным способом. Потеряли — перевыпустите.
Ниже в том же окне — «Гайд по интеграции»: готовые команды с вашим ключом и адресом.

Заберите материалы: запросы для разработчика
Адрес API — https://<адрес из гайда>/api/feed/v1. Часть /api обязательна: без неё запрос попадёт на обычный сайт. Каждый запрос несёт заголовок Authorization: Bearer <ключ>.
| Запрос | Что делает |
|---|---|
GET /me | проверяет ключ, возвращает проект и настройки фида |
GET /content?since=&limit= | готовые материалы, которые этот сайт ещё не подтвердил; сначала старые |
GET /content/{id} | один материал, в том числе уже подтверждённый — чтобы обновить копию |
POST /content/{id}/ack | подтверждает публикацию на сайте |
POST /content/{id}/stats | передаёт просмотры и реакции |
GET /openapi.json | машинное описание API |
BASE="https://<адрес из гайда>/api/feed/v1"
KEY="tlmf_..."
curl -H "Authorization: Bearer $KEY" "$BASE/content?limit=20"
В ответе — items, nextCursor и блок pacing. limit — от 1 до 100, по умолчанию 20. Сохраняйте nextCursor и передавайте его как since в следующем запросе.
Подтвердите публикацию и пришлите статистику
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"externalId":"123","url":"https://my-site.ru/p/123"}' \
"$BASE/content/<ID>/ack"
Все поля необязательны: externalId, url, publishedAt. После подтверждения материал исчезает из выдачи этого сайта, а в проекте получает статус «Опубликовано» — или остаётся «Частично опубликовано», пока его ждут другие площадки. Повторный вызов безопасен.
Чтобы цифры сайта попали в Статистику, отправляйте views, reactions, comments, shares на /content/<ID>/stats. До подтверждения материала этот запрос вернёт 404. Сами мы цифры с сайта не забираем.
Темп выдачи: один материал за интервал
Сайт спрашивает сам, поэтому скорость задаёте вы. За один интервал фид отдаёт не больше одного материала, какой бы limit ни стоял в запросе, и не выдаёт накопившееся пачкой после простоя сайта. Интервал отсчитывается от последнего подтверждения.
- Вариант «Как в расписании проекта» берёт интервал, окно времени и лимит в сутки из расписания публикаций проекта. Лимит считается отдельно для сайта. Расписания нет — ограничений нет.
- «Свой темп» — свой интервал от 5 минут до 30 дней, окно времени и лимит от 1 до 1000 в сутки.
- «Без ограничений» — сайт получит всё, что запросит: до 100 материалов за раз.
Когда материал ещё «не положен», ответ приходит пустым, а блок pacing объясняет причину:
{ "items": [],
"pacing": { "reason": "interval", "intervalSeconds": 3600,
"nextAvailableAt": "2026-09-19T13:00:00.000Z" } }
reason принимает значения interval (интервал не прошёл), window (сейчас вне окна времени), daily-cap (лимит на сегодня выбран), ready, unlimited. В блоке есть и поля enabled, source, timeFrom, timeTo, maxPerDay, allowance. Окно считается по часам сервера — ориентируйтесь на nextAvailableAt.
Поля материала
id,title,excerpt— идентификатор, заголовок, краткое описание.bodyMarkdown— основной текст с заголовками, списками и картинками. Преобразуйте его в HTML и оформите стилями сайта.body— тот же текст без разметки, оставлен для старых подключений.topics— обычно 3–7 тегов на языке материала.sourceUrl,createdAt,updatedAt.media[]— файлы:type(IMAGE,VIDEO,AUDIO,OTHER),url,width,height,duration,thumbnail. Ссылки абсолютные.
Первая картинка в media — обложка, в текст она не вставлена. Видео и аудио тоже берите из media: не больше одного ролика на ориентацию. Ролики, которые ждут вашего подтверждения, в фид не попадают.
На странице материала карточка сайта показывает статус — «Ожидает забора сайтом», «Подтверждён сайтом» или «Не попадает в фид» — и время последнего обращения сайта. Кнопка «Предпросмотр» открывает текст ровно в том виде, в каком его получит сайт.

Пауза и новый ключ
- Пауза. В разделе «Интеграции» нажмите кнопку паузы на карточке сайта. Появится сообщение «Интеграция приостановлена», и сайт начнёт получать ошибку 401. Та же кнопка включает выдачу обратно.
- Новый ключ. Нажмите на карточку сайта, в окне «Фид сайта» выберите «Перевыпустить ключ». Новый ключ тоже показывается один раз, старый перестаёт работать сразу — обновите его на сайте.
В этом же окне меняются название, статусы и темп; не забудьте «Сохранить».

Если сайт ничего не получает
- Ответ 401. Ключ скопирован не целиком, перевыпущен или подключение стоит на паузе. Проверьте заголовок
Authorization: Bearer …запросомGET /me. - Вместо JSON приходит страница сайта. В адресе пропущено
/api. - Пустой
items. Сначала посмотритеpacing.reasonиnextAvailableAt. Если тамreadyилиunlimited— в проекте нет материалов в выбранных статусах: черновик нужно сначала принять, см. Работа с контентом. - Материал приходит снова. Сайт не отправил
ack.
Что дальше
- Проекты и площадки — остальные площадки проекта.
- Публикации и календарь — расписание, из которого фид берёт темп.
- Решение частых проблем — если нужна помощь поддержки.