https://api.rek.la
Подключение
Запросите доступ
Напишите в @rekla_support:
«Хочу подключиться как партнёр к Rekla External API»Вам выдадут:
- Partner ID — для заголовка
X-Partner-Id - Webhook Secret — для проверки подписи вебхуков
- Start-команда — для создания API-ключей пользователями
Получите API-ключ пользователя
Пользователь вводит команду в боте @rekla:Бот создаёт ключ и показывает его пользователю. Одновременно Rekla отправит вебхук
api_key.created на ваш сервер с данными ключа.Аутентификация
| Заголовок | Описание |
|---|---|
X-API-Key | API-ключ пользователя Rekla |
X-Partner-Id | Ваш идентификатор партнёра |
Эндпоинты
GET /external-api/me
Получить информацию о владельце API-ключа.200:
GET /external-api/channels//can-post
Проверить, может ли пользователь публиковать в указанный канал. Проверяется два условия:- У пользователя есть права автопостинга в канале
- Бот Rekla является администратором канала с правами на публикацию
200:
403:
channel_id — это числовой Telegram ID канала (обычно начинается с -100).POST /external-api/publications
Создать одну или несколько публикаций. Принимает массив объектов.201:
Поля PublicationCreateRequest
Поля PublicationCreateRequest
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
external_id | string | ✅ | Ваш внутренний ID публикации |
channel_id | integer | ✅ | Telegram ID канала |
text | string | — | Текст публикации (HTML-разметка Telegram) |
text_len | integer | — | Длина текста |
media_type | string | — | Тип медиа: text, photo, video, animation, document, audio, voice, video_note, sticker, album, poll |
file_id | string | — | Telegram file_id (если есть) |
file_url | string | — | URL файла (система получит file_id автоматически) |
album | object | — | Конфигурация альбома (обязательно при media_type: album) |
poll | object | — | Конфигурация опроса (при media_type: poll) |
inline_buttons | object | — | Инлайн-кнопки |
price | number | ✅ | Цена публикации |
publish_date | string | ✅ | Дата публикации (ISO 8601) |
payment_status | string | — | not_paid (по умолчанию), paid, barter |
auto_delete | integer | — | Автоудаление через N минут |
with_sound_notification | boolean | — | Звуковое уведомление (false по умолчанию) |
wp_preview | boolean | — | Предпросмотр ссылок |
wp_preview_config | object | — | Настройки предпросмотра: is_disabled, url, prefer_small_media, show_above_text |
allow_comments | boolean | — | Разрешить комментарии (true по умолчанию) |
has_spoiler | boolean | — | Спойлер на медиа |
protect_content | boolean | — | Защита от копирования |
comment | string | — | Комментарий к публикации |
Правила валидации
Правила валидации
Альбомы (
media_type: album): поле album обязательно и не может быть пустым. Только последний элемент альбома может содержать caption. Поле text должно совпадать с caption последнего элемента.Медиа-файлы: для типов кроме text и poll нужен file_id или file_url. При указании file_url система автоматически получит file_id через бота Rekla.Дата публикации: принимается в формате ISO 8601. Таймзона автоматически удаляется (хранится как naive datetime).Пример с фото
Пример с фото
| Код | Описание |
|---|---|
201 | Публикации созданы |
403 | Нет доступа к одному или нескольким каналам |
422 | Ошибка валидации входных данных |
400 | Непредвиденная ошибка |
Создание атомарно: если одна публикация из массива не пройдёт валидацию, ни одна не будет создана.
POST /external-api/publications/cancel
Отменить публикацию.204: пустое тело (успешная отмена).
POST /external-api/publications/status
Проверить статус публикации.200:
Возможные значения publish_status
Возможные значения publish_status
| Статус | Описание |
|---|---|
created | Публикация создана, ожидает отправки |
published | Опубликована в канале |
canceled | Отменена |
deleted | Удалена из канала |
error | Ошибка при публикации |
Вебхуки
При определённых событиях Rekla отправляет POST-запрос на вашwebhook_url.
Событие api_key.created
Отправляется когда пользователь создаёт API-ключ через команду /start createapikey-<partner>.
Тело запроса:
| Заголовок | Описание |
|---|---|
X-Webhook-Event | Тип события (api_key.created) |
X-Webhook-Id | Уникальный UUID события |
X-Webhook-Timestamp | UNIX timestamp отправки |
X-Webhook-Signature | Подпись HMAC SHA256 |
Проверка подписи
Контакты
Поддержка интеграций: @rekla_support Версия API:1.0.0 | Формат: application/json
Используя API, вы принимаете условия оферты.
