Это экспериментальный API. Форматы запросов и ответов, ограничения скорости и семантика токенов могут измениться. Критические изменения выпускаются под новыми датированными версиями бета-заголовка, а две предыдущие версии заголовка продолжают работать, чтобы у вызывающих сторон было время на миграцию.
Claude Code — это агентный инструмент для программирования от Anthropic. Claude Code в веб-версии запускает сеансы Claude Code на облачной инфраструктуре под управлением Anthropic по адресу claude.ai/code, а «routine» (рутина) — это сохранённая там конфигурация: подсказка, один или несколько репозиториев и коннекторы, упакованные так, чтобы запускаться без участия пользователя по расписанию, в ответ на события GitHub или при вызове по HTTP.
Эта конечная точка является точкой входа по HTTP. Отправка POST-запроса на неё запускает новое выполнение существующей рутины и возвращает идентификатор и URL созданного сеанса. Типичные вызывающие стороны — системы оповещения, CI-конвейеры и внутренние инструменты, которым нужно программно запустить сеанс Claude Code.
Для вызова этой конечной точки требуется учётная запись claude.ai на тарифном плане Pro, Max, Team или Enterprise с включённой функцией Claude Code в веб-версии. Аутентификация выполняется с помощью «bearer token» (токена-носителя), создаваемого для конкретной рутины в веб-интерфейсе Claude Code, а не с помощью ключа API Claude.
Конечная точка запуска рутины относится к продуктовой поверхности Claude Code, которая отличается от API и SDK Claude Platform по ряду параметров:
| Аспект | Эта конечная точка | API Claude Platform |
|---|---|---|
| Аутентификация | Authorization: Bearer с токеном для конкретной рутины (sk-ant-oat01-...), созданным на claude.ai/code/routines | x-api-key с ключом API Claude из Claude Console |
| Область действия токена | Только одна рутина; без доступа на чтение | Уровень рабочего пространства |
| Поддержка SDK | Отсутствует | Доступна во всех клиентских SDK |
| Тарификация | Использование подписки Claude Code на claude.ai | Использование Claude Platform |
| Пространство имён пути | /v1/claude_code/... | /v1/... |
| Стабильность | Экспериментальная; требуется anthropic-beta: experimental-cc-routine-2026-04-01 | Стабильная или стандартная бета |
Для вызова этой конечной точки вам потребуется:
Полное пошаговое руководство по настройке см. в разделе Добавление API-триггера документации Claude Code.
POST https://api.anthropic.com/v1/claude_code/routines/{routine_id}/fireКаждый запрос должен включать заголовок anthropic-beta: experimental-cc-routine-2026-04-01. Запросы без него возвращают 400 invalid_request_error.
Веб-интерфейс Claude Code предоставляет полный URL вместе с токеном при добавлении API-триггера, поэтому большинство интеграций сохраняют оба значения как секреты и вызывают конечную точку напрямую. Примеры ниже показывают вызов из командной оболочки и шаг GitHub Actions, который запускает рутину при сбое CI.
curl -X POST https://api.anthropic.com/v1/claude_code/routines/$ROUTINE_ID/fire \
-H "Authorization: Bearer $ROUTINE_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: experimental-cc-routine-2026-04-01" \
-H "Content-Type: application/json" \
-d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'- if: failure()
env:
ROUTINE_FIRE_URL: ${{ secrets.ROUTINE_FIRE_URL }}
ROUTINE_FIRE_TOKEN: ${{ secrets.ROUTINE_FIRE_TOKEN }}
run: |
curl -X POST "$ROUTINE_FIRE_URL" \
-H "Authorization: Bearer $ROUTINE_FIRE_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: experimental-cc-routine-2026-04-01" \
-H "Content-Type: application/json" \
-d "{\"text\": \"CI failed: $GITHUB_WORKFLOW run $GITHUB_RUN_ID on $GITHUB_REF\"}"Запрос возвращает ответ сразу после создания сеанса. Он не передаёт вывод сеанса в потоковом режиме и не ожидает завершения сеанса.
| Имя | Обязательный | Описание |
|---|---|---|
Authorization | Да | Bearer <token>. Токен для конкретной рутины, созданный в веб-интерфейсе Claude Code, с префиксом sk-ant-oat01-. |
anthropic-beta | Да | Должен включать experimental-cc-routine-2026-04-01. |
anthropic-version | Да | Версия API, например 2023-06-01. |
Content-Type | Если присутствует тело запроса | application/json. |
| Имя | Тип | Описание |
|---|---|---|
routine_id | string | Идентификатор рутины. Несмотря на имя параметра, значение имеет префикс trig_, а не routine_. Включён в URL, который показывает модальное окно при добавлении API-триггера. |
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
text | string | Нет | Начальный контекст для данного запуска, например тело оповещения, строка лога с ошибкой или git diff. Значение представляет собой произвольный текст и не парсится; если вы отправите JSON или другую структурированную полезную нагрузку, рутина получит её как литеральную строку. Передаётся рутине вместе с её сохранённой подсказкой. Максимум 65 536 символов. |
Тело запроса необязательно. Неизвестные поля в теле игнорируются.
Успешный запрос возвращает 200 OK с данными нового сеанса:
{
"type": "routine_fire",
"claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
"claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}| Поле | Тип | Описание |
|---|---|---|
type | string | Всегда routine_fire. |
claude_code_session_id | string | Идентификатор сеанса Claude Code, созданного для этого запуска. |
claude_code_session_url | string | Ссылка на сеанс на claude.ai. Откройте её в браузере, чтобы наблюдать за выполнением, просмотреть изменения или продолжить разговор. |
Ошибки используют стандартную оболочку ошибок Anthropic:
{
"type": "error",
"error": {
"type": "not_found_error",
"message": "<string>"
}
}| HTTP-статус | Тип ошибки | Причина |
|---|---|---|
| 400 | invalid_request_error | Отсутствует или недействителен заголовок anthropic-beta, text превышает 65 536 символов, либо рутина приостановлена. |
| 401 | authentication_error | Отсутствует токен-носитель в заголовке Authorization, либо токен не соответствует этой рутине. |
| 403 | permission_error | У учётной записи или организации нет доступа к этой конечной точке. |
| 404 | not_found_error | Рутина не существует. |
| 429 | rate_limit_error | Достигнут лимит запусков рутин или лимит использования для учётной записи. Ответ включает заголовок Retry-After, указывающий, когда окно сбрасывается. |
| 500 | api_error | Непредвиденная ошибка сервера. |
| 503 | overloaded_error | Сервис временно перегружен. Повторите попытку после небольшой задержки. Claude Platform возвращает 529 для этого типа ошибки; эта конечная точка возвращает 503. |
Токен-носитель ограничен областью действия одной рутины. Скомпрометированный токен может только запускать эту рутину; он не даёт доступа на чтение, доступа к другим рутинам или доступа к данным учётной записи.
Генерируйте и отзывайте токены в настройках API-триггера рутины на claude.ai/code/routines. Публичного API для управления токенами нет. Генерация нового токена отзывает предыдущий.
Каждый успешный запрос создаёт новый сеанс. Ключа идемпотентности нет. Если вызывающая сторона вебхука повторяет запрос, конечная точка создаёт несколько сеансов.
Запуски рутин учитываются в ежедневном лимите на учётную запись, который зависит от тарифного плана, а создаваемые сеансы расходуют тот же объём использования подписки Claude Code, что и интерактивные сеансы. При достижении любого из лимитов конечная точка возвращает 429 rate_limit_error с заголовком Retry-After. Организации с включённым дополнительным использованием продолжают работу сверх включённого лимита с тарификацией по факту превышения.
Оставшееся количество ежедневных запусков отображается на claude.ai/code/routines. О том, как использование рутин взаимодействует с лимитами подписки и тарификацией дополнительного использования, см. в разделе Использование и лимиты документации Claude Code.
Эта конечная точка не включена в SDK Anthropic. Её модель токенов отличается от аутентификации по ключу API, а типичные вызывающие стороны, такие как CI-задания и вебхуки систем оповещения, отправляют запрос напрямую.
Was this page helpful?