Справочник API
37 адресов, JSON и один заголовок с пропуском.
curl -X POST https://<your-runner>/api/v1/conversations/<id>/notes \
-H "Authorization: Bearer <access token>" \
-H "Idempotency-Key: 4f9c-2a" \
-H "Content-Type: application/json" \
-d '{"text":"the price holds at 640-660"}'Адреса
GET/api/v1
Воркспейс, участник и области пропуска
200 {
"workspace": "9f1c…",
"member": "4a2b…",
"client": { "id": "d342…", "name": "Astra" },
"scopes": ["inbox:read", "inbox:write", "send"]
}GET/api/v1/conversations
Беседы, от свежих
- cursorstring
- Откуда продолжить: next из прошлого ответа
- limitinteger
- Сколько строк вернуть: 50 по умолчанию, 200 предел
200 {
"conversations": [
{
"id": "c81f…",
"person": "77a0…",
"kind": "email",
"lastMessageAt": "2026-09-20T09:41:02.000Z",
"waitingSince": "2026-09-20T09:41:02.000Z",
"importance": "high",
"intent": "quote",
"owner": null
}
],
"next": "MjAyNi0wOS0yMFQwOTo0MTowMi4wMDBafGM4MWY"
}GET/api/v1/conversations/{id}
Одна беседа
PATCH/api/v1/conversations/{id}
Отложить, разбудить, закрыть, открыть, отдать, отметить встречу
- snoozeUntilstring | null
- До какого момента отложить; null — разбудить
- whystring
- Почему отложено — это прочитает команда
- closedboolean
- true — закрыть беседу, false — открыть заново
- reasonstring
- Повод закрытия: meeting_booked, not_interested, no_response, wrong_person, spam, personal, other
- ownerstring | null
- Кому отдать беседу; null — снять владельца
- metboolean
- Встреча назначена мимо переписки
GET/api/v1/conversations/{id}/messages
Письма беседы, от свежих
- cursorstring
- Откуда продолжить: next из прошлого ответа
- limitinteger
- Сколько строк вернуть: 50 по умолчанию, 200 предел
200 {
"messages": [
{
"id": "m4c1…",
"conversation": "c81f…",
"direction": "inbound",
"sender": { "name": "Pete", "handle": "pete@acme.example" },
"subject": "Slabs",
"text": "will you send the report?",
"at": "2026-09-20T09:41:02.000Z",
"automated": false,
"agent": null,
"voice": null
}
],
"next": null
}POST/api/v1/conversations/{id}/messages
Письмо контрагенту — в очередь отправки
- textstringrequired
- Что отправить
- tostring
- Контакт контрагента, если их несколько
- viastring
- Наш ящик, если подходящих несколько
- sendAtstring
- Момент отправки; без него — как только дойдёт очередь
200 {
"message": {
"id": "o7d2…",
"state": "queued",
"sendAt": null,
"to": "pete@acme.example"
}
}POST/api/v1/conversations/{id}/notes
Заметка внутри беседы: контрагент её не увидит
- textstringrequired
- Текст заметки
POST/api/v1/conversations/{id}/labels
Метка на беседу, по имени
- namestringrequired
- Имя метки; незнакомая заводится
DELETE/api/v1/conversations/{id}/labels/{label}
Снять метку
GET/api/v1/messages/{id}/files
Файлы при письме
GET/api/v1/files/{id}
Сам файл, байтами
GET/api/v1/people
Контрагенты, по имени
- cursorstring
- Откуда продолжить: next из прошлого ответа
- limitinteger
- Сколько строк вернуть: 50 по умолчанию, 200 предел
GET/api/v1/people/{id}
Один контрагент
PATCH/api/v1/people/{id}
Правка карточки контрагента
- namestring
- Как звать контрагента; пусто стирает имя
- citystring
- Город
- jobTitlestring
- Должность
- companystring
- Компания контрагента
POST/api/v1/people/{id}/tags
Повесить пару «товар + сторона»
- labelstringrequired
- Товарный тег
- sidestringrequired
- Сторона: buyer или seller
DELETE/api/v1/people/{id}/tags
Снять пару; она записывается снятой, а не удаляется
GET/api/v1/agents
Агенты воркспейса — все разом, без страниц
GET/api/v1/agents/{id}
Один агент, вместе со словами, которыми он работает
PATCH/api/v1/agents/{id}
Правка агента: присылайте только то, что меняется
- goalstring
- К чему агент ведёт разговор
- rulesstring
- Как ему себя вести
- knowledgestring
- Что он знает о вашем деле
- enabledboolean
- Работает ли агент вообще
- labelsstring[]
- Товарные теги, которые он ведёт; пусто — ведёт всех
- channelsstring[]
- Подключения, которыми он пишет; пусто — все каналы своих людей
- hoursobject
- Часы агента: пояс, с какого по какой и выходные
GET/api/v1/products
Продукты воркспейса — все разом
GET/api/v1/products/{id}
Один продукт с условиями
PATCH/api/v1/products/{id}
Правка продукта; завести его дверью нельзя
- descriptionstring
- Что это за продукт, вашими словами
- sidestring
- Продаём, покупаем или обе стороны
- goalstring
- Чего вы хотите от разговора о нём
- conditionsobject[]
- Условия парами «ключ: значение», каждое со своей стороной
GET/api/v1/workspace
Настройки воркспейса: пояс и разметка машиной
PATCH/api/v1/workspace
Правка настроек; имя и люди правятся на экране
- timezonestring
- Часовой пояс, которым считается день
- taggingboolean
- Размечает ли машина переписку сама
GET/api/v1/labels
Метки воркспейса: товарные и про переписку
GET/api/v1/audit
Журнал: кто открывал дверь и что через неё правили
GET/api/v1/channels
Подключения: чем воркспейс говорит и живы ли каналы
GET/api/v1/members
Участники и то, что каждый рассказал о себе агенту
PATCH/api/v1/members/{id}
Правка карточки участника
- jobTitlestring
- Должность участника
- zonestring
- Чем он занимается — что делает вопрос его
- signaturestring
- Чем он подписывает письмо
GET/api/v1/house
Общие правила агентов — только чтение
GET/api/v1/deals
Сделки: кто продаёт, кто покупает и где встала
- statestring
- open или closed; без него — обе
GET/api/v1/deals/{id}
Одна сделка
POST/api/v1/deals
Свести пару в сделку
- labelstringrequired
- Товар, по которому сводят
- sellerstringrequired
- Кто продаёт
- buyerstringrequired
- Кто покупает
- agentstringrequired
- Агент, который поведёт обе стороны
PATCH/api/v1/deals/{id}
Передвинуть сделку по пути или закрыть — одно за раз
- stagestring
- Стадия пути
- closedboolean
- Закрыть сделку
GET/api/v1/companies
Компании воркспейса — от чьего имени пишут агенты
GET/api/v1/companies/{id}
Одна компания с фактами
PATCH/api/v1/companies/{id}
Правка карточки компании
- pitchstring
- Что компания предлагает — ради чего агент пишет
- policystring
- На что она не соглашается и о чём молчит
- factsobject[]
- Факты парами «подпись: значение»
Страницы
Списки листаются курсором. Возьмите next из ответа и пришлите его обратно как есть. Пустой next — дальше ничего нет.
Повторы
Всё, что меняет, требует заголовок Idempotency-Key. Повтор с тем же ключом вернёт прежний ответ и не сделает работу второй раз.