API REST de AI Studio
API del panel de AI Studio: activos, versiones, colecciones, vínculos, comparticiones, uso y reacciones, marketplace y cambios en tiempo real.
Actualizado el . 12 min de lectura
Incluido en todos los planes. Ver precios
AI Studio ofrece su funcionalidad a través de la API del panel, la
que usa la propia interfaz de UTILIA OS, que se llama con la sesión de
un usuario. No forma parte del SDK público ni de la API externa
(/api/external/v1): si desarrollas fuera de UTILIA OS, usa la
herramienta MCP ai_studio (ver Siguiente paso).
Dirección base, autenticación y plan
Todos los endpoints cuelgan de /api/ai-studio y exigen la cabecera
Authorization: Bearer <JWT> de una sesión iniciada. El plan de tu
organización tiene que incluir el aplicativo AI Studio; si no, la
respuesta es 403 MODULE_NOT_ENABLED. Sin sesión o con la sesión
caducada, la respuesta es 401; sin el permiso o sin acceso al activo
concreto, 403.
Esta API no ejecuta activos
AI Studio no ejecuta activos contra el modelo desde esta API: no
existen POST /ai-studio/assets/:id/execute, GET /ai-studio/executions
ni POST /ai-studio/executions/:id/feedback, que versiones anteriores
de esta página documentaban. El uso real y las reacciones se registran
con POST /ai-studio/assets/:id/use, /thumbs-up y /thumbs-down, y
los cambios del catálogo llegan en tiempo real por GET /ai-studio/events
(SSE). Si tu integración llamaba a los endpoints antiguos, pásate a
estos.
Permisos
Cada operación comprueba un permiso de AI Studio y, si actúa sobre un activo concreto, también que el usuario tenga acceso a ese activo (lectura, edición o administración).
- AI_STUDIO_VIEWpermiso
- Listar y ver activos, registrar uso y reacciones, abrir el canal SSE.
- AI_STUDIO_CREATEpermiso
- Crear y duplicar activos.
- AI_STUDIO_EDITpermiso
- Modificar activos y crear versiones.
- AI_STUDIO_DELETEpermiso
- Eliminar activos.
- AI_STUDIO_PUBLISHpermiso
- Publicar la versión activa de un activo.
- AI_STUDIO_VERIFYpermiso
- Marcar un activo como verificado. Por defecto, solo el Super Administrador.
- AI_STUDIO_SHAREpermiso
- Compartir un activo con personas o grupos concretos.
Resumen de endpoints
| Método | Ruta | Propósito |
|---|---|---|
POST | /ai-studio/assets | Crear un activo |
GET | /ai-studio/assets | Listar activos con filtros |
GET | /ai-studio/assets/by-slug/:slug | Resolver un activo por slug actual o antiguo |
GET | /ai-studio/assets/:id | Obtener un activo |
PATCH | /ai-studio/assets/:id | Modificar un activo (crea versión si procede) |
DELETE | /ai-studio/assets/:id | Eliminar un activo |
POST | /ai-studio/assets/:id/publish | Publicar la versión activa |
POST | /ai-studio/assets/:id/verify | Marcar como verificado |
POST | /ai-studio/assets/:id/duplicate | Duplicar un activo |
POST | /ai-studio/assets/:id/use | Registrar un uso del activo |
POST | /ai-studio/assets/:id/thumbs-up | Reaccionar positivamente |
POST | /ai-studio/assets/:id/thumbs-down | Reaccionar negativamente |
GET | /ai-studio/events | Cambios del catálogo en tiempo real (SSE) |
GET | /ai-studio/assets/:id/versions | Listar el histórico de versiones |
GET | /ai-studio/assets/:id/versions/:version | Obtener una versión concreta |
POST | /ai-studio/assets/:id/versions | Crear una versión explícita |
POST | /ai-studio/assets/:id/versions/:version/rollback | Restaurar una versión anterior |
POST | /ai-studio/assets/:id/versions/:version/files | Subir un adjunto |
GET | /ai-studio/assets/:id/versions/:version/files | Listar adjuntos |
GET | /ai-studio/assets/:id/versions/:version/files/:fileId/download | Dirección firmada temporal de descarga |
DELETE | /ai-studio/assets/:id/versions/:version/files/:fileId | Eliminar un adjunto |
GET | /ai-studio/assets/:id/export | Descargar el activo como ZIP |
POST | /ai-studio/assets/import | Importar un ZIP |
GET | /ai-studio/collections | Listar colecciones |
POST | /ai-studio/collections | Crear colección |
GET | /ai-studio/collections/:id | Detalle de colección |
PATCH | /ai-studio/collections/:id | Modificar colección |
DELETE | /ai-studio/collections/:id | Eliminar colección |
POST | /ai-studio/collections/:id/assets | Añadir activo a colección |
DELETE | /ai-studio/collections/:id/assets/:assetId | Quitar activo |
GET | /ai-studio/collections/:id/assets | Activos de una colección |
POST | /ai-studio/assets/:id/links | Vincular a entidad |
GET | /ai-studio/assets/:id/links | Listar vínculos del activo |
DELETE | /ai-studio/assets/:id/links/:linkId | Eliminar un vínculo |
GET | /ai-studio/links/by-entity | Activos vinculados a una entidad |
POST | /ai-studio/assets/:id/shares | Compartir con personas o grupos concretos |
GET | /ai-studio/assets/:id/shares | Listar comparticiones |
DELETE | /ai-studio/assets/:id/shares/:shareId | Revocar compartición |
POST | /ai-studio/marketplace/entries | Enviar un activo propio al marketplace |
GET | /ai-studio/marketplace/entries | Listar el catálogo del marketplace |
GET | /ai-studio/marketplace/entries/:id | Detalle de una entrada |
PATCH | /ai-studio/marketplace/entries/:id | Cambiar categoría o etiquetas de una entrada propia |
DELETE | /ai-studio/marketplace/entries/:id | Retirar una entrada propia |
POST | /ai-studio/marketplace/entries/:id/report | Denunciar una entrada |
POST | /ai-studio/marketplace/entries/:id/install | Instalar una entrada en tu biblioteca |
GET | /ai-studio/marketplace/installs | Tus instalaciones |
GET | /ai-studio/marketplace/entries/:id/installs | Instalaciones de una entrada en tu organización |
POST | /ai-studio/marketplace/entries/:id/reviews | Crear o actualizar tu reseña |
GET | /ai-studio/marketplace/entries/:id/reviews | Reseñas de una entrada |
PATCH | /ai-studio/marketplace/reviews/:reviewId | Modificar tu reseña |
DELETE | /ai-studio/marketplace/reviews/:reviewId | Borrar tu reseña |
POST | /ai-studio/marketplace/reviews/:reviewId/helpful | Marcar una reseña como útil |
DELETE | /ai-studio/marketplace/reviews/:reviewId/helpful | Quitar la marca de útil |
GET | /ai-studio/marketplace/events | Cambios del marketplace en tiempo real (SSE) |
Endpoints del catálogo
POST /ai-studio/assets
/api/ai-studio/assetsCrea un nuevo activo y genera automáticamente su primera versión. Requiere el permiso AI_STUDIO_CREATE.
Cabeceras
- Authorizationstringobligatorio
- Bearer <JWT>
- Content-Typestringobligatorio
- application/json
Cuerpo de la petición
- type'PROMPT' | 'SKILL' | 'AGENT' | 'COMMAND' | 'PLUGIN'obligatorio
- Tipo del activo.
- namestringobligatorio
- Nombre visible. Máximo 255 caracteres.
- descriptionstring
- Descripción que usa el asistente para decidir cuándo aplicar el activo.
- bodyMarkdownstring
- Cuerpo Markdown del activo.
- frontmatterobject
- Frontmatter estructurado (YAML interpretado a JSON).
- iconNamestring
- Nombre del icono (de la familia Lucide). Máximo 64 caracteres.
- colorstring
- Color (HSL o token). Máximo 32 caracteres.
- visibility'PRIVATE' | 'DEPARTMENT' | 'WORKSPACE' | 'ORGANIZATION' | 'MARKETPLACE'
- Visibilidad base. Por defecto PRIVATE.
- departmentsstring[]
- Identificadores de departamentos con acceso si visibility es DEPARTMENT.
- collectionIdsstring[]
- Colecciones donde clasificarlo al crearlo.
- tagsstring[]
- Etiquetas en minúsculas.
- versionstring
- Versión semántica inicial. Por defecto 1.0.0.
Ejemplo de petición
curl -X POST "https://os.utilia.ai/api/ai-studio/assets" \
-H "Authorization: Bearer <JWT>" \
-H "Content-Type: application/json" \
-d '{
"type": "PROMPT",
"name": "Redactor de respuesta comercial",
"description": "Redacta una respuesta comercial empática para una oportunidad del CRM a partir de su contexto.",
"bodyMarkdown": "Eres un responsable comercial experto.\n\nEl cliente es {{cliente}}...",
"iconName": "sparkles",
"visibility": "DEPARTMENT",
"departments": ["cl8ab9cd0000exampledept01"],
"tags": ["crm", "ventas", "castellano"]
}'Respuesta correcta (201)
{
"id": "cl9z1z0000exampleasset01",
"type": "PROMPT",
"slug": "redactor-de-respuesta-comercial",
"name": "Redactor de respuesta comercial",
"status": "DRAFT",
"visibility": "DEPARTMENT",
"currentVersionId": "cl9z1z0000exampleversion01",
"currentVersion": {
"version": "1.0.0",
"publishedAt": null
},
"createdAt": "2026-06-13T08:00:00.000Z"
}GET /ai-studio/assets
/api/ai-studio/assetsLista los activos accesibles por el usuario, con filtros opcionales. Requiere el permiso AI_STUDIO_VIEW.
Parámetros de consulta
- typeAiAssetType
- Filtra por tipo.
- status'DRAFT' | 'PUBLISHED' | 'ARCHIVED'
- Filtra por estado.
- visibilityAiAssetVisibility
- Filtra por visibilidad base.
- collectionIdstring (CUID)
- Solo activos de esta colección.
- entityType / entityIdstring
- Solo activos vinculados a esa entidad.
- authorIdstring (CUID)
- Solo activos de esta persona.
- searchstring
- Búsqueda de texto libre.
- orderBy'popular' | 'recent' | 'name'
- Orden. Por defecto, popular.
- limitnumber
- Resultados por página (de 1 a 100, por defecto 20).
- offsetnumber
- Cuántos resultados saltar, para paginar (por defecto 0).
GET /ai-studio/assets/by-slug/:slug
/api/ai-studio/assets/by-slug/:slugResuelve un activo por su slug actual o por un slug del histórico. Requiere el permiso AI_STUDIO_VIEW.
Si el slug es el actual, devuelve el detalle del activo. Si es uno antiguo, responde 301 con la cabecera Location apuntando al actual, para que los enlaces viejos sigan funcionando. Si no hay coincidencia, responde 404.
Métricas de uso y reacciones
Estos tres endpoints mantienen los contadores del activo (usageCount, thumbsUp, thumbsDown) y guardan un registro por usuario. Solo exigen AI_STUDIO_VIEW y acceso de lectura al activo. Después emiten un evento que el canal SSE envía al resto de personas de tu organización.
POST /ai-studio/assets/:id/use
/api/ai-studio/assets/:id/useRegistra un uso real del activo (por ejemplo, copia al portapapeles, descarga del ZIP o uso desde otro módulo) e incrementa usageCount.
Cuerpo de la petición (opcional)
- entityTypestring
- Tipo de entidad del ecosistema desde la que se usó el activo (por ejemplo, una oportunidad o un ticket).
- entityIdstring
- Identificador de esa entidad. Permite atribuir el uso a su contexto de origen.
Ejemplo de petición
curl -X POST "https://os.utilia.ai/api/ai-studio/assets/cl9z1z0000exampleasset01/use" \
-H "Authorization: Bearer <JWT>" \
-H "Content-Type: application/json" \
-d '{ "entityType": "OPPORTUNITY", "entityId": "cl9opp0000exampleopp01" }'Respuesta correcta (201)
{
"id": "cl9z1z0000exampleasset01",
"usageCount": 42
}POST /ai-studio/assets/:id/thumbs-up
/api/ai-studio/assets/:id/thumbs-upRegistra una reacción positiva del usuario al activo. La operación es idempotente: un mismo usuario solo cuenta una vez.
Cada usuario cuenta una sola vez. Si ya había votado a favor, el contador no sube. Si tenía una reacción negativa, se retira (baja thumbsDown) y se registra la positiva. No lleva cuerpo.
Ejemplo de petición
curl -X POST "https://os.utilia.ai/api/ai-studio/assets/cl9z1z0000exampleasset01/thumbs-up" \
-H "Authorization: Bearer <JWT>"Respuesta exitosa (201)
{
"id": "cl9z1z0000exampleasset01",
"thumbsUp": 18,
"thumbsDown": 1
}POST /ai-studio/assets/:id/thumbs-down
/api/ai-studio/assets/:id/thumbs-downRegistra una reacción negativa del usuario al activo. Simétrico e idempotente respecto a thumbs-up.
Funciona igual que thumbs-up, al revés. Si el usuario tenía una reacción positiva, se retira (baja thumbsUp) y se registra la negativa. Si ya había votado en contra, el contador no cambia. No lleva cuerpo.
Respuesta exitosa (201)
{
"id": "cl9z1z0000exampleasset01",
"thumbsUp": 17,
"thumbsDown": 2
}Cambios del catálogo en tiempo real
GET /ai-studio/events
/api/ai-studio/eventsStream de eventos en tiempo real (Server-Sent Events) con los cambios del catálogo del AI Studio: creación, actualización, publicación, archivado, versiones, vínculos, verificación y compartición.
Con este endpoint la galería de AI Studio se actualiza sola cuando otra persona de tu organización cambia el catálogo. Exige AI_STUDIO_VIEW, que se comprueba al abrir la conexión.
Como EventSource no permite cabeceras propias, el canal se autentica con un token SSE de corta duración en el parámetro token: GET /api/ai-studio/events?token=<sseJwt>. Pide antes ese token con POST /api/auth/sse-token, usando tu JWT de sesión. El token de sesión normal no se acepta en la dirección.
Características
- Aislamiento por organizacióncomportamiento
- Solo llegan eventos de la organización del usuario. No hay excepción por rol: un Super Administrador tampoco recibe el catálogo de otras organizaciones.
- Señal de vida20 s
- Evento heartbeat periódico para mantener viva la conexión a través de proxies.
- Conexiones simultáneasmáximo 5 por usuario
- Al superarlo, el endpoint responde 429.
Eventos emitidos
| Evento | Cuándo se emite |
|---|---|
connected | Al abrir la conexión. Contenido: { userId, at }. |
heartbeat | Cada 20 segundos. Contenido: { at }. |
asset-created | Se crea un activo. |
asset-updated | Se modifica un activo. |
asset-published | Se publica un activo. |
asset-archived | Se archiva un activo. |
asset-unarchived | Se desarchiva un activo. |
asset-deleted | Se elimina un activo. |
asset-version-created | Se crea una nueva versión. |
asset-linked | Se vincula un activo a una entidad. |
asset-verified | Se marca un activo como verificado. |
asset-shared | Se comparte con personas o grupos concretos. |
Cada evento del catálogo incluye al menos assetId, organizationId y un campo type con el nombre interno del evento (por ejemplo, ai-asset.published).
Ejemplo de consumo en JavaScript
// 1. Obtener el token SSE efímero con el JWT de sesión.
const tokenResponse = await fetch('https://os.utilia.ai/api/auth/sse-token', {
method: 'POST',
headers: { Authorization: `Bearer ${jwt}` },
});
const { token } = await tokenResponse.json();
// 2. Abrir el stream con ese token como query param.
const source = new EventSource(
`https://os.utilia.ai/api/ai-studio/events?token=${token}`,
);
source.addEventListener('connected', (event) => {
console.log('Conectado:', JSON.parse(event.data));
});
source.addEventListener('asset-published', (event) => {
const payload = JSON.parse(event.data);
console.log('Activo publicado:', payload.assetId);
});
source.onerror = () => {
// El navegador reintenta la conexión automáticamente.
console.warn('Conexión SSE interrumpida; reintentando...');
};Versiones y adjuntos
Las versiones cuelgan del activo. Crear una versión o restaurar una anterior queda en el historial, y cada versión puede tener archivos adjuntos.
| Método | Ruta | Propósito |
|---|---|---|
GET | /ai-studio/assets/:id/versions | Listar el histórico de versiones |
GET | /ai-studio/assets/:id/versions/:version | Obtener una versión concreta |
POST | /ai-studio/assets/:id/versions | Crear una versión explícita |
POST | /ai-studio/assets/:id/versions/:version/rollback | Restaurar una versión anterior |
POST | /ai-studio/assets/:id/versions/:version/files | Subir un adjunto (multipart/form-data) |
GET | /ai-studio/assets/:id/versions/:version/files | Listar adjuntos |
GET | /ai-studio/assets/:id/versions/:version/files/:fileId/download | Dirección firmada temporal de descarga |
DELETE | /ai-studio/assets/:id/versions/:version/files/:fileId | Eliminar un adjunto |
Importar y exportar
POST /ai-studio/assets/import
/api/ai-studio/assets/importImporta un ZIP con el formato oficial de Anthropic y crea el activo con su primera versión y sus adjuntos.
Content-Type multipart/form-data con el campo file.
curl -X POST "https://os.utilia.ai/api/ai-studio/assets/import" \
-H "Authorization: Bearer <JWT>" \
-F "file=@mi-skill.zip"Devuelve el activo creado, con la primera versión ya rellena y los adjuntos subidos.
GET /ai-studio/assets/:id/export
/api/ai-studio/assets/:id/exportDescarga el activo como ZIP con la estructura oficial de Anthropic.
- Cabecera
Content-Type: application/zip. - Cabecera
Content-Disposition: attachment; filename="<slug>.zip". - Cuerpo: el archivo.
Marketplace
El marketplace es un catálogo de activos de IA compartido entre las organizaciones de UTILIA OS: tu equipo puede enviar a él sus propios activos publicados e instalar copias de los que han compartido otras empresas. Lo que se envía no aparece en el catálogo hasta que el equipo de UTILIA OS lo revisa y lo aprueba. En la interfaz está en la pestaña Marketplace, necesitas entrar con tu cuenta de AI Studio.
Requisitos
Además del aplicativo AI Studio en el plan, la organización tiene
que tener activada la función Marketplace del AI Studio, en
Ajustes › Organización, necesitas entrar con tu cuenta › Funciones
opcionales. Si está desactivada, todos los endpoints del marketplace
responden 403.
- AI_STUDIO_MARKETPLACE_VIEWpermiso
- Ver el catálogo, las reseñas y tus instalaciones, denunciar una entrada, marcar reseñas como útiles y abrir el canal SSE.
- AI_STUDIO_MARKETPLACE_INSTALLpermiso
- Instalar una entrada en tu biblioteca.
- AI_STUDIO_MARKETPLACE_SUBMITpermiso
- Enviar activos propios al marketplace, y cambiar o retirar tus entradas.
- AI_STUDIO_MARKETPLACE_REVIEWpermiso
- Crear, modificar y borrar tus reseñas.
Enviar un activo
/api/ai-studio/marketplace/entriesEnvía un activo propio al marketplace. La entrada nace en estado PENDING, a la espera de revisión. Permiso: AI_STUDIO_MARKETPLACE_SUBMIT. Límite: 10 envíos al día por persona.
- assetIdstringobligatorio
- Identificador del activo. Tiene que ser tuyo y estar en estado PUBLISHED.
- categoryenumobligatorio
- PRODUCTIVITY, SALES_CRM, DEVELOPMENT, FINANCE, MARKETING, CUSTOMER_SUPPORT, ANALYTICS, AUTOMATION, DOCUMENTATION, COMMUNICATION u OTHER.
- tagsstring[]
- Hasta 15 etiquetas de 48 caracteres como máximo.
- pricingenum
- Solo se admite FREE, que es el valor por defecto. PREMIUM responde 400.
- acceptPolicybooleanobligatorio
- Aceptación de la política de publicación. Tiene que ser true.
Estados de una entrada del marketplace
Pendiente
PENDING
Enviada, a la espera de revisión.Se llega desde Pendiente cuando: El equipo de UTILIA OS empieza a revisarla
En revisión
UNDER_REVIEW
Se llega desde En revisión cuando: Se rechaza
Rechazada
REJECTED
Se llega desde En revisión cuando: Se aprueba
Aprobada
APPROVED
Visible en el catálogo para otras empresas.Se llega desde Aprobada cuando: La retiras con DELETE
Archivada
ARCHIVED
También puedes retirarla antes de que se apruebe.
Otras transiciones
- Pendiente pasa a Aprobada: También se puede aprobar o rechazar sin pasar por En revisión.
- Rechazada pasa a Pendiente: Vuelves a enviar el activo.
- Archivada pasa a Pendiente: Vuelves a enviar el activo.
Mientras no está archivada, puedes cambiar su categoría o sus etiquetas, y retirarla cuando quieras:
/api/ai-studio/marketplace/entries/:idCambia category o tags (la lista nueva sustituye a la anterior; vacía, las borra) de una entrada que enviaste tú. No cambia el estado. Permiso: AI_STUDIO_MARKETPLACE_SUBMIT.
/api/ai-studio/marketplace/entries/:idRetira del catálogo una entrada que enviaste tú: pasa a ARCHIVED. Permiso: AI_STUDIO_MARKETPLACE_SUBMIT.
Consultar el catálogo
/api/ai-studio/marketplace/entriesLista las entradas aprobadas, con filtros y paginación. Devuelve items, total, limit y offset. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
- categoryenum
- Una de las categorías del envío.
- pricingenum
- FREE o PREMIUM.
- sortenum
- RECENT (por defecto), POPULAR, TOP_RATED, FEATURED o MOST_DOWNLOADED.
- featuredboolean
- true para ver solo las entradas destacadas vigentes.
- searchstring
- Busca en el nombre, la descripción y las etiquetas, sin distinguir mayúsculas.
- limitnumber
- De 1 a 100. Por defecto, 20.
- offsetnumber
- Desplazamiento. Por defecto, 0.
/api/ai-studio/marketplace/entries/:idDetalle de una entrada. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
/api/ai-studio/marketplace/entries/:id/reportDenuncia una entrada ante el equipo de UTILIA OS. Cuerpo: reason, de 10 a 1.000 caracteres. Permiso: AI_STUDIO_MARKETPLACE_VIEW. Límite: 20 denuncias al día por persona.
Instalar una entrada
Instalar crea en tu biblioteca una copia privada del activo, con su versión activa y sus adjuntos. La copia es tuya: si el autor publica después una versión nueva, tu copia no se modifica sola.
/api/ai-studio/marketplace/entries/:id/installInstala una entrada aprobada. Cuerpo: acknowledgeDisclaimer (obligatorio, true) y customName (opcional, hasta 255 caracteres). Permiso: AI_STUDIO_MARKETPLACE_INSTALL. Límite: 100 instalaciones al día por persona.
La respuesta incluye installId, installedAssetId (el activo nuevo de
tu biblioteca), installedVersion, y filesCopied y filesFailed con
el resultado de la copia de adjuntos. No se puede instalar una entrada
que no esté aprobada ni un activo del que eres autor: en esos casos la
respuesta es 400.
/api/ai-studio/marketplace/installsTus instalaciones, de la más reciente a la más antigua. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
/api/ai-studio/marketplace/entries/:id/installsQuién ha instalado una entrada dentro de tu organización. Nunca muestra instalaciones de otras empresas. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
Reseñas
Solo se puede reseñar una entrada aprobada que hayas instalado y que no sea tuya. Cada persona tiene una reseña por entrada: enviar otra la sustituye.
/api/ai-studio/marketplace/entries/:id/reviewsCrea o sustituye tu reseña. Cuerpo: rating (entero de 1 a 5) y comment (opcional, hasta 4.000 caracteres). Permiso: AI_STUDIO_MARKETPLACE_REVIEW. Límite: 20 al día por persona.
/api/ai-studio/marketplace/entries/:id/reviewsReseñas de una entrada, paginadas con limit (1 a 100, por defecto 20) y offset. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
Las reseñas de personas de otras empresas se muestran anónimas: llegan
con user.name igual a «Usuario de otra empresa» y sin userId ni
organizationId.
/api/ai-studio/marketplace/reviews/:reviewIdModifica tu reseña: rating y comment, ambos opcionales. Permiso: AI_STUDIO_MARKETPLACE_REVIEW. Límite: 40 al día por persona.
/api/ai-studio/marketplace/reviews/:reviewIdBorra tu reseña. Permiso: AI_STUDIO_MARKETPLACE_REVIEW.
/api/ai-studio/marketplace/reviews/:reviewId/helpfulMarca una reseña como útil. Permiso: AI_STUDIO_MARKETPLACE_VIEW. Límite: 200 al día por persona.
/api/ai-studio/marketplace/reviews/:reviewId/helpfulQuita tu marca de útil. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
Cambios del marketplace en tiempo real
/api/ai-studio/marketplace/eventsCanal SSE del marketplace. Se abre igual que el del catálogo, con un token efímero en ?token=. Permiso: AI_STUDIO_MARKETPLACE_VIEW.
Cada persona recibe solo lo que le afecta:
- Todos:
marketplace-featured,marketplace-unfeatured,marketplace-reviewed,marketplace-review-updated,marketplace-review-deletedymarketplace-review-helpful, para refrescar el catálogo y las valoraciones. - Quien envió la entrada:
marketplace-under-review,marketplace-approved,marketplace-rejected,marketplace-archivedymarketplace-new-version-pending-review(has publicado una versión nueva del activo y hay que volver a enviarla a revisión). - Quien envió la entrada y quien la instala:
marketplace-installed.
Códigos de error
| HTTP | Significado |
|---|---|
400 | Validación fallida (cuerpo mal formado, valor no admitido, longitud superada). |
401 | Falta el JWT o ha caducado. |
403 | Falta el permiso, no hay acceso al activo o el plan no incluye AI Studio. |
404 | El recurso no existe o no es accesible. |
409 | Conflicto (slug repetido, versión que ya existe, colección con hijos…). |
413 | El cuerpo o el archivo subido es demasiado grande. |
429 | Demasiadas conexiones SSE a la vez (máximo 5 por usuario). |
500 | Error interno. |
Siguiente paso
Para usar AI Studio desde asistentes de IA o clientes MCP, utiliza la herramienta MCP ai_studio: lo explica Herramientas MCP de AI Studio. Cómo se usa AI Studio dentro del producto está en AI Studio.