Skip to main content
Rekla External API позволяет внешним партнёрам создавать публикации в Telegram-каналах пользователей Rekla, проверять доступ и отслеживать статусы. Base URL: https://api.rek.la

Подключение

1

Запросите доступ

Напишите в @rekla_support:
«Хочу подключиться как партнёр к Rekla External API»
Вам выдадут:
  • Partner ID — для заголовка X-Partner-Id
  • Webhook Secret — для проверки подписи вебхуков
  • Start-команда — для создания API-ключей пользователями
2

Получите API-ключ пользователя

Пользователь вводит команду в боте @rekla:
Бот создаёт ключ и показывает его пользователю. Одновременно Rekla отправит вебхук api_key.created на ваш сервер с данными ключа.
3

Делайте запросы


Аутентификация

API-ключ показывается пользователю один раз. Повторно получить его невозможно.

Эндпоинты

GET /external-api/me

Получить информацию о владельце API-ключа.
Ответ 200:

GET /external-api/channels//can-post

Проверить, может ли пользователь публиковать в указанный канал. Проверяется два условия:
  1. У пользователя есть права автопостинга в канале
  2. Бот Rekla является администратором канала с правами на публикацию
Ответ 200:
Ответ 403:
channel_id — это числовой Telegram ID канала (обычно начинается с -100).

POST /external-api/publications

Создать одну или несколько публикаций. Принимает массив объектов.
Ответ 201:
Альбомы (media_type: album): поле album обязательно и не может быть пустым. Только последний элемент альбома может содержать caption. Поле text должно совпадать с caption последнего элемента.Обычные медиа: для одиночного медиа и каждого элемента альбома обязателен публично доступный file_url. file_id, полученный другим Telegram-ботом, бот Rekla использовать не может.Статья (media_type: rich_message): передайте точные blocks и is_rtl из message.rich_message, полученного ботом партнёра. Для каждого встроенного фото, видео, аудио, animation или voice note добавьте в media_urls соответствие file_unique_id → временный HTTP(S) URL.Rekla загрузит все медиа своим ботом прямо во время создания публикации. К моменту сохранения Статья уже содержит наши Telegram file_id; переданные URL не нужны крону и паблишеру.URL вида https://api.telegram.org/file/bot<TOKEN>/... запрещён, потому что раскрывает токен партнёрского бота. Сначала скачайте файл своим ботом и разместите его по безопасному временному URL.Дата публикации: принимается в формате ISO 8601. Таймзона автоматически удаляется (хранится как naive datetime).
inline_buttons остаётся верхнеуровневым полем. Если партнёр получил публикацию от своего бота, сюда передаётся message.reply_markup, а в rich_messagemessage.rich_message.
Коды ответов:
Создание атомарно: если одна публикация из массива не пройдёт валидацию, ни одна не будет создана.

POST /external-api/publications/cancel

Отменить публикацию.
Ответ 204: пустое тело (успешная отмена).
Отменить можно только публикацию, созданную через вашего партнёра. Попытка отменить чужую публикацию вернёт 404.

POST /external-api/publications/status

Проверить статус публикации.
Ответ 200:

Вебхуки

При определённых событиях Rekla отправляет POST-запрос на ваш webhook_url.

Событие api_key.created

Отправляется когда пользователь создаёт API-ключ через команду /start createapikey-<partner>. Тело запроса:
Заголовки:

Проверка подписи


Контакты

Поддержка интеграций: @rekla_support Версия API: 1.0.0 | Формат: application/json
Используя API, вы принимаете условия оферты.