Для AI-агентов: markdown этой страницы — /docs-content/infra/jobs/create.md индекс документации — /llms.txt

Создать задачу

POST /v1/infra/servers/:id/jobs

Создаёт задачу и возвращает секрет подписи один раз. Сохраните его в защищённой конфигурации обработчика. Первый плановый срок строго после создания, даже если enabled=false.

Нужен ключ с vibe:infra и существующие права на сервер. Для записи — управляющий ключ или роль команды с правом управления жизненным циклом. Общие правила; проверка подписи.

Параметры

Параметр Где Тип Обязателен Описание
id path string yes ID сервера из списка серверов
cronExpr body string yes Пять полей, 9–120 символов; интервал по умолчанию не меньше 5 минут
timezone body string yes Поддерживаемый IANA-пояс, например Europe/Moscow
path body string yes Относительный путь с query, 1–512 символов; без URL, traversal, control и сырого #
label body string no До 80 символов, по умолчанию пустая строка
enabled body boolean no По умолчанию true

Неизвестные поля отвергаются; lead здесь отсутствует. ALWAYS разрешён, конфликт с бессрочной работой не применяется. Хост галактики не поддерживается; приложение в галактике требует отдельного допуска.

Примеры

curl — личный ключ

Terminal
curl --max-time 20 -X POST "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/jobs" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}'

curl — OAuth-приложение

Terminal
curl --max-time 20 -X POST "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/jobs" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}'

JavaScript — личный ключ

javascript
const serverId = 'SERVER_ID';
const res = await fetch(`https://vibecode.bitrix24.tech/v1/infra/servers/${encodeURIComponent(serverId)}/jobs`, {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}),
});
const result = await res.json();
if (!res.ok || !result.success) throw new Error(result.error?.code ?? `HTTP_${res.status}`);
// Store result.data.secret in protected server-side configuration; never log it.

JavaScript — OAuth-приложение

javascript
const serverId = 'SERVER_ID';
const res = await fetch(`https://vibecode.bitrix24.tech/v1/infra/servers/${encodeURIComponent(serverId)}/jobs`, {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}),
});
const result = await res.json();
if (!res.ok || !result.success) throw new Error(result.error?.code ?? `HTTP_${res.status}`);
// Store result.data.secret in protected server-side configuration; never log it.

Ответ

HTTP 201. Пример формы ответа с вымышленными идентификаторами, не результат живого запроса.

JSON
{
  "success": true,
  "data": {
    "id": "job_example",
    "serverId": "server_example",
    "label": "daily digest",
    "cronExpr": "0 9 * * *",
    "timezone": "Europe/Moscow",
    "path": "/tasks/digest?mode=daily",
    "enabled": true,
    "nextScheduledFor": "2026-10-10T06:00:00.000Z",
    "scheduleRevision": 1,
    "availableSince": "2026-10-09T10:00:00.000Z",
    "createdAt": "2026-10-09T10:00:00.000Z",
    "updatedAt": "2026-10-09T10:00:00.000Z",
    "secret": "vjs_AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8"
  }
}

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе.
data object Созданная задача и секрет подписи; поля объекта описаны ниже.

Поля объекта data:

Поле Тип Описание
id string Идентификатор задачи
serverId string Идентификатор сервера
label string Подпись задачи
cronExpr string Пять полей cron
timezone string Часовой пояс расписания
path string Путь и необязательная query-строка
enabled boolean Включены ли плановые запуски
nextScheduledFor string Следующее плановое вхождение, UTC ISO-8601
scheduleRevision integer Ревизия расписания
availableSince string Начало текущего периода расписания, UTC ISO-8601
createdAt string Время создания, UTC ISO-8601
updatedAt string Время последнего изменения, UTC ISO-8601
secret string Секрет подписи; выдаётся только сейчас, повторно не читается

Ошибки

HTTP Код Причина
401 MISSING_API_KEY Не передан ключ
403 INFRA_FORBIDDEN_FOR_COWORK_KEY Ключ Коворка не допускает запись в инфраструктуру; используйте ключ для развёртывания
403 INFRA_SCOPE_REQUIRED Нужен scope vibe:infra
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения не допускает запись
403 SERVER_ROLE_FORBIDDEN Роль участника команды не допускает это действие
404 NOT_FOUND Сервер не найден или недоступен вызывающему
404 FEATURE_DISABLED Функция недоступна порталу
403 WAKE_SCHEDULE_DISABLED Порталу недоступны расписания
400 BLACKHOLE_ONLY Нужен сервер Black Hole
400 GALAXY_NOT_SUPPORTED Хост галактики не поддерживается
403 WAKE_SCHEDULE_GALAXY_DISABLED Расписания приложений галактики недоступны
400 VALIDATION_ERROR Неверная форма запроса, путь или часовой пояс
400 INVALID_CRON Cron не разобран или следующее вхождение не вычисляется
400 CADENCE_TOO_LOW Частота превышает разрешённую
409 SCHEDULED_JOB_LIMIT Достигнут лимит 20 задач
429 RATE_LIMITED Слишком много запросов; настройка мутаций 10 в минуту, общие ограничения также действуют

Полный список общих ошибок API — Ошибки.

JSON
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Server not found"
  }
}

Смотрите также