> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ouraicalling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Acceso a modelos por usuario

> Permite o bloquea modelos individuales para un usuario concreto — solo administrador de la plataforma

Qué modelos de IA están disponibles lo decide **únicamente el administrador de la plataforma** a través del catálogo de modelos (`models.enabled` en `/admin/models`). No existe ninguna anulación a nivel de espacio de trabajo.

Además de ese interruptor global, el administrador de la plataforma puede permitir o bloquear **modelos individuales para un usuario concreto** — útil para pruebas comerciales, acceso beta o restricciones puntuales.

## Cómo funciona

Abre un usuario en `/admin/users/[id]` y usa la sección **Acceso a modelos**. Cada modelo del catálogo tiene tres estados:

| Estado    | Significado                                                                   |
| --------- | ----------------------------------------------------------------------------- |
| `Default` | Sigue el interruptor del catálogo global (`models.enabled`)                   |
| `Allow`   | Habilitado a la fuerza para este usuario, aunque esté desactivado globalmente |
| `Block`   | Deshabilitado a la fuerza para este usuario, aunque esté activado globalmente |

La disponibilidad efectiva para un usuario es: **la anulación por usuario si existe; si no, el interruptor del catálogo global.** Tanto los desplegables del editor de asistente de un usuario (`GET /api/models`) como la validación del servidor al guardar respetan las anulaciones del propietario del asistente.

<Note>
  Esta es una función exclusiva para administradores de la plataforma. No está expuesta en la API pública v1 ni en el MCP — solo los endpoints de administrador que aparecen a continuación pueden leerla o modificarla.
</Note>

## API de administrador

Ambos endpoints requieren un administrador de la plataforma (`requirePlatformAdmin`); la suplantación de identidad se ignora.

**`GET /api/admin/users/{id}/models`** — devuelve el catálogo completo agrupado por tipo (`llm`/`stt`/`tts`/`realtime`). Cada modelo incluye:

* `global_enabled` — el interruptor del catálogo
* `override` — `null` (sigue al global), `true` (permitir) o `false` (bloquear)
* `effective` — la disponibilidad resultante para este usuario

**`PUT /api/admin/users/{id}/models`** con un cuerpo de anulaciones:

```json theme={null}
{ "overrides": [ { "model_id": "<uuid>", "enabled": false } ] }
```

Establece `enabled` en `true`/`false` para forzar permitir/bloquear, o en `null` para eliminar la anulación y que el usuario vuelva a seguir el catálogo global. Cada cambio queda registrado en el registro de auditoría del administrador.
