URL di base
https://api.flowella.io/v1/messages.
In precedenza l’API si trovava sull’host dell’app all’indirizzo
https://app.flowella.io/api/v1/.... Le richieste a quel percorso legacy vengono reindirizzate in modo permanente (308) a https://api.flowella.io/v1/..., preservando metodo e body — le integrazioni esistenti continuano quindi a funzionare. Aggiornate il vostro URL di base non appena possibile per evitare il salto aggiuntivo.Autenticazione
Ogni richiesta necessita di una chiave API nell’intestazioneAuthorization:
Creare una chiave
Per gestire le chiavi API è necessario il ruolo Owner o Admin.- Andare a Impostazioni → Chiavi API nell’app Flowella.
- Fare clic su Crea chiave e assegnarle un nome memorabile.
- Copiare la chiave una sola volta: viene visualizzata solo al momento della creazione.
Verifica di una chiave
Per confermare la validità di una chiave, si può utilizzare l’endpoint ping:200 OK con { "ok": true, "organizationId": "…" } significa che l’utente è autenticato.
Errori
Tutti gli errori vengono restituiti in una busta coerente:
Il campo
error.code è stabile e sicuro da attivare programmaticamente. Il campo error.message è leggibile dall’uomo e può cambiare.
Limiti di velocità
Le chiavi API hanno un limite di velocità per organizzazione. Se si supera il limite, si riceve un429 con il codice RATE_LIMITED e il messaggio Too many requests. Quando presente, l’intestazione di risposta Retry-After indica quanti secondi attendere. Ritirarsi e riprovare con un ritardo esponenziale.
Se si eseguono grandi invii in massa, preferire POST /v1/templates/send con il parametro throttlePerHour - Flowella applica il throttle lato server, quindi non è necessario ritmare le richieste da soli.
Chiavi di idempotenza
Gli invii massivi di modelli sono asincroni.POST /v1/templates/send convalida la richiesta, la mette in coda in modo durevole e restituisce immediatamente 202 Accepted:
Idempotency-Key (fino a 200 caratteri) che identifichi in modo univoco ogni batch:
id del job originale invece di creare un nuovo invio. È possibile riprovare in sicurezza una richiesta dopo un timeout o un errore di rete senza inviare messaggi a nessuno due volte.
Se si omette l’intestazione, Flowella deriva una chiave dal corpo della richiesta. Un batch identico inviato due volte in rapida successione non viene quindi inviato due volte. Una chiave esplicita è comunque più sicura, perché qualsiasi modifica al corpo (anche il riordino dei destinatari) produce una nuova chiave derivata.
Paginazione
Gli endpoint elenco (/conversations, /contacts, /templates) utilizzano la paginazione a cursore:
- Passare
limit(1-100, valore predefinito 25) e uncursoropzionale. - La risposta contiene
itemse, se ci sono più risultati,nextCursor. - Passare
nextCursorcome parametrocursorper recuperare la pagina successiva. - Quando manca
nextCursor, si è giunti alla fine.
Data e ora
Tutti i timestamp sono stringhe ISO 8601 in UTC (ad esempio2025-01-15T14:30:00.000Z). Quando l’API accetta date, sia la sola data (2025-01-15) che l’intero ISO 8601 sono forzati dal lato server.
Numeri di telefono
Passare i numeri di telefono nella forma E.164 (+15551234567), ove possibile. Flowella normalizzerà le varianti più comuni lato server, ma E.164 è più sicuro.
Canali
Molti endpoint accettano unwhatsappChannelId. Se la vostra organizzazione ha un solo canale e lo omettete, Flowella utilizzerà il vostro canale predefinito. Se avete più canali, passate esplicitamente l’ID per evitare di inviare dal mittente sbagliato.
Per lo schema URL completo e il cambio di canale, vedere Multi-channel.

