> ## 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.

# Autenticazione

> Come autenticarsi con l'API Wappfy utilizzando chiavi API o token JWT.

# Autenticazione

L'API Wappfy supporta due metodi di autenticazione. Tutte le richieste devono includere uno di questi.

## Chiave API (consigliata)

Passa la tua chiave API nell'header `X-Api-Key`:

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

### Creazione di una chiave API

Le chiavi API vengono create tramite la dashboard o l'API. Le chiavi sono associate a un utente e hanno gli stessi permessi dell'account dell'utente.

```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>
  Il valore della chiave viene restituito una sola volta al momento della creazione. Conservalo in modo sicuro.
</Warning>

## Bearer Token (JWT Supabase)

Passa un token di accesso Supabase nell'header `Authorization`:

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

I token JWT hanno una durata limitata e devono essere rinnovati. Vengono generalmente utilizzati dalla dashboard frontend, non per integrazioni server-to-server.

## Buone pratiche di sicurezza

<AccordionGroup>
  <Accordion title="Usa le chiavi API per le comunicazioni server-to-server">
    Le chiavi API non scadono e sono piu facili da gestire per le integrazioni backend.
  </Accordion>

  <Accordion title="Ruota le chiavi regolarmente">
    Se una chiave viene compromessa, eliminala e creane una nuova.
  </Accordion>

  <Accordion title="Usa sempre HTTPS">
    Tutte le richieste API devono utilizzare HTTPS. Le richieste HTTP verranno rifiutate.
  </Accordion>

  <Accordion title="Non esporre le chiavi nel codice frontend">
    Le chiavi API devono essere utilizzate solo nel codice lato server, mai nel JavaScript lato client.
  </Accordion>
</AccordionGroup>

## Risposte di errore

| Stato | Descrizione                                   |
| ----- | --------------------------------------------- |
| `401` | Token di autenticazione mancante o non valido |
| `403` | Permessi insufficienti per questa risorsa     |
