Cabi.Chat API — Graph endpoints
Graph endpoints are the half of the Cabi.Chat API that works with cards. One shape for every card type: /graph reads what the viewer may see, /my manages your own. What each card type is for: Cabi.Chat Graph — Data types
<type> is the plural card type: projects, articles, posts, boards, workspaces, rubrics, telegram_groups, campaigns, oracles, agendas, links, secrets, api_endpoints. Base URL, {ident} and paging follow the API conventions.
Read the graph (no token needed for public cards; with a token you also see what is shared with you)
GET /graph/<type>: public cards of a type,limit(default 20) andoffset. For projects, articles, posts, boards, workspaces, rubrics, telegram_groups.GET /graph/<type>/{ident}: one card page. Text in every stored language (i18n), media, rubrics, location, and the cards it contains, mentions and tags. Workspaces and rubrics page their children withcontained_limitandcontained_offset.GET /graph/resolve/{ident}: what a handle or nonce is, as{card_type, nonce, handle}. A renamed handle still resolves to its card.GET /graph/relations?card=<nonce>&dir=out|in|both: typed relations of a card.GET /graph/public/landing: the landing storefront, row by row. linkGET /graph/oracles/{nonce},GET /graph/agendas/{ident}: an oracle's or an agenda's page.GET /graph/telegram_groups/{nonce}/overview: a group's members count, stats and moderation rules.POST /graph/projects/{ident}/contacts/{nonce}/reveal: reveal a contact the owner keeps behind a click. Ecosystem contacts need a signed-in viewer.
Find
POST /search/graphwith{query, card_type?, scope?, workspace?, filters?, limit?, page?}: one relevance-ranked list across card types, by keywords and by meaning.scope: "owned"searches only your cards,workspace(a nonce) searches inside one workspace./search/graph/keywordand/search/graph/vectorrun one mode only. Cabi.Chat Search — Keywords, meaning and intentionsGET /search/geo/countries?q=andGET /search/geo/cities?q=&country=: countries and cities for geo filters in search. Places for a card'slocation: rubrics found withfilters: {"kind": "place"}. Cabi.Chat Search — Geo filter and preference, Cabi.Chat Search — Rubrics and discovery
Your cards (token required)
GET /my/<type>: your cards.scope=grantedlists cards shared with you,scope=allboth;archived=trueshows the archive.POST /my/<type>: create. Needs anIdempotency-Key; answers the new card with its nonce. Cabi.Chat API — Creating cards: idempotency and limitsGET,PATCH,DELETE /my/<type>/{nonce}: read, edit, delete.PATCHsends only the fields that change. Telegram groups are listed and added only; a secret's value is never returned.POST /my/archivewith{nonce, archived}: take a card out of your lists without deleting it.GET /graph/my/granted: everything shared with you.
Arrange
POST,DELETE,PATCH /my/workspaces/{nonce}/{card}: put a card into a workspace, take it out, reorder it (seqnum).POST,DELETE,PATCH /my/rubrics/{nonce}/{card}: the same for a rubric.POST /my/relationswith{source, target, rel}: a typed relation between two cards, named by a rubric.DELETE /my/relations/{nonce}removes it.GET /graph/my/edges: the links between your own cards (containment, mentions, anchors, rubrics, tags).GET,POST /my/projects/{ident}/contacts;PATCH,DELETE /my/contacts/{nonce}: a project's contacts.PUT /my/boards/{nonce}/scene: a board's canvas.POST /my/media/upload: an image, returned ready to attach to a card.
Share
POST /my/linkswith{read, write, execute, targets: [{card_type, nonce}], link_publicity?, max_openers?, expires_at?, grant_ttl?, claimable_by?}: an access link to one or more cards. Cabi.Chat Graph — Card PoliciesGET /linked/{token}andGET /linked/{token}/<card_type>/{nonce}: open a link; a signed-in viewer claims it. What a link gives, and to whom: Cabi.Chat Graph — Sharing with access links
Run
- Campaigns:
POST /my/campaigns/{nonce}/startand/stop; caught matches:POST /my/campaigns/{nonce}/matches/{post}/draftand/outreach; results:GET /my/campaigns/{nonce}/performanceand/sends. link - Oracles:
POST /my/oracles/{nonce}/startand/stop,POST /my/oracles/{nonce}/regenerate-token,GET /my/oracles/{nonce}/performance. Cabi.Chat Graph — Oracles™ - Agendas:
GET /graph/agendas/{ident}/prompt(needs write on the agenda), the instructions exactly as the oracle receives them. Cabi.Chat API — Apps
Everything around the cards, from your profile to the inbox: Cabi.Chat API — Account endpoints