API Документация
Интегрирайте AI агентите на Clairo във вашето приложение чрез REST API. Изисква Max план.
Удостоверяване
Всички API заявки изискват Bearer token. Генерирайте API ключ от таблото: Настройки → API Ключове.
API ключовете започват с clr_
curl -H "Authorization: Bearer clr_your_api_key" \
https://clairo.tech/api/v1/agentsВажно: API достъпът изисква Max план (€190/месец). Пазете ключовете си в тайна — не ги споделяйте в клиентски код.
Агенти
/api/v1/agentsВръща списък с всички ваши агенти.
Примерен отговор:
{
"agents": [
{
"id": "cm1abc...",
"name": "Support Bot",
"type": "SUPPORT",
"isActive": true,
"description": "Customer support agent",
"createdAt": "2026-01-15T10:00:00Z"
}
]
}Chat
/api/v1/chatИзпраща съобщение до Support агент и получава AI отговор.
Тяло на заявката:
{
"agentId": "cm1abc...",
"message": "Какви са работните ви часове?",
"conversationId": "optional-existing-id"
}Примерен отговор:
{
"reply": "Работим от понеделник до петък, 9:00-18:00.",
"conversationId": "cm2xyz..."
}Подайте conversationId за продължаване на съществуващ разговор. Ако го пропуснете, ще бъде създаден нов.
Discovery
/api/v1/discoverИзпраща отговор до Discovery агент. Връща следващия въпрос или завършване.
{
"agentId": "cm1def...",
"message": "Имаме 50 служители",
"conversationId": "optional-existing-id"
}Примерен отговор:
{
"reply": "Какъв е месечният ви бюджет за софтуер?",
"conversationId": "cm2abc...",
"progress": 60,
"completed": false
}Разговори
/api/v1/conversationsВръща списък с разговори. Поддържа филтриране по агент.
Query параметри:
| Параметър | Тип | Описание |
|---|---|---|
| agentId | string | Филтрирай по агент (незадължителен) |
| limit | number | Брой резултати (по подразбиране: 50) |
/api/v1/conversations/{id}Връща детайли за конкретен разговор с всички съобщения.
{
"id": "cm2xyz...",
"agentId": "cm1abc...",
"status": "ACTIVE",
"messages": [
{ "role": "user", "content": "Здравейте!", "createdAt": "..." },
{ "role": "assistant", "content": "Здравейте! Как мога да ви помогна?", "createdAt": "..." }
]
}Резюмета (Discovery)
/api/v1/briefsВръща резюмета от Discovery разговори.
{
"briefs": [
{
"id": "cm3abc...",
"agentId": "cm1def...",
"conversationId": "cm2ghi...",
"summary": "Иван Петров, CEO на TechStart. Търсят AI чатбот за поддръжка. Бюджет: €50-100/месец.",
"createdAt": "2026-04-01T14:30:00Z"
}
]
}/api/v1/briefs/{id}Връща детайли за конкретно резюме.
{
"id": "cm3abc...",
"summary": "...",
"answers": { ... },
"conversation": { "id": "...", "messages": [...] }
}Срещи
/api/v1/meetingsИзпраща аудио за транскрипция и обобщение.
Изпратете multipart/form-data с аудио файл (webm, mp3, wav). Максимален размер: 25MB.
curl -X POST \
-H "Authorization: Bearer clr_your_api_key" \
-F "agentId=cm1ghi..." \
-F "audio=@meeting.webm" \
-F "title=Weekly standup" \
https://clairo.tech/api/v1/meetingsПримерен отговор:
{
"id": "cm4abc...",
"title": "Weekly standup",
"transcript": "Пълна транскрипция на срещата...",
"summary": "Обобщение с ключови точки и задачи...",
"durationSec": 2700
}Грешки
API-то връща стандартни HTTP статус кодове. Тялото на грешката винаги съдържа error поле.
| Код | Описание |
|---|---|
| 400 | Невалидна заявка — проверете параметрите |
| 401 | Невалиден или липсващ API ключ |
| 403 | Нямате достъп — изисква Max план |
| 404 | Ресурсът не е намерен |
| 429 | Прекалено много заявки — изчакайте |
| 500 | Вътрешна грешка на сървъра |
{
"error": "Невалиден или липсващ API ключ"
}Rate Limits
API-то е ограничено до 1000 заявки на минута на бизнес. Лимитите се връщат в response headers.
| Header | Описание |
|---|---|
| X-RateLimit-Limit | Максимален брой заявки на минута |
| X-RateLimit-Remaining | Оставащи заявки в текущия прозорец |
| X-RateLimit-Reset | Unix timestamp за рестартиране на лимита |
Бърз старт
Пример с JavaScript (Node.js):
const API_KEY = "clr_your_api_key";
const BASE_URL = "https://clairo.tech/api/v1";
// Send a chat message
const response = await fetch(`${BASE_URL}/chat`, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
agentId: "your_agent_id",
message: "Какви продукти предлагате?",
}),
});
const data = await response.json();
console.log(data.reply);Пример с Python:
import requests
API_KEY = "clr_your_api_key"
BASE_URL = "https://clairo.tech/api/v1"
response = requests.post(
f"{BASE_URL}/chat",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"agentId": "your_agent_id",
"message": "Какви продукти предлагате?",
},
)
data = response.json()
print(data["reply"])