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

# Claves de API

Una clave de API autentica tus solicitudes a Novita AI. Esta página explica cómo funcionan las claves, cómo crear y almacenar una, y cómo mantenerla funcionando en todos tus entornos.

Usa esta página para:

* Autenticar solicitudes a Novita AI con una clave de API Bearer.
* Crear una clave de API desde la consola y almacenarla de forma segura.
* Configurar tu clave como una variable de entorno en Linux, macOS y Windows.
* Entender cuánto tiempo sigue siendo válida una clave y qué cubre y no cubre OpenAPI.

## Autenticación

Novita AI autentica el acceso a la API mediante autenticación Bearer. Envía tu clave de API en el `Authorization` encabezado de solicitud:

```
Authorization: Bearer <API Key>
```

Una solicitud de ejemplo:

```bash theme={"system"}
curl "https://api.novita.ai/openai/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -d '{
    "model": "deepseek/deepseek-r1",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
```

## Crear una clave de API

<Steps>
  <Step title="Abrir Administración de claves">
    Ve a [Administración de claves](https://novita.ai/settings/key-management?utm_source=getstarted) en la consola.
  </Step>

  <Step title="Crear una nueva clave">
    Selecciona **Crear clave de API** y, luego, dale a la clave un nombre que refleje su propósito, como `production` o `local-testing`.
  </Step>

  <Step title="Copia y guarda la clave">
    La clave completa se muestra solo una vez, al crearla. Cópiala de inmediato y guárdala en un lugar seguro, como un gestor de secretos o una variable de entorno. Si la pierdes, no puedes recuperarla — crea una clave nueva en su lugar.
  </Step>
</Steps>

<Note>
  Opcionalmente, puedes limitar a qué modelos puede llamar una clave. Consulta [Acceso a modelos para claves de API](/docs/es/guides/llm-model-access).
</Note>

## Formato y validez de la clave

* Cada clave comienza con el `sk_` prefijo.
* Una clave se muestra completa solo una vez, al crearla. Después, la consola muestra una forma enmascarada.
* Una clave permanece válida indefinidamente una vez creada. Sigue funcionando hasta que la eliminas en la consola.
* Cada cuenta puede crear hasta **10** claves de API.

## Qué cubre la OpenAPI

Creas y eliminas claves de API únicamente en la consola. La Novita OpenAPI no incluye endpoints para crear o eliminar claves.

Los endpoints de la OpenAPI relacionados con claves cubren listar claves y gestionar la política de acceso a modelos de una clave:

* [Listar claves de API](/docs/es/api-reference/key-list-with-model-access) — enumera las claves de tu equipo, con un resumen opcional del acceso a modelos.
* [Obtener la política de acceso a modelos de la clave de API](/docs/es/api-reference/key-get-model-access-policy) — lee la política de acceso a modelos de una clave individual.
* [Establecer la política de acceso a modelos de una clave de API](/docs/es/api-reference/key-put-model-access-policy) — establecer o actualizar la política de acceso a modelos de una clave.
* [Restablecer la política de acceso a modelos de la clave de API](/docs/es/api-reference/key-delete-model-access-policy) — restablece la política de acceso a modelos de una clave al valor predeterminado. Esto restablece solo la política; no elimina la clave en sí.

## Almacena tu clave como una variable de entorno

Codificar una clave directamente en el código fuente implica el riesgo de filtrarla, por ejemplo cuando confirmas el archivo. Leer la clave desde una variable de entorno como `NOVITA_API_KEY` lo mantiene fuera de tu código.

### Temporal vs. permanente

Un conjunto de claves establecido con `export` (Linux/macOS) o `set` (Windows) dura solo durante la sesión de terminal actual y desaparece cuando la cierras. Eso está bien para una prueba rápida. Para conservar la clave entre sesiones, establécela permanentemente como se muestra a continuación y luego abre una nueva terminal para que el cambio surta efecto.

<CodeGroup>
  ```bash Linux theme={"system"}
  # Temporary: current session only
  export NOVITA_API_KEY="<Your API Key>"

  # Permanent: append to your shell profile, then reload
  echo 'export NOVITA_API_KEY="<Your API Key>"' >> ~/.bashrc
  source ~/.bashrc
  ```

  ```bash macOS theme={"system"}
  # Temporary: current session only
  export NOVITA_API_KEY="<Your API Key>"

  # Permanent: append to your shell profile, then reload
  # Newer macOS uses zsh (~/.zshrc); older setups use bash (~/.bash_profile)
  echo 'export NOVITA_API_KEY="<Your API Key>"' >> ~/.zshrc
  source ~/.zshrc
  ```

  ```powershell Windows theme={"system"}
  # Temporary: current PowerShell session only
  $env:NOVITA_API_KEY = "<Your API Key>"

  # Permanent: persist for the current user, then open a new terminal
  setx NOVITA_API_KEY "<Your API Key>"
  ```
</CodeGroup>

Lee la clave en tu código desde el entorno:

<CodeGroup>
  ```python Python theme={"system"}
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.novita.ai/openai",
      api_key=os.environ.get("NOVITA_API_KEY"),
  )
  ```

  ```javascript Node.js theme={"system"}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.novita.ai/openai",
    apiKey: process.env.NOVITA_API_KEY,
  });
  ```
</CodeGroup>

### La variable está configurada, pero el código aún no puede encontrarla

<AccordionGroup>
  <Accordion title="La configuraste temporalmente y abriste una terminal nueva">
    Una clave configurada con `export` o `$env:` vive solo en la sesión de terminal donde lo ejecutaste. Una terminal nueva, o una pestaña nueva, no lo hereda. Configura la clave de forma permanente (`>> ~/.zshrc`, `setx`), o vuelve a ejecutar el `export`/`$env:` línea en la sesión que estás usando.
  </Accordion>

  <Accordion title="Lo configuraste de forma permanente, pero no reiniciaste">
    Un cambio permanente (perfil de shell, `setx`) se aplica a las terminales iniciadas después del cambio. Abre una nueva terminal y reinicia tu IDE o editor para que recoja el nuevo entorno. En Windows, `setx` no afecta a las terminales que ya están abiertas.
  </Accordion>

  <Accordion title="Un gestor de servicios no hereda el entorno de tu shell">
    Los procesos iniciados por `systemd`, `supervisor`, Docker, o un ejecutor de CI no leen tu perfil de shell interactivo. Establece la variable en la configuración propia del servicio (por ejemplo, un `systemd` de la unidad `Environment=`, a `docker run -e` indicador, o los secretos del proyecto de CI), no en `~/.bashrc`.
  </Accordion>

  <Accordion title="Ejecutaste el comando con sudo">
    `sudo` no pasa tu entorno de forma predeterminada, por lo que la variable que exportaste como tu usuario no es visible para el proceso elevado. Usa `sudo -E` para preservar el entorno, o establece la variable dentro del contexto elevado.
  </Accordion>
</AccordionGroup>

## Relacionado

* [Acceso a modelos para claves de API](/docs/es/guides/llm-model-access) — restringe a qué modelos puede llamar una clave.
* [Códigos de error comunes](/docs/es/guides/error) — resolver `401` y `403` respuestas relacionadas con claves.
* [Límites de tasa](/docs/es/guides/llm-rate-limits) — límites de solicitudes y de tokens que se aplican a tu cuenta.
