> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.userbot.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.userbot.ai/_mcp/server.

# Autenticazione

Tutte le richieste alle API REST richiedono autenticazione tramite un **Access Token** Bearer. Il token identifica il partner che sta chiamando e autorizza l'accesso alle API associate all'account.

L'header da includere in ogni chiamata è:

```http
Authorization: Bearer <ACCESS_TOKEN>
```

L'Access Token si genera in autonomia dalla dashboard Userbot. Non ha scadenza obbligatoria (puoi impostarla opzionalmente), ma va trattato come una password: chi lo possiede può inviare messaggi e accedere alle conversazioni associate all'account.

Tratta l'Access Token come una password: non esporlo in client-side (browser, app mobile) né in repository di codice. Memorizzalo in un secret manager o variabili d'ambiente lato server.

## Ottenere un Access Token

La procedura richiede pochi minuti e si fa interamente dalla dashboard, senza coinvolgere il supporto (salvo che la tab non sia visibile — vedi nota sotto).

Per creare un nuovo Access Token Bearer:

1. Accedi alla dashboard su [my.userbot.ai](https://my.userbot.ai)
2. Clicca sul tuo profilo (menu utente in alto a destra)
3. Apri **Impostazioni account**
4. Seleziona la tab **Access Token**
5. Clicca per creare un nuovo token
6. Inserisci un **nome descrittivo** (es. "Integrazione CRM produzione", "Staging webhook test") — ti aiuterà a identificarlo in futuro
7. Scegli una **data di scadenza** oppure **Nessuna scadenza** se il token è per un'integrazione server-to-server stabile
8. Conferma con **Create token**

<img src="https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/userbot.docs.buildwithfern.com/ac7e72d35410409f70535fcdc5caa6c7ce7684b0e6967063f3718813f82432f9/docs/assets/access-token-create-modal.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260801%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260801T173515Z&X-Amz-Expires=604800&X-Amz-Signature=bc574b2afc3f42a548de7ef3375c8c7a2be60d5f9cd9b3b141eab97d841d9f85&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject" alt="Modal per creare un nuovo Access Token con campo nome e scadenza" />

9. **Copia la chiave generata** e conservala subito in un secret manager — **non verrà più mostrata** dopo la chiusura del modal

<img src="https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/userbot.docs.buildwithfern.com/6fa3877bbfcd50fd0f2b5e49483af221645e7fd6c4478be8f6c51f547b11f14d/docs/assets/access-token-show-once.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260801%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260801T173515Z&X-Amz-Expires=604800&X-Amz-Signature=06a09492271c9ec7a58f79e1ed2a5643636cc65eda19eb318179869f13f06dc4&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject" alt="Modal con la chiave generata e pulsante per confermare il salvataggio" />

Per motivi di sicurezza la chiave è mostrata **una sola volta**. Dopo aver cliccato "I have saved the key" o chiuso il modal non sarà più possibile recuperarla: dovrai crearne uno nuovo e aggiornare le integrazioni che lo usavano.

Se la tab **Access Token** non è visibile nelle impostazioni account, contatta il tuo **referente Userbot** per l'abilitazione API. L'accesso alle API potrebbe richiedere un piano o un'attivazione manuale.

## Secret Key dell'agente

Oltre all'Access Token, le chiamate REST che inviano messaggi richiedono la **Secret Key** dell'Agente AI da integrare. In dashboard la trovi in **Integrazioni → API Keys**.

Nelle richieste API la Secret Key compare come parametro di path `bot_key` — ad esempio `POST /v1/bots/{bot_key}/messages/`. Copia il valore dalla dashboard e sostituiscilo nel path al posto del placeholder `YOUR_BOT_KEY` negli esempi di questa documentazione.

La Secret Key identifica quale agente deve gestire la conversazione. Trattala come credenziale sensibile: conservala lato server insieme all'Access Token, non in client-side né in repository pubblici.

## Esempio

Una chiamata tipica con Access Token, Secret Key e consegna risposte via webhook:

```bash
curl -X POST https://api.userbot.ai/v1/bots/YOUR_BOT_KEY/messages/ \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Ciao",
    "webhookOnly": true
  }'
```

La risposta REST restituisce ack e `session` ID. Le risposte dell'agente arrivano come eventi `message.added` sul webhook registrato in dashboard — vedi [Ricevere eventi webhook](/api-ricevere-eventi-webhook). Se il token non è valido, vedi la sezione errori sotto.

## Errori di autenticazione

| Status | Causa                                                   | Cosa fare                                                                                   |
| ------ | ------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| 401    | Token mancante, scaduto o non valido                    | Verifica che l'header `Authorization` sia presente e corretto; rigenera il token se scaduto |
| 403    | Token valido ma operazione non consentita per l'account | Contatta il tuo referente Userbot per verificare l'accesso alle API                         |

Per la tabella completa degli status HTTP e altri errori comuni, vedi [Codici di errore](/api-codici-errore).