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

# Autenticacion

> Como autenticarse con la API de Wappfy usando claves API o tokens JWT.

# Autenticacion

La API de Wappfy soporta dos metodos de autenticacion. Todas las solicitudes deben incluir uno de ellos.

## Clave API (recomendado)

Pasa tu clave API en el header `X-Api-Key`:

```bash theme={null}
curl https://api.wappfy.io/api/instances \
  -H "X-Api-Key: wappfy_sk_abc123def456..."
```

### Crear una clave API

Las claves API se crean desde el panel de control o a traves de la API. Las claves estan asociadas a un usuario y tienen los mismos permisos que la cuenta del usuario.

```bash theme={null}
curl -X POST https://api.wappfy.io/api/api-keys \
  -H "Authorization: Bearer YOUR_SUPABASE_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Production Key" }'
```

<Warning>
  El valor de la clave solo se muestra una vez al momento de la creacion. Guardalo de forma segura.
</Warning>

## Bearer Token (JWT de Supabase)

Pasa un token de acceso de Supabase en el header `Authorization`:

```bash theme={null}
curl https://api.wappfy.io/api/instances \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
```

Los tokens JWT tienen una vida util corta y deben renovarse. Generalmente se usan en el panel de control del frontend, no para integraciones servidor a servidor.

## Buenas practicas de seguridad

<AccordionGroup>
  <Accordion title="Usar claves API para comunicacion servidor a servidor">
    Las claves API no expiran y son mas faciles de administrar para integraciones de backend.
  </Accordion>

  <Accordion title="Rotar las claves regularmente">
    Si una clave se ve comprometida, eliminala y crea una nueva.
  </Accordion>

  <Accordion title="Usar siempre HTTPS">
    Todas las solicitudes a la API deben usar HTTPS. Las solicitudes HTTP seran rechazadas.
  </Accordion>

  <Accordion title="No exponer las claves en el codigo del frontend">
    Las claves API solo deben usarse en codigo del lado del servidor, nunca en JavaScript del lado del cliente.
  </Accordion>
</AccordionGroup>

## Respuestas de error

| Estado | Descripcion                               |
| ------ | ----------------------------------------- |
| `401`  | Token de autenticacion ausente o invalido |
| `403`  | Permisos insuficientes para este recurso  |
