Trumps API
Тот же API, которым живёт кабинет: проекты, стратегия, план, посты, каналы, публикации, статистика. Никакого отдельного «внешнего» API с урезанным набором — всё, что умеет кабинет, умеет и ключ.
База: https://rebma.dvorkin.tech/api/v1. Все ответы — JSON, кодировка UTF-8, время — RFC 3339 в UTC.
Аутентификация
Ключ создаётся в кабинете: Аккаунт → API-ключи → Новый ключ. Секрет вида trk_… показывается один раз при создании; в базе хранится только хеш. Ключ действует в рамках рабочего пространства, где создан, и наследует его тариф.
curl -H "Authorization: Bearer trk_ВАШ_КЛЮЧ" https://rebma.dvorkin.tech/api/v1/projects
Ключ не подходит для управления учёткой: вход, смена пароля, команда, биллинг и сами ключи доступны только из кабинета (ответ 403 key_forbidden).
Права ключа
| Право | Что открывает |
|---|---|
read | Все GET: проекты, стратегия, план, посты, каналы, статистика, очередь. |
write | Создание и правка: посты, слоты плана, концепция, настройки проекта, загрузка исходников. |
publish | Постановка в очередь и отправка на площадки: ручки с /publish и /schedule. |
Нужное право указано у каждой ручки в справочнике ниже (x-scope в спеке). Нехватка права — 403 scope.
Лимиты
Token bucket: ведро на ключ и ведро на пространство, пополняются равномерно в течение минуты. У ручек с генерацией (план, стратег, тексты) и рендером — отдельное, маленькое ведро на ключ.
| Тариф | На ключ, в минуту | На пространство | Генерация и рендер | Запись |
|---|---|---|---|---|
| Free | 20 | 40 | 2 | только чтение |
| Starter | 60 | 120 | 6 | да |
| Pro и выше | 120 | 600 | 12 | да |
Заголовки ответа: X-RateLimit-Limit, X-RateLimit-Remaining. При превышении — 429 rate_limited и Retry-After в секундах: подождите столько и повторите, ведро пополнится.
Ошибки
Любая ошибка — JSON одной формы:
{"error": {"code": "scope", "message": "Ключу не хватает права «write»."}}
| HTTP | code | Когда |
|---|---|---|
| 400 | bad_request, bad_id, … | Тело или параметр не разобрались; в message сказано, что именно. |
| 401 | unauthorized, bad_key | Нет ключа, ключ отозван или истёк. |
| 403 | scope, plan, key_forbidden | Не хватает права, тариф не позволяет, ручка закрыта для ключей. |
| 404 | not_found | Объект не найден в вашем пространстве. |
| 429 | rate_limited | Лимит; см. Retry-After. |
| 500 | internal | Наша ошибка; повторите позже, мы её уже видим в логах. |
Примеры
Проекты и их каналы
curl -H "Authorization: Bearer $KEY" https://rebma.dvorkin.tech/api/v1/projects
curl -H "Authorization: Bearer $KEY" https://rebma.dvorkin.tech/api/v1/projects/$PROJECT/channels
Контент-план проекта
# слоты плана с каналами, временем и статусом по каждому
curl -H "Authorization: Bearer $KEY" "https://rebma.dvorkin.tech/api/v1/projects/$PROJECT/plan"
# построить план на 2 недели из концепции (право write; тяжёлая ручка)
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"weeks": 2, "replace": false, "useFeedback": true}' \
https://rebma.dvorkin.tech/api/v1/projects/$PROJECT/plan/generate
Пост в несколько каналов по расписанию
# создать пост (право write). connectionIds — id каналов из /projects/{id}/channels.
# scheduleLocal — локальное время аудитории каждого канала; scheduleAt — один момент для всех (RFC 3339)
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"projectId": "'$PROJECT'", "body": "Текст поста", "connectionIds": ["…", "…"], "scheduleLocal": "2026-09-20T18:00"}' \
https://rebma.dvorkin.tech/api/v1/posts
# поставить в очередь / отправить (право publish)
curl -X POST -H "Authorization: Bearer $KEY" https://rebma.dvorkin.tech/api/v1/posts/$POST/publish
Статистика
curl -H "Authorization: Bearer $KEY" "https://rebma.dvorkin.tech/api/v1/stats?projectId=$PROJECT&from=2026-09-01&to=2026-09-30"
Для агентов и нейросетей
Машиночитаемая спека: https://rebma.dvorkin.tech/api/v1/openapi.json (OpenAPI 3.0). В ней все ручки, их методы, параметры пути, требуемое право (x-scope) и признак тяжёлой операции (x-heavy). Отдайте её агенту как описание инструментов; ключ с правами read и write покрывает работу со стратегией, планом и текстами, publish добавляйте только тому, кому доверяете отправлять наружу.
Описания, параметры, схемы тел запросов с примерами и ключи ответов в спеке собраны генератором из кода обработчиков при каждой сборке, так что расхождений с развёрнутым API нет по построению.
Справочник ручек
Собирается из спеки при открытии страницы; описания, параметры, тела и ответы — из кода обработчиков, поэтому список всегда совпадает с тем, что развёрнуто. Раскройте метод — внизу плейграунд: подставьте ключ и выполните запрос прямо отсюда.