OpenClaw предоставляет полноценный программный интерфейс для встраивания возможностей ИИ-агента в собственные приложения. Вместо того чтобы запускать агента вручную, вы можете инициировать задачи из своего кода, получать результаты в реальном времени и строить автоматизированные пайплайны.
Архитектура API
OpenClaw API состоит из двух компонентов:
- REST API — для запуска задач, управления навыками и получения статусов
- WebSocket — для подписки на события агента в реальном времени
Базовый URL: https://api.openclaw.ai/v1
Для локальных инстансов OpenClaw API доступен по адресу http://localhost:7432/api/v1 и работает полностью офлайн.
Аутентификация
OpenClaw поддерживает два метода аутентификации:
API Key (рекомендуется для серверных приложений)
Authorization: Bearer oc_sk_live_xxxxxxxxxxxxxxxxxxxx
API-ключи создаются в настройках аккаунта. Поддерживаются ключи с ограниченными правами (read-only, конкретные навыки).
OAuth 2.0 (для пользовательских приложений)
Если ваше приложение действует от имени пользователя, используйте OAuth flow с scopes:
tasks:write— запуск задачtasks:read— чтение статусов и результатовskills:read— просмотр доступных навыков
Ключевые REST-эндпоинты
Запуск задачи
POST /v1/tasks
Content-Type: application/json
{
"instruction": "Открой сайт competitor.ru, найди цену на товар с артикулом ABC-123 и верни её",
"skill_ids": ["web-browse", "extract-data"],
"timeout": 120,
"callback_url": "https://yourapp.com/webhooks/openclaw"
}
Ответ:
{
"task_id": "tsk_a1b2c3d4",
"status": "queued",
"estimated_duration": 45,
"created_at": "2026-03-18T10:00:00Z"
}
Получение статуса задачи
GET /v1/tasks/{task_id}
Возможные статусы: queued, running, completed, failed, cancelled.
Список доступных навыков
GET /v1/skills?category=browser&enabled=true
Подробнее о системе навыков — в разделе навыки OpenClaw.
Отмена задачи
DELETE /v1/tasks/{task_id}
WebSocket: события в реальном времени
Для долгих задач polling неэффективен. Подключитесь к WebSocket и получайте события по мере их возникновения:
const ws = new WebSocket('wss://api.openclaw.ai/v1/stream');
ws.send(JSON.stringify({
type: 'subscribe',
task_id: 'tsk_a1b2c3d4',
token: 'oc_sk_live_xxx'
}));
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
// data.type: 'step_completed' | 'screenshot' | 'result' | 'error'
console.log(data);
};
Типы событий:
| Тип события | Описание |
|---|---|
step_completed | Агент завершил один шаг задачи |
screenshot | base64-скриншот текущего состояния экрана |
result | Финальный результат задачи |
error | Ошибка выполнения с кодом и описанием |
token_usage | Статистика использования токенов |
SDK
Python SDK
pip install openclaw-sdk
from openclaw import OpenClaw
client = OpenClaw(api_key="oc_sk_live_xxx")
task = client.tasks.create(
instruction="Перейди на hh.ru и найди 10 вакансий Python-разработчика в Москве",
skills=["web-browse", "extract-data"]
)
result = task.wait() # блокирующий вызов
print(result.output)
Node.js SDK
npm install @openclaw/sdk
import { OpenClaw } from '@openclaw/sdk';
const client = new OpenClaw({ apiKey: 'oc_sk_live_xxx' });
const task = await client.tasks.create({
instruction: 'Открой Telegram Web и отправь сообщение "Готово" в чат "Команда"',
skills: ['browser', 'messenger']
});
for await (const event of task.stream()) {
console.log(event.type, event.data);
}
Лимиты и тарификация
| План | Задач в сутки | Параллельных задач | Тайм-аут задачи |
|---|---|---|---|
| Free | 50 | 1 | 60 сек |
| Pro | 500 | 5 | 600 сек |
| Business | 5 000 | 20 | 3 600 сек |
| Enterprise | Без ограничений | По договору | По договору |
Каждая задача тарифицируется по числу использованных токенов LLM и времени работы агента. Локальный запуск OpenClaw с собственной LLM не требует API-ключа и работает без ограничений на количество задач.
О сравнении локального и облачного запуска подробно написано в разделе сравнение вариантов.
Когда использовать API, а когда — локальный агент
Используйте API, если:
- Задачи запускаются автоматически из вашего приложения без участия человека
- Нужна горизонтальная масштабируемость (много параллельных задач)
- Не хотите администрировать локальную инфраструктуру
Используйте локальный OpenClaw, если:
- Задачи требуют доступа к локальным файлам и приложениям
- Критична конфиденциальность данных — они не должны покидать ваш компьютер
- Нужна работа без интернета
Пример: триггер задачи из веб-приложения
Практический сценарий: форма заявки на сайте → автоматическая обработка агентом.
# Flask endpoint, вызываемый после получения заявки
@app.route('/webhooks/new-lead', methods=['POST'])
def handle_new_lead():
lead = request.json
client.tasks.create(
instruction=f"""
1. Открой CRM-систему (crm.company.ru)
2. Создай новую карточку клиента: {lead['name']}, {lead['email']}
3. Добавь в карточку заметку: {lead['message']}
4. Назначь задачу менеджеру Иванову: связаться в течение 2 часов
""",
skills=["browser", "crm-integration"],
callback_url="https://company.ru/webhooks/task-done"
)
return {"status": "ok"}
Полная документация по всем эндпоинтам, параметрам и кодам ошибок доступна в официальном Developer Portal. О возможностях интеграции OpenClaw со сторонними сервисами читайте в разделе интеграции.
Если вы только начинаете работу с OpenClaw, рекомендуем начать с общего введения — что такое OpenClaw и как он работает.