Pipeline de API: crear y editar la página de tu proyecto
Índice: Pipelines de API — índice
Objetivo: crear la página de tu proyecto y mantenerla al día: texto, lugar, fotos, contactos, traducciones y quién puede verla.
Pasos
- Crear.
POST /v0/my/projects
Idempotency-Key: proj-bikes-1
{"title": "Bike repair in Lisbon", "content": "What I offer, prices, hours…",
"language": "en", "handle": "example-bikes",
"rubrics": ["<rubric nonce>"], "location": "<place nonce>",
"translate_mode": "auto"}
→ {"nonce": "470000000000000001", "card_type": "project", "visibility": "Private", "handle": "example-bikes", …}
titlees obligatorio;languagepor defecto esen(en,ru,es).handle: a-z, 0-9,_ . -, hasta 64 caracteres, único; la página queda entonces enhttps://cabi.chat/@example-bikes.rubrics: nonces de rúbricas temáticas;location: el nonce de un lugar (ciudad, región o país). Cómo encontrarlos: Pipeline de API: buscar en el grafo, Pipeline de API: encontrar proyectos por lugar y en el mapa.translate_mode:auto(traducción automática) ollm(a través de tu agenda de traducción; su coste aparece en tu gasto de IA: Pipeline de API: ver tu gasto en IA);translate_langslimita los idiomas de destino. Las traducciones llegan un poco después.- Un proyecto nuevo siempre es Private.
- Fotos. Súbelas y luego adjúntalas:
POST /v0/my/media/upload (multipart/form-data, up to 10 images, 10 MB each)
→ {"files": [{"hash": "<sha256>", "format": "webp", "width": 1200, "height": 800, …}]}
PATCH /v0/my/projects/470000000000000001
{"avatar": "media:<sha256>.webp", "media_add": ["media:<sha256>.webp"]}
media sustituye toda la galería (ordenada, hasta 20; [] la vacía); media_add añade al final; avatar fija la imagen redonda. No pongas imágenes en content.
- Contactos.
POST /v0/my/projects/470000000000000001/contacts
Idempotency-Key: proj-bikes-contact-1
{"kind": "Telegram", "value": "@example", "is_primary": true,
"publicity": "Everyone", "requires_reveal": true}
→ {"nonce": "470000000000000011", "kind": "Telegram", "value": "@example", …}
kind: Phone, Email, Website, Telegram, WhatsApp, Instagram, Facebook, TikTok, LinkedIn, Discord, X, YouTube, Other.publicity:Ecosystem(por defecto, solo quienes han iniciado sesión) oEveryone.requires_reveal: trueoculta el valor hasta que un visitante lo pide: Pipeline de API: ver el contacto de un proyecto- Un solo contacto principal: marcar
is_primarylo quita de los demás. - Listar:
GET /v0/my/projects/{nonce}/contacts; editar:PATCH /v0/my/contacts/{nonce}; quitar:DELETE /v0/my/contacts/{nonce}.
Editar texto, lugar, rúbricas:
PATCH /v0/my/projects/{nonce}con cualquiera detitle,content,language(el idioma en que escribes),handle,rubrics,location,canonical_lang(el idioma original),translate_mode+translate_langs. Los campos que no envíes se quedan como están.Publicar.
PATCH /v0/my/projects/470000000000000001
{"visibility": "Public", "publicity": "Everyone",
"permissions": {"read": true, "write": false, "execute": false}}
visibility:Public(aparece en la portada, la búsqueda y el mapa),Unlisted(solo las personas con las que la compartes mediante un enlace o un permiso concedido) oPrivate(solo tú).publicity(obligatorio con Public):Everyone(cualquiera, también sin sesión) oEcosystem(solo quienes han iniciado sesión).permissions(obligatorio con Public o Unlisted): lo que puede hacer el público —read;writesolo en Unlisted; nuncaexecuteen un proyecto público.
- Compruébalo:
GET /v0/graph/projects/{nonce | @handle}muestra la página como la ven los demás;GET /v0/my/projects/{nonce}, como la ve su propietario.
Detrás
- Bajar la visibilidad de un proyecto también baja la de las tarjetas ancladas a él: Private las hace Private, Unlisted hace Unlisted las públicas.
- Historial de versiones, si lo activas: Pipeline de API: historial de versiones de una tarjeta. Archivar o eliminar: Pipeline de API: archivar, restaurar o eliminar tus tarjetas.
Reglas
- 400
title is required;handle may contain only a-z, 0-9, _ . -;handle is too long (max 64). - 400
Public visibility requires explicit publicity,Public/Unlisted visibility requires explicit permissions,Public cards cannot grant write,Public projects cannot grant execute; share x by grants or links,Private cards carry no permissions. - 400
media: at most 20 items,media_add: the gallery would have N photos, at most 20; …,avatar must be a media:<sha256>.<ext> ref …; subida:no image files in upload,at most 10 files per upload. - 400
unknown contact kind: …,publicity must be Everyone or Ecosystem, got …. - 400 sin
Idempotency-Keyen las dos creaciones.
Superficie de la API
| Endpoint | Para qué | FE | IA / oráculo |
|---|---|---|---|
POST /v0/my/projects |
Crear (Private) | sí | sí |
PATCH /v0/my/projects/{nonce} |
Editar texto, lugar, fotos, visibilidad | sí | sí |
GET /v0/my/projects, /v0/my/projects/{nonce} |
Tus proyectos | sí | sí |
POST /v0/my/media/upload |
Subir imágenes | sí | sí |
POST / GET /v0/my/projects/{ident}/contacts |
Añadir / listar contactos | sí | sí |
PATCH / DELETE /v0/my/contacts/{nonce} |
Editar / quitar un contacto | sí | sí |
GET /v0/graph/projects/{ident} |
La página pública | sí | sí |