Pipeline de API: buscar en el grafo
Índice: Pipelines de API — índice
Objetivo: encontrar tarjetas por palabras clave o por significado, acotando por tipo de tarjeta, rúbrica, país, lugar y distancia; o ir directamente a una tarjeta por su enlace, @handle o nonce.
No hace falta token para los resultados públicos; con un token también obtienes lo visible para quienes han iniciado sesión y lo que se ha compartido contigo.
Pasos
- Buscar.
POST /v0/search/graph
{"query": "bike repair", "card_type": "project", "page": 1, "limit": 20,
"filters": {"exclude_terms": ["casino"]}}
→ {"hits": [{"card_type": "project", "nonce": "470000000000000001", "title": "…", "snippet": "…",
"rubrics": […], "location": {"nonce": "…", "title": "Lisbon", "geo": {"lat": 38.72, "lon": -9.14}}, …}],
"total_hits": 101, "page": 1, "total_pages": 6}
/v0/search/graphcombina palabras clave y significado (el motor por defecto);/v0/search/graph/keywordbusca solo por palabras;/v0/search/graph/vectorsolo por significado. Mismo cuerpo, misma respuesta.queryse recorta a 200 caracteres; puede ir vacío cuando un filtro ocard_typeacota la búsqueda.pageempieza en 1;limit1–100 (por defecto 20).card_type:project,article,post,telegram_group,agenda,board,doc,sheet,rubric,workspace, …card_types: varios tipos a la vez, basta con que coincida uno, p. ej.["project", "article"]; se puede combinar concard_type.- Los resultados que son rúbricas llevan
can_marksi has iniciado sesión: si puedes etiquetar tarjetas con esa rúbrica: Pipeline de API: etiquetar tarjetas con rúbricas, sección B3.
- Acotar con
filters.
| Clave | Valor | Efecto |
|---|---|---|
rubrics |
[["<a>", "<b>"], ["<c>"]] |
cualquiera dentro de un grupo, todos los grupos deben coincidir |
rubrics_not |
["<rubric>"] |
quita las tarjetas con estas rúbricas |
locations |
["<place nonce>"] |
solo tarjetas en ese lugar o en cualquier punto dentro de él |
preference_countries |
["<country place nonce>"] |
pone primero esos países, no oculta nada |
preference_city + radius_km |
{"nonce": "<place>", "lat": 41.26, "lon": 69.22}, 50 |
pone primero lo más cercano (radio por defecto 50 km), no oculta nada |
exclude_terms |
["casino", "crypto"] |
oculta las tarjetas que contienen alguna de estas palabras |
kind |
"tag" o "place" |
con card_type: "rubric": solo temas o solo lugares |
Nonces de rúbricas y lugares: busca {"query": "dentist", "card_type": "rubric", "filters": {"kind": "tag"}}; lugares por nombre de ciudad o país: Pipeline de API: enviar tus grupos de Telegram, buscar grupos por palabra clave, lugar o rúbrica, evaluarlos y conectarlos a una campaña (parte B).
Buscar dentro de un espacio de trabajo: añade
"workspace": "<workspace nonce>".Ir a una tarjeta por referencia.
GET /v0/graph/resolve/@example-handle
→ {"card_type": "project", "nonce": "470000000000000001", "handle": "example-handle", "title": "…", "kind": null}
Acepta un nonce, @handle o un handle sin @; un handle renombrado se sigue resolviendo. Después ábrela con GET /v0/graph/{type}s/{nonce}.
- Elegir entre tus propias tarjetas (hace falta token):
GET /v0/accessible/cards?type=project&type=workspace&q=trip&limit=30
→ {"items": [{"nonce": "…", "card_type": "workspace", "title": "Trip ideas", "source": "owned",
"permissions": {"read": true, "write": true, "execute": true}, "snippet": "…", …}],
"next_cursor": "…"}
Las tarjetas que son tuyas más las que se han compartido contigo, con tus derechos sobre cada una. q coincide con los títulos en todos los idiomas y con los handles; un nonce, @handle o enlace https://cabi.chat/… en q pone esa tarjeta primero. type es obligatorio (repítelo o sepáralo por comas, hasta 20); limit hasta 100; pagina con cursor=<next_cursor> hasta que sea null.
Reglas
- 400
unknown filter: <key>,malformed filter: <key>,filters must be an object,workspace must be a nonce,workspace not found. resolve: 404 si es desconocida o no la puedes ver.accessible/cards: 400type is required,bad card type: …,bad cursor; 401 sin token.
Superficie de la API
| Endpoint | Para qué | FE | IA / oráculo |
|---|---|---|---|
POST /v0/search/graph |
Palabras clave y significado combinados | sí (por defecto) | sí |
POST /v0/search/graph/keyword |
Solo palabras clave | sí | sí |
POST /v0/search/graph/vector |
Solo significado | sí | sí |
GET /v0/graph/resolve/{ident} |
Tarjeta por nonce o handle | sí (enlaces pegados) | sí |
GET /v0/accessible/cards |
Tarjetas tuyas y compartidas, por título | sí (selectores) | sí |