Начало работы
Базовый URL, первый API-запрос, формат ответа, обработка ошибок и пагинация
Базовый URL
Все API-запросы отправляются на:
https://www.aacflow.ioБыстрый старт
Получите ваш API-ключ
Перейдите на платформу AACFlow и откройте Настройки, затем перейдите в Ключи AACFlow и нажмите Создать. Подробности о типах ключей смотрите в разделе Аутентификация.
Найдите ID вашего workflow
Откройте workflow в редакторе AACFlow. ID workflow находится в URL:
https://www.aacflow.io/workspace/{workspaceId}/w/{workflowId}Вы также можете использовать эндпоинт Список Workflow для получения всех ID workflow в рабочем пространстве.
Разверните ваш workflow
Workflow должен быть развернут перед выполнением через API. Нажмите кнопку Развернуть на панели инструментов редактора или используйте панель управления для управления развертываниями.
Сделайте ваш первый запрос
curl -X POST https://www.aacflow.io/api/workflows/{workflowId}/execute \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"inputs": {}}'const response = await fetch(
`https://www.aacflow.io/api/workflows/${workflowId}/execute`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': process.env.AACFLOW_API_KEY!,
},
body: JSON.stringify({ inputs: {} }),
}
)
const data = await response.json()
console.log(data.output)import requests
import os
response = requests.post(
f"https://www.aacflow.io/api/workflows/{workflow_id}/execute",
headers={
"Content-Type": "application/json",
"X-API-Key": os.environ["AACFLOW_API_KEY"],
},
json={"inputs": {}},
)
data = response.json()
print(data["output"])Синхронное vs Асинхронное выполнение
По умолчанию выполнение workflow является синхронным — API блокируется до завершения workflow и возвращает результат напрямую.
Для долго выполняющихся workflow используйте асинхронное выполнение, передав async: true:
curl -X POST https://www.aacflow.io/api/workflows/{workflowId}/execute \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"inputs": {}, "async": true}'Это немедленно возвращает taskId:
{
"success": true,
"taskId": "job_abc123",
"status": "queued"
}Опрашивайте эндпоинт Получить статус задачи до тех пор, пока статус не станет completed или failed:
curl https://www.aacflow.io/api/jobs/{taskId} \
-H "X-API-Key: YOUR_API_KEY"Переходы статусов задачи следуют: queued → processing → completed или failed. Поле output присутствует только когда статус completed.
Формат ответа
Успешные ответы включают объект output с результатами вашего workflow и объект limits с текущим лимитом скорости и статусом использования:
{
"success": true,
"output": {
"result": "Hello, world!"
},
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"requestsPerMinute": 60,
"maxBurst": 10,
"remaining": 59,
"resetAt": "2025-01-01T00:01:00Z"
},
"async": {
"requestsPerMinute": 30,
"maxBurst": 5,
"remaining": 30,
"resetAt": "2025-01-01T00:01:00Z"
}
},
"usage": {
"currentPeriodCost": 1.25,
"limit": 50.00,
"plan": "pro",
"isExceeded": false
}
}
}Обработка ошибок
API использует стандартные HTTP-коды статуса. Ответы с ошибками включают понятное для человека сообщение error:
{
"error": "Workflow не найден"
}| Статус | Значение | Что делать |
|---|---|---|
400 | Неверные параметры запроса | Проверьте массив details для конкретных ошибок полей |
401 | Отсутствует или неверный API-ключ | Проверьте ваш заголовок X-API-Key |
403 | Доступ запрещен | Проверьте, есть ли у вас разрешение на этот ресурс |
404 | Ресурс не найден | Убедитесь, что ID существует и принадлежит вашему рабочему пространству |
429 | Превышен лимит скорости | Подождите время, указанное в заголовке Retry-After |
Используйте эндпоинт Получить лимиты использования для проверки текущего статуса лимита скорости и использования биллинга в любое время.
Лимиты скорости
Лимиты скорости зависят от вашего плана подписки и применяются отдельно к синхронным и асинхронным выполнениям. Каждый ответ выполнения включает объект limits, показывающий текущий статус вашего лимита скорости.
При превышении лимита скорости API возвращает ответ 429 с заголовком Retry-After, указывающим, сколько секунд нужно подождать перед повторной попыткой.
Пагинация
Эндпоинты списков (workflow, логи, логи аудита) используют пагинацию на основе курсора:
# Первая страница
curl "https://www.aacflow.io/api/v1/logs?limit=20" \
-H "X-API-Key: YOUR_API_KEY"
# Следующая страница — используйте nextCursor из предыдущего ответа
curl "https://www.aacflow.io/api/v1/logs?limit=20&cursor=abc123" \
-H "X-API-Key: YOUR_API_KEY"Ответ включает поле nextCursor. Когда nextCursor отсутствует или равен null, вы достигли последней страницы.

