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

# Autenticación

> API keys de OlivIA (Bearer oc_sk_) y roles de acceso

La API de OlivIA se autentica con una **API key personal** enviada como bearer token en cada petición:

```
Authorization: Bearer oc_sk_...
```

```bash theme={null}
curl "https://{your-prod-endpoint}/v1/protocols" \
  -H "Authorization: Bearer oc_sk_xxxxxxxxxxxxxxxxxxxxxxxx"
```

## Cómo obtener una key

Las API keys se emiten desde la plataforma por un administrador de tu organización (no hay auto-registro por API). Cada key queda ligada a un usuario y a una organización, y **hereda el rol de ese usuario**: la tenencia (`org_id`) y los permisos se derivan de la key, así que no necesitas enviar ningún identificador de organización.

<Warning>
  La key se muestra **una sola vez** en el momento de crearla. Guárdala en un gestor de secretos; OlivIA solo almacena un hash y no puede recuperarla. Si se compromete, revócala y emite una nueva.
</Warning>

## Roles y permisos

Cada endpoint exige un rol mínimo. El rol efectivo de la key es el del usuario propietario.

| Operación                                            | Roles permitidos                |
| ---------------------------------------------------- | ------------------------------- |
| Lecturas (protocolos, inscripciones, runs, llamadas) | `admin`, `coordinator`, `medic` |
| Inscribir paciente / crear run                       | `admin`, `coordinator`          |
| Archivar (eliminar) protocolo                        | `admin`, `integrator`           |

Si una key no tiene el rol necesario, la API responde `403`.

## Buenas prácticas

* Usa una key distinta por integración o entorno para poder revocarla de forma aislada.
* No incrustes la key en clientes front-end ni en repositorios.
* Rota las keys periódicamente.
