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

# Creá una API key

> Creá una API key de sandbox desde el dashboard, la CLI o MCP, guardala en tu servidor y rotala de forma segura.

Una API key le da a tu servidor acceso a una organización de Commet. Empezá con una **organización sandbox** mientras desarrollás la integración.

Las keys nuevas de acceso completo empiezan con `ck_sandbox_` o `ck_live_`; las restringidas, con `rk_sandbox_` o `rk_live_`. Las keys anteriores que empiezan con `ck_` siguen funcionando. La organización que creó la key determina a qué datos puede acceder. Ambos entornos usan `https://commet.co/api/v1`.

## Creá una key

Elegí el camino que corresponda a tu forma de trabajar. Solo necesitás uno para empezar.

<Tabs>
  <Tab title="Dashboard">
    1. Seleccioná tu **organización sandbox** en el dashboard.
    2. Entrá en **Settings → API Keys** y hacé clic en **Create API Key**.
    3. Elegí **Full Access** para un backend o **AI Agents** para seleccionar permisos por recurso.
    4. Escribí un nombre descriptivo, como `Desarrollo local`, y elegí **Expires In (Days)**. El dashboard acepta entre **1 y 365 días**, con **365** por defecto.
    5. Creá la key y copiala antes de cerrar el diálogo. El secreto completo se muestra una sola vez.
  </Tab>

  <Tab title="CLI">
    Instalá la [CLI de Commet](/docs/es/cli), iniciá sesión desde el navegador y vinculá el proyecto con tu organización sandbox:

    ```bash theme={null}
    npm install -g commet
    commet login
    commet link
    ```

    Elegí la organización marcada como **sandbox**. Al vincular una nueva organización, la CLI genera una key para sus comandos de recursos y la guarda en `.commet/config.json`. También agrega `.commet/` a `.gitignore`. Mantené ese directorio privado.

    Esto configura la CLI; **no** carga `COMMET_API_KEY` en tu aplicación. Para crear una key independiente para la app después de vincular el proyecto:

    ```bash theme={null}
    commet api-keys create --name "Desarrollo local" --expires-in-days 365
    ```

    Guardá el campo `apiKey` de la respuesta como se indica abajo. Los comandos de recursos priorizan `COMMET_API_KEY` del entorno sobre la key del proyecto vinculado: revisá qué credencial está activa antes de crear o eliminar keys.
  </Tab>

  <Tab title="MCP">
    Conectá tu agente al [servidor MCP de Commet](/docs/es/mcp-server) en `https://commet.co/mcp/v2`. Con OAuth podés iniciar sesión desde el navegador y elegir una **organización sandbox** sin tener una API key previa. La conexión queda vinculada a esa organización.

    Pedile al agente que cree una key para la aplicación con `api_create_api_key` y estos argumentos:

    ```json theme={null}
    {
      "body": {
        "name": "Desarrollo local",
        "expiresInDays": 365
      }
    }
    ```

    La respuesta contiene el secreto completo una sola vez. Si tus herramientas lo permiten, pedile al agente que lo guarde directamente en el archivo local de secretos o secret manager elegido. No pegues una key existente en la conversación ni le pidas al agente que la repita en un mensaje.
  </Tab>
</Tabs>

¿Ya te autenticás con una API key de acceso completo? Podés crear reemplazos con `POST /api/v1/api-keys`. Ese request crea otra key para la misma organización. Consultá [Create API key](/docs/es/api-reference/api-keys/create-api-key) para ver el request y la respuesta.

## Limitá los permisos de una key

Si omitís `permissions`, la key tiene acceso completo. Si indicás permisos por recurso, queda restringida. Por ejemplo, `customer: ["read"]` permite leer customers, pero no modificarlos. El acceso de escritura requiere tanto `"read"` como `"write"`. Un objeto vacío (`{}`) no da acceso a ningún recurso.

Una key restringida con `api_key: ["read", "write"]` puede crear keys restringidas con los mismos permisos o menos. Esas keys vencen como máximo cuando vence la key que las crea. Las keys restringidas no pueden editar ni eliminar API keys.

```typescript theme={null}
const key = await commet.apiKeys.create({
  name: "Lectura de customers",
  permissions: { customer: ["read"] },
})
```

El secreto completo se devuelve una sola vez. Guardalo en tu secret store antes de cerrar la respuesta.

## Guardá la key en tu servidor

Para desarrollo local, guardala en un archivo de entorno excluido de Git:

```bash title=".env.local" theme={null}
COMMET_API_KEY=ck_reemplaza_con_tu_key
```

Cargá la variable en el proceso de tu servidor con el mecanismo de tu framework. En producción, usá el secret store del deploy. Nunca expongas la key en código del navegador, variables públicas, logs, screenshots ni control de versiones.

Commet guarda un hash de la key y no puede volver a mostrar el secreto completo. Si lo perdés, creá un reemplazo.

## Usá la key en tu SDK

Para Node.js, instalá el SDK:

```bash theme={null}
npm install @commet/node
```

Inicializalo en código del servidor después de cargar el entorno:

```typescript theme={null}
import { Commet } from "@commet/node"

const apiKey = process.env.COMMET_API_KEY
if (!apiKey) {
  throw new Error("COMMET_API_KEY is required")
}

export const commet = new Commet({ apiKey })
```

Para otros lenguajes, seguí la guía de [Python](/docs/es/integrate-with-python), [Go](/docs/es/integrate-with-go), [Java](/docs/es/integrate-with-java) o [PHP](/docs/es/integrate-with-php). Los requests REST directos se autentican con el header `x-api-key`.

## Rotá la key y pasá a live

Usá una key independiente por aplicación o deploy que necesite su propia rotación. Para reemplazar una key antes de que venza:

1. Creá el reemplazo en la **misma organización**.
2. Actualizá el secreto en todos los procesos que usan la key anterior y desplegalos o reinicialos.
3. Verificá una lectura exitosa con la nueva key y confirmá que la aplicación la está usando.
4. Eliminá la anterior desde **Settings → API Keys** o con [Delete API key](/docs/es/api-reference/api-keys/delete-api-key).

Para producción, creá una key en tu **organización live** y guardala separada de las credenciales de sandbox. No copies IDs de customers, planes ni suscripciones de sandbox a la configuración live. Antes del cambio, verificá checkout, webhooks y una renovación en sandbox con el [Test Clock](/docs/es/testing-sandbox).

Después, seguí el [quickstart](/docs/es/choose-a-billing-model) para completar el primer pago de una suscripción en sandbox.


## Related topics

- [Configuración de la organización](/docs/es/organization-settings.md)
- [Quickstart](/docs/es/choose-a-billing-model.md)
- [Servidor MCP](/docs/es/mcp-server.md)
- [AI Onboarding](/docs/es/ai-onboarding.md)
- [Create API key](/docs/es/api-reference/2026-06-07/api-keys/create-api-key.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.