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

# API Keys

> Crea y gestiona claves de API para acceder a tus datos de Databases desde aplicaciones externas

Las **API Keys** te permiten autenticarte en la API de Databases desde aplicaciones externas, scripts o integraciones. Cada clave puede tener permisos granulares y una fecha de expiración configurable.

<Frame caption="Lista de API Keys con nombre, permisos, clave enmascarada y acciones">
  <img src="https://mintcdn.com/jelouai/daUUvITM1J6ByU2U/assets/images/datum/api-keys.png?fit=max&auto=format&n=daUUvITM1J6ByU2U&q=85&s=4f21dec8a2aeae6bc4830a6e2e78e794" alt="Tabla de API Keys mostrando claves creadas con columnas Name, Permissions, Key, Created, Expires y botones Regenerate y Delete" width="3024" height="1730" data-path="assets/images/datum/api-keys.png" />
</Frame>

## Crear una API Key

<Steps>
  <Step title="Accede a la configuración">
    Ve a **Configuración > API Keys** desde la barra lateral izquierda.
  </Step>

  <Step title="Haz clic en + Create API key">
    El botón se encuentra en la esquina superior derecha.
  </Step>

  <Step title="Configura la clave">
    Completa los siguientes campos:

    * **Name** — Un nombre descriptivo para identificar la clave (ej. "CI Bot", "Backend Production")
    * **Permissions** — Selecciona los permisos que necesita la clave
    * **Expiration** — Tiempo de vigencia de la clave
  </Step>

  <Step title="Haz clic en Create">
    La clave se genera y se muestra una única vez. Cópiala y guárdala en un lugar seguro.
  </Step>
</Steps>

<Warning>
  La clave completa solo se muestra una vez al momento de crearla. Si la pierdes, deberás regenerar la clave o crear una nueva.
</Warning>

## Permisos disponibles

Los permisos se dividen en dos categorías:

**Records (Registros)**

| Permiso                 | Descripción                                            |
| ----------------------- | ------------------------------------------------------ |
| Read records            | Permite leer y buscar registros en las colecciones     |
| Create & update records | Permite crear nuevos registros y actualizar existentes |
| Delete records          | Permite eliminar registros                             |

**Files (Archivos)**

| Permiso      | Descripción                            |
| ------------ | -------------------------------------- |
| Read files   | Permite descargar archivos adjuntos    |
| Upload files | Permite subir archivos a los registros |

<Tip>
  Aplica el principio de mínimo privilegio: otorga solo los permisos que la aplicación realmente necesita. Por ejemplo, un dashboard de lectura solo requiere **Read records**.
</Tip>

## Opciones de expiración

| Opción        | Descripción                              |
| ------------- | ---------------------------------------- |
| 7 days        | La clave expira en 7 días                |
| 30 days       | La clave expira en 30 días (por defecto) |
| 60 days       | La clave expira en 60 días               |
| 90 days       | La clave expira en 90 días               |
| 180 days      | La clave expira en 180 días              |
| No expiration | La clave no expira                       |

<Warning>
  Las claves sin expiración no se revocan automáticamente. Úsalas solo cuando sea estrictamente necesario y combínalas con permisos mínimos.
</Warning>

## Gestionar API Keys

La tabla de API Keys muestra todas las claves creadas con la siguiente información:

* **Name** — Nombre de la clave
* **Permissions** — Permisos asignados
* **Key** — Los últimos caracteres de la clave (enmascarada)
* **Created** — Fecha de creación
* **Expires** — Fecha de expiración

### Acciones disponibles

* **Regenerate** — Genera una nueva clave manteniendo el mismo nombre y permisos. La clave anterior deja de funcionar inmediatamente.
* **Delete** — Elimina la clave permanentemente. Cualquier aplicación que la utilice perderá acceso inmediatamente.

## Usar la API Key

Incluye la clave en el header `X-Api-Key` de tus peticiones HTTP:

<CodeGroup>
  ```bash cURL theme={null}
  curl -s -X GET 'https://tu-instancia.jelou.cloud/api/collections/tu_coleccion/records' \
    -H 'X-Api-Key: YOUR_API_KEY' \
    -H 'Accept: application/json'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://tu-instancia.jelou.cloud/api/collections/tu_coleccion/records', {
    headers: {
      'X-Api-Key': 'YOUR_API_KEY',
      'Accept': 'application/json'
    }
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://tu-instancia.jelou.cloud/api/collections/tu_coleccion/records',
      headers={
          'X-Api-Key': 'YOUR_API_KEY',
          'Accept': 'application/json'
      }
  )

  data = response.json()
  ```
</CodeGroup>
