# API: AI Brains, borradores y el Playground

_API · 6 min de lectura · Actualizado 2026-10-22 · https://lanachat.ai/guides/es/api-ai-brains/_

Un **AI Brain** contiene cómo la IA vende para una creadora: sus fases de venta, reglas y configuraciones. Cambias un **borrador**, lo pruebas en el **Playground**, luego lo **publicas**; el brain en vivo solo cambia al publicar. Un brain está vinculado a una creadora y puede ser reutilizado por sus cuentas.

## Endpoints

| Método | Ruta | Descripción | Permiso | Estado |
|---|---|---|---|---|
| GET | `/brains` | Listar brains (`creator_id=`) | `can_engine` | Planned |
| POST | `/brains` | Crear un brain para una creadora, vacío o copiado de otro (`copy_from`) | `can_engine` | Planned |
| GET | `/brains/{id}` | La versión en vivo de un brain | `can_engine` | Planned |
| PATCH | `/brains/{id}` | Renombrar o vincular a otra creadora | `can_engine` | Planned |
| DELETE | `/brains/{id}` | Eliminar un brain que ninguna cuenta use | `can_engine` | Planned |
| GET | `/brains/{id}/draft` | El borrador actual y qué difiere del vivo | `can_engine` | Planned |
| PATCH | `/brains/{id}/draft` | Cambiar el borrador (fases, reglas, configuraciones) | `can_engine` | Planned |
| DELETE | `/brains/{id}/draft` | Desechar el borrador | `can_engine` | Planned |
| POST | `/brains/{id}/publish` | Publicar el borrador; se vuelve vivo en todas las cuentas vinculadas | `can_publish` | Planned |
| GET | `/brains/{id}/versions` | Versiones publicadas, la más nueva primero | `can_engine` | Planned |
| POST | `/brains/{id}/versions/{version}/restore` | Copiar una versión antigua al borrador | `can_engine` | Planned |
| POST | `/playground/{brain_id}/message` | Enviar un mensaje de prueba al borrador y obtener la respuesta de la IA | `can_engine` | Planned |
| DELETE | `/playground/{brain_id}/session` | Reiniciar la conversación de prueba | `can_engine` | Planned |

## El objeto brain

```json
{
  "id": "br_lea_main",
  "name": "Lea · main",
  "creator_id": "cr_lea",
  "version": 12,
  "published_at": "2026-10-04T21:10:00Z",
  "has_draft": true,
  "accounts": ["acc_1001", "acc_1004"],
  "phases": [
    { "key": "warm_up", "name": "Warm up", "enabled": true },
    { "key": "first_offer", "name": "First offer", "enabled": true }
  ]
}
```

| Campo | Tipo | Descripción |
|---|---|---|
| `id` | string | Empieza con `br_` |
| `name` | string | Su nombre en la Console |
| `creator_id` | string | La creadora a la que está vinculado |
| `version` | number | La versión en vivo; aumenta en uno con cada publicación |
| `published_at` | string o null | Cuándo se publicó la versión en vivo, ISO 8601 UTC |
| `has_draft` | boolean | `true` cuando un borrador difiere de la versión en vivo |
| `accounts` | array de strings | Cuentas de Telegram que responden con este brain |
| `phases` | array | Fases de venta: `key`, `name` y si cada una está `enabled` |

## Brains

### Listar brains

`GET /brains` · `can_engine`

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `creator_id` | string | No | Solo los brains de esta creadora |
| `limit`, `cursor` | number, string | No | [Paginación](https://lanachat.ai/guides/es/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/brains?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

```json
{
  "data": [
    { "id": "br_lea_main", "name": "Lea · main", "creator_id": "cr_lea", "version": 12, "published_at": "2026-10-04T21:10:00Z", "has_draft": true, "accounts": ["acc_1001", "acc_1004"], "phases": [ { "key": "warm_up", "name": "Warm up", "enabled": true }, { "key": "first_offer", "name": "First offer", "enabled": true } ] }
  ],
  "next_cursor": null
}
```

### Crear un brain

`POST /brains` · `can_engine`

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `creator_id` | string | Sí | La creadora para quien es |
| `name` | string | No | Su nombre en la Console |
| `copy_from` | string | No | Id de un brain para copiar; sin él el brain empieza vacío |

```bash
curl -X POST https://api.lanachat.ai/v1/brains \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Lea · TikTok test", "copy_from": "br_lea_main"}'
```

La respuesta es el brain nuevo (`201`). Un `copy_from` que no exista en este workspace responde `404`.

### Obtener un brain

`GET /brains/{id}` · `can_engine`

```bash
curl https://api.lanachat.ai/v1/brains/br_lea_main \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La respuesta es la versión en vivo, como el objeto brain. El borrador se lee con `GET /brains/{id}/draft`.

### Renombrar o vincular un brain

`PATCH /brains/{id}` · `can_engine`

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `name` | string | No | Nuevo nombre |
| `creator_id` | string | No | Vincularlo a otra creadora |

```bash
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Lea · main FR"}'
```

La respuesta es el brain actualizado.

### Eliminar un brain

`DELETE /brains/{id}` · `can_engine`

```bash
curl -X DELETE https://api.lanachat.ai/v1/brains/br_lea_old \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Un brain que una cuenta aún usa es rechazado (`409`): vincula esas cuentas a otro brain primero.

## Borradores y publicación

### Leer el borrador

`GET /brains/{id}/draft` · `can_engine`

```bash
curl https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La respuesta es el borrador actual (fases, reglas y configuraciones) y qué difiere de la versión en vivo.

### Cambiar el borrador

`PATCH /brains/{id}/draft` · `can_engine`

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `phases` | array | No | Fases de venta a cambiar |
| `rules` | array | No | Reglas a cambiar |
| `settings` | object | No | Configuraciones a cambiar, por ejemplo `first_offer_after_messages` o `max_discount_percent` |

```bash
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"settings": {"first_offer_after_messages": 6, "max_discount_percent": 20}}'
```

Solo cambian los campos que envíes. El brain en vivo no cambia hasta que publiques.

### Desechar el borrador

`DELETE /brains/{id}/draft` · `can_engine`

```bash
curl -X DELETE https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

El borrador se elimina; la versión en vivo queda igual y `has_draft` pasa a `false`.

### Publicar el borrador

`POST /brains/{id}/publish` · `can_publish`

```bash
curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/publish \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

```json
{ "id": "br_lea_main", "version": 13, "published_at": "2026-10-06T14:20:03Z", "has_draft": false }
```

El borrador se vuelve vivo en todas las cuentas vinculadas. Publicar sin borrador responde `409`. Los perfiles avanzados de IA necesitan permisos propios de propietario, como en la Console. Un [webhook](https://lanachat.ai/guides/es/api-webhooks/) `brain.published` avisa a tu servidor.

## Versiones

### Listar versiones

`GET /brains/{id}/versions` · `can_engine`

```bash
curl https://api.lanachat.ai/v1/brains/br_lea_main/versions \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La respuesta lista las versiones publicadas, la más nueva primero, [paginadas](https://lanachat.ai/guides/es/api-overview/).

### Restaurar una versión

`POST /brains/{id}/versions/{version}/restore` · `can_engine`

```bash
curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/versions/11/restore \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

La versión antigua se copia al borrador. Nada cambia para los fans hasta que publiques. Una versión desconocida responde `404`.

## Playground

El Playground habla con el **borrador**, nunca con un fan. No se envía nada a Telegram y no se vende nada.

### Enviar un mensaje de prueba

`POST /playground/{brain_id}/message` · `can_engine`

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `text` | string | Sí | Lo que escribe el fan de prueba |
| `fan` | object | No | El fan de prueba: `language` (por ejemplo `en`) y `is_new` |

```bash
curl -X POST https://api.lanachat.ai/v1/playground/br_lea_main/message \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"text": "hey, are you real?", "fan": {"language": "en", "is_new": true}}'
```

```json
{
  "reply": { "text": "Haha very real, just slow at typing 🙈 where are you from?", "media": [] },
  "phase": "warm_up",
  "explain": "Phrase bank answer for \"Are you a bot?\", then a question to keep the fan talking."
}
```

- `reply` es lo que la IA enviaría: texto y medios.
- `phase` es la fase de venta en la que está la IA.
- `explain` explica en inglés simple por qué respondió así.

Cada llamada continúa la misma conversación de prueba.

### Reiniciar la conversación de prueba

`DELETE /playground/{brain_id}/session` · `can_engine`

```bash
curl -X DELETE https://api.lanachat.ai/v1/playground/br_lea_main/session \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

El siguiente mensaje de prueba inicia una conversación nueva, como un fan nuevo.

## Artículos relacionados

- [API de LanaChat: inicio rápido, autenticación y errores](https://lanachat.ai/guides/es/api-overview/)
- [Qué es un AI Brain](https://lanachat.ai/guides/es/what-is-an-ai-brain/)
- [Playground: prueba una conversación de forma segura](https://lanachat.ai/guides/es/playground/)
