> ## Documentation Index
> Fetch the complete documentation index at: https://developer.omni.z-api.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticación

> Cómo generar y utilizar tus credenciales de API en Omni Z-API

export const frontendUrl = 'https://app.omni.z-api.io';

export const projectName = 'Omni Z-API';

## Credenciales de la API

{projectName} funciona con un par de claves: **Public Key** y **Secret Key**. Ambas se generan en el menú **Seguridad** del panel: [Seguridad](\{frontendUrl}/app/security).

***

## Public Key

La Public Key la utiliza el SDK de conexión de canales ([`@omni-zapi/connect`](https://www.npmjs.com/package/@omni-zapi/connect)). Con ella puedes [conectar canales](/es/channels/connect-channel) directamente desde tu sistema, sin necesidad de entrar al panel.

<Note>
  La Public Key se puede exponer en el frontend de tu aplicación, ya que sus permisos se limitan únicamente a la conexión de canales.
</Note>

Ejemplo de uso:

```javascript theme={null}
import OmniZapi from '@omni-zapi/connect';

const client = OmniZapi.newClient({
  publicKey: 'SU_PUBLIC_KEY'
});
```

***

## Secret Key

La Secret Key se utiliza para autenticarse en todas las APIs de {projectName}. Debe enviarse en el header `Authorization` como Bearer token en cada petición.

<Warning>
  La Secret Key **nunca** debe exponerse en el frontend. Úsala únicamente en el backend de tu aplicación.
</Warning>

Ejemplo de uso:

```bash theme={null}
curl -X GET https://api.omni.z-api.io/whatsapp/businesses \
  -H "Authorization: Bearer SU_SECRET_KEY"
```

***

## Resumen

| Clave          | Uso                                                                                                                                                 | Dónde usarla       | ¿Se puede exponer en el frontend? |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | --------------------------------- |
| **Public Key** | [SDK de conexión de canales](/es/channels/connect-channel)                                                                                          | Frontend o backend | Sí                                |
| **Secret Key** | Todas las llamadas a la API ([canales](/es/channels/introduction), [plantillas](/es/templates/introduction), [mensajes](/es/messages/introduction)) | Solo backend       | No                                |

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Crear un canal" icon="plug" href="/es/channels/create-channel">
    Crea tu primer canal para empezar a enviar mensajes.
  </Card>

  <Card title="Conectar un canal con el SDK" icon="code" href="/es/channels/connect-channel">
    Integra el flujo de conexión en tu sistema.
  </Card>
</CardGroup>
