Cabi.Chat API — эндпоинты графа
Эндпоинты графа — та половина Cabi.Chat API, что работает с карточками. Одна схема для всех типов карточек: /graph читает то, что зрителю разрешено видеть, /my управляет вашими собственными. Для чего нужен каждый тип карточки: Cabi.Chat Graph — Типы данных
<type> — тип карточки во множественном числе: projects, articles, posts, boards, workspaces, rubrics, telegram_groups, campaigns, oracles, agendas, links, secrets, api_endpoints. Базовый URL, {ident} и постраничный вывод — по общим соглашениям API.
Чтение графа (для публичных карточек токен не нужен; с токеном вы видите ещё и то, чем с вами поделились)
GET /graph/<type>: публичные карточки типа,limit(по умолчанию 20) иoffset. Для projects, articles, posts, boards, workspaces, rubrics, telegram_groups.GET /graph/<type>/{ident}: страница одной карточки. Текст на всех сохранённых языках (i18n), медиа, рубрики, местоположение и карточки, которые она содержит, упоминает и тегирует. Воркспейсы и рубрики листают своих потомков черезcontained_limitиcontained_offset.GET /graph/resolve/{ident}: что такое хэндл или nonce, в виде{card_type, nonce, handle}. Переименованный хэндл по-прежнему ведёт к своей карточке.GET /graph/relations?card=<nonce>&dir=out|in|both: типизированные связи карточки.GET /graph/public/landing: витрина лендинга, ряд за рядом. linkGET /graph/oracles/{nonce},GET /graph/agendas/{ident}: страница оракула или агенды.GET /graph/telegram_groups/{nonce}/overview: число участников группы, статистика и правила модерации.POST /graph/projects/{ident}/contacts/{nonce}/reveal: показать контакт, который владелец скрыл за кликом. Контакты Ecosystem требуют вошедшего зрителя.
Поиск
POST /search/graphс{query, card_type?, scope?, workspace?, filters?, limit?, page?}: один список по всем типам карточек, ранжированный по релевантности, по ключевым словам и по смыслу.scope: "owned"ищет только по вашим карточкам,workspace(nonce) — внутри одного воркспейса./search/graph/keywordи/search/graph/vectorработают только в одном режиме. Cabi.Chat Search — Ключевые слова, смысл и намеренияGET /search/geo/countries?q=иGET /search/geo/cities?q=&country=: страны и города для гео-фильтров в поиске. Места дляlocationкарточки — рубрики, которые ищутся сfilters: {"kind": "place"}. Cabi.Chat Search — Гео-фильтр и предпочтение, Cabi.Chat Search — рубрики и находимость
Ваши карточки (нужен токен)
GET /my/<type>: ваши карточки.scope=grantedпоказывает карточки, которыми поделились с вами,scope=all— и те, и другие;archived=trueпоказывает архив.POST /my/<type>: создать. НуженIdempotency-Key; в ответ приходит новая карточка с её nonce. Cabi.Chat API — Создание карточек: идемпотентность и лимитыGET,PATCH,DELETE /my/<type>/{nonce}: прочитать, изменить, удалить.PATCHотправляет только изменившиеся поля. Telegram-группы можно только просматривать и добавлять; значение секрета никогда не возвращается.POST /my/archiveс{nonce, archived}: убрать карточку из ваших списков, не удаляя её.GET /graph/my/granted: всё, чем поделились с вами.
Упорядочивание
POST,DELETE,PATCH /my/workspaces/{nonce}/{card}: положить карточку в воркспейс, убрать её оттуда, изменить её порядок (seqnum).POST,DELETE,PATCH /my/rubrics/{nonce}/{card}: то же для рубрики.POST /my/relationsс{source, target, rel}: типизированная связь между двумя карточками, названная рубрикой.DELETE /my/relations/{nonce}удаляет её.GET /graph/my/edges: связи между вашими собственными карточками (вложенность, упоминания, якоря, рубрики, теги).GET,POST /my/projects/{ident}/contacts;PATCH,DELETE /my/contacts/{nonce}: контакты проекта.PUT /my/boards/{nonce}/scene: холст доски.POST /my/media/upload: изображение, возвращается готовым к прикреплению к карточке.
Доступ
POST /my/linksс{read, write, execute, targets: [{card_type, nonce}], link_publicity?, max_openers?, expires_at?, grant_ttl?, claimable_by?}: ссылка доступа к одной или нескольким карточкам. Граф Cabi.Chat — политики карточекGET /linked/{token}иGET /linked/{token}/<card_type>/{nonce}: открыть ссылку; вошедший зритель её забирает. Что даёт ссылка и кому: Cabi.Chat Graph — Общий доступ через ссылки доступа
Запуск
- Кампании:
POST /my/campaigns/{nonce}/startи/stop; пойманные совпадения:POST /my/campaigns/{nonce}/matches/{post}/draftи/outreach; результаты:GET /my/campaigns/{nonce}/performanceи/sends. link - Оракулы:
POST /my/oracles/{nonce}/startи/stop,POST /my/oracles/{nonce}/regenerate-token,GET /my/oracles/{nonce}/performance. Cabi.Chat Graph — Оракулы™ - Агенды:
GET /graph/agendas/{ident}/prompt(нужен write на агенду) — инструкции ровно в том виде, в каком их получает оракул. Cabi.Chat API — приложения
Всё, что вокруг карточек, от профиля до входящих: Cabi.Chat API — эндпоинты аккаунта