REST API
La REST API v1 di ChatReact le offre accesso programmatico alle operazioni supportate dalla dashboard: chatbot, knowledge base e crawling, prezzi strutturati, FAQ, revisione delle chat e Improvement Agent, lead, moduli di contatto, live chat, azienda e team, Email Assistant, analytics e notifiche. Le azioni vincolate al browser (pagamenti, autorizzazione mailbox, passkey, cancellazione account e gestione delle chiavi API) restano nella dashboard.
Preferisce parlare con un assistente AI? Le stesse funzionalità sono disponibili come strumenti MCP — veda MCP Server Integration. L'API Explorer interattiva con schemi di richiesta e risposta è disponibile su /api-reference, dove può anche scaricare la specifica OpenAPI 3.0.
Autenticazione
- Vai a Dashboard → Azienda → scheda API e clicchi Crea chiave API
- Scegli un nome e gli scope di permesso necessari per la chiave (vedere sotto)
- Copi la chiave — inizia con
cr_ed è mostrata una sola volta
Invii la chiave con ogni richiesta:
curl https://www.chatreact.ai/api/v1/chatbots \
-H "Authorization: Bearer cr_your_api_key"
Un header X-API-Key: cr_your_api_key è accettato anch'esso. Le chiavi API appartengono a una singola azienda ed eseguono con i permessi del proprietario dell'azienda; i limiti del piano e i gate delle funzionalità si applicano esattamente come nella dashboard.
L'accesso API è disponibile nei piani a pagamento — veda la pagina dei Prezzi. Le chiavi possono essere revocate in qualsiasi momento dalla dashboard.
Scope
Ogni chiave porta uno o più scope. Un endpoint restituisce 403 quando la chiave non dispone dello scope richiesto.
| Scope | Concessioni |
|---|---|
chatbots:read / chatbots:write | Configurazione chatbot: persona, lingue, widget, comportamento, restrizioni, istruzioni principali, codice embed, fase di apprendimento, template chatbot, impostazioni widget FAQ |
knowledge:read / knowledge:write | Knowledge base: documenti, crawling del sito, pagine crawl-ate |
faqs:read / faqs:write | FAQ, categorie FAQ, suggerimenti, traduzioni |
chats:read / chats:write | Cronologia chat, valutazioni chat, categorie di confidenza, live chat (le azioni dell'agente richiedono chats:write) |
leads:read / leads:write | Lead, categorie lead, impostazioni di acquisizione lead, export |
forms:read / forms:write | Moduli di contatto e invii |
analytics:read | Statistiche, serie di attività, funnel, stato di confidenza |
company:read / company:write | Profilo e impostazioni azienda, membri del team, inviti |
email:read / email:write | Connessioni Email Assistant, categorie, contatti, attività |
prices:read | Lettura delle voci di prezzo strutturato, revisioni, idoneità e suggerimenti |
prices:write | Creare e modificare bozze di prezzo, importare CSV e applicare un suggerimento come bozza; richiede il proprietario dell'azienda |
prices:approve | Approvare versioni esatte o archiviare voci; richiede il proprietario dell'azienda |
blog:read / blog:write | Contenuti del blog della piattaforma (interno a ChatReact) |
| any valid key | /v1/me, utilizzo dell'account, le sue notifiche |
Convenzioni
- Base URL:
https://www.chatreact.ai/api/v1, JSON in ingresso e in uscita (Content-Type: application/json). - Risposte:
{ "success": true, "data": … }; le liste aggiungono"pagination": { "total", "page", "pageSize", "totalPages" }. UtilizzipageepageSize(max 100) negli endpoint che ritornano liste; alcuni endpoint offrono paginazione con cursore (cursor/nextCursor). - Errori:
{ "success": false, "error": "message", "code": "BAD_REQUEST" }con opzionaledetailsper gli errori di validazione. Codici di stato:400input non valido,401chiave mancante o non valida,403scope mancante, funzione del piano non inclusa o ruolo insufficiente,404risorsa non trovata (anche per risorse di altre aziende),409conflitto,429limite di velocità superato. - Aggiornamenti parziali: gli endpoint
PATCHmodificano solo i campi che invia; i campi sconosciuti vengono rifiutati. - Rate limit: 30 richieste al minuto per indirizzo IP.
- Operazioni di lunga durata (crawl, generazione AI, traduzioni) ritornano rapidamente con un job o un risultato che può essere interrogato; consumano i token e il budget di crawl del suo piano.
Endpoint
Prices & services
Salvataggio, modifica, importazione e applicazione di un suggerimento creano bozze senza approvazione. Le operazioni di approvazione e archiviazione revisionano versioni esatte; una versione obsoleta restituisce un conflitto. Le chiavi esistenti non acquisiscono automaticamente permessi prezzi. Solo il proprietario dell'azienda può concedere permessi di scrittura o approvazione. Per il flusso cliente, veda Prices & services.
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/prices | Elenca voci di prezzo e idoneità | prices:read |
POST | /api/v1/chatbots/{id}/prices | Crea una bozza | prices:write |
GET | /api/v1/chatbots/{id}/prices/{itemId} | Legge dettagli e cronologia paginata | prices:read |
PATCH | /api/v1/chatbots/{id}/prices/{itemId} | Crea una bozza modificata da una versione attesa | prices:write |
GET | /api/v1/chatbots/{id}/prices/{itemId}/state | Legge lo stato completo dell'elemento | prices:read |
POST | /api/v1/chatbots/{id}/prices/{itemId}/approve | Approva una versione esatta | prices:approve |
POST | /api/v1/chatbots/{id}/prices/{itemId}/archive | Archivia una versione esatta | prices:approve |
POST | /api/v1/chatbots/{id}/prices/approve-many | Approva in modo atomico una selezione esplicita di versione | prices:approve |
POST | /api/v1/chatbots/{id}/prices/import | Importa bozze da CSV con un ID di importazione stabile | prices:write |
GET | /api/v1/chatbots/{id}/prices/suggestions | Elenca suggerimenti di prezzo | prices:read |
POST | /api/v1/chatbots/{id}/prices/suggestions/{suggestionId}/apply | Applica un suggerimento selezionato come bozza | prices:write |
Chatbots
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/chatbots | Elenca chatbot | chatbots:read |
POST | /api/v1/chatbots | Crea chatbot | chatbots:write |
GET | /api/v1/chatbots/{id} | Ottieni chatbot | chatbots:read |
PATCH | /api/v1/chatbots/{id} | Aggiorna chatbot | chatbots:write |
DELETE | /api/v1/chatbots/{id} | Elimina chatbot | chatbots:write |
GET | /api/v1/chatbots/{id}/personality | Ottieni personalità del chatbot | chatbots:read |
PATCH | /api/v1/chatbots/{id}/personality | Aggiorna personalità del chatbot | chatbots:write |
GET | /api/v1/chatbots/{id}/widget | Ottieni impostazioni widget | chatbots:read |
PATCH | /api/v1/chatbots/{id}/widget | Aggiorna impostazioni widget | chatbots:write |
GET | /api/v1/chatbots/{id}/widget/translations | Ottieni traduzioni del widget | chatbots:read |
PUT | /api/v1/chatbots/{id}/widget/translations | Sostituisci traduzioni del widget | chatbots:write |
GET | /api/v1/chatbots/{id}/embed | Ottieni codice embed | chatbots:read |
POST | /api/v1/chatbots/{id}/embed/confirm | Conferma embed | chatbots:write |
GET | /api/v1/chatbots/{id}/learning-phase | Ottieni impostazioni della learning-phase | chatbots:read |
PATCH | /api/v1/chatbots/{id}/learning-phase | Aggiorna impostazioni della learning-phase | chatbots:write |
POST | /api/v1/chatbots/{id}/learning-phase/end | Termina la learning phase | chatbots:write |
GET | /api/v1/chatbots/{id}/instructions | Elenca core instructions | chatbots:read |
POST | /api/v1/chatbots/{id}/instructions | Aggiungi core instruction | chatbots:write |
PUT | /api/v1/chatbots/{id}/instructions/reorder | Riorganizza core instructions | chatbots:write |
POST | /api/v1/chatbots/{id}/instructions/improve | Migliora istruzioni con AI | chatbots:write |
GET | /api/v1/instructions/{id} | Ottieni core instruction | chatbots:read |
PATCH | /api/v1/instructions/{id} | Aggiorna core instruction | chatbots:write |
DELETE | /api/v1/instructions/{id} | Elimina core instruction | chatbots:write |
GET | /api/v1/chatbot-templates | Elenca template chatbot | chatbots:read |
Knowledge base
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/knowledge | Panoramica knowledge base | knowledge:read |
GET | /api/v1/chatbots/{id}/documents | Elenca documenti per chatbot | knowledge:read |
POST | /api/v1/chatbots/{id}/documents | Carica documento | knowledge:write |
POST | /api/v1/chatbots/{id}/documents/presign | Presign per upload documento | knowledge:write |
GET | /api/v1/documents/{id} | Ottieni documento | knowledge:read |
DELETE | /api/v1/documents/{id} | Elimina documento | knowledge:write |
POST | /api/v1/documents/{id}/confirm | Conferma upload presigned | knowledge:write |
GET | /api/v1/chatbots/{id}/crawl/limits | Limiti di crawl | knowledge:read |
POST | /api/v1/chatbots/{id}/crawl/preview | Anteprima scan del sito web | knowledge:write |
GET | /api/v1/chatbots/{id}/crawl | Elenca job di crawl | knowledge:read |
POST | /api/v1/chatbots/{id}/crawl | Avvia crawl | knowledge:write |
GET | /api/v1/crawl-jobs/{jobId} | Ottieni job di crawl | knowledge:read |
POST | /api/v1/crawl-jobs/{jobId}/cancel | Annulla job di crawl | knowledge:write |
GET | /api/v1/chatbots/{id}/pages | Elenca pagine crawl-ate | knowledge:read |
POST | /api/v1/chatbots/{id}/pages | Aggiungi singolo URL | knowledge:write |
POST | /api/v1/chatbots/{id}/pages/bulk-delete | Eliminazione in blocco di pagine crawl-ate | knowledge:write |
GET | /api/v1/pages/{id} | Ottieni pagina crawl-ata | knowledge:read |
DELETE | /api/v1/pages/{id} | Elimina pagina crawl-ata | knowledge:write |
POST | /api/v1/pages/{id}/recrawl | Riscansiona pagina | knowledge:write |
GET | /api/v1/chatbots/{id}/websites | Elenca siti crawl-ati | knowledge:read |
DELETE | /api/v1/chatbots/{id}/websites/{domain} | Elimina sito | knowledge:write |
POST | /api/v1/chatbots/{id}/websites/{domain}/recrawl | Riscansiona sito | knowledge:write |
POST | /api/v1/chatbots/{id}/websites/{domain}/recrawl/cancel | Annulla re-crawl del sito | knowledge:write |
FAQs
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/faqs | Elenca FAQ per chatbot | faqs:read |
POST | /api/v1/chatbots/{id}/faqs | Crea FAQ | faqs:write |
POST | /api/v1/chatbots/{id}/faqs/bulk | Import bulk FAQ | faqs:write |
POST | /api/v1/chatbots/{id}/faqs/reorder | Riorganizza FAQ | faqs:write |
GET | /api/v1/chatbots/{id}/faqs/embed | Ottieni codice embed del widget FAQ | chatbots:read |
POST | /api/v1/chatbots/{id}/faqs/purge-cache | Svuota le cache remote delle FAQ | faqs:write |
GET | /api/v1/faqs/{id} | Ottieni FAQ | faqs:read |
PATCH | /api/v1/faqs/{id} | Aggiorna FAQ | faqs:write |
DELETE | /api/v1/faqs/{id} | Elimina FAQ | faqs:write |
PUT | /api/v1/faqs/{id}/translations | Aggiorna traduzioni FAQ | faqs:write |
POST | /api/v1/faqs/{id}/translate | Traduci FAQ con AI | faqs:write |
GET | /api/v1/chatbots/{id}/faq-suggestions | Elenca suggerimenti FAQ | faqs:read |
POST | /api/v1/chatbots/{id}/faq-suggestions/generate | Genera suggerimenti FAQ dalla knowledge base | faqs:write |
GET | /api/v1/faq-suggestions/{id} | Ottieni suggerimento FAQ | faqs:read |
POST | /api/v1/faq-suggestions/{id}/approve | Approva suggerimento FAQ | faqs:write |
POST | /api/v1/faq-suggestions/{id}/reject | Respinge suggerimento FAQ | faqs:write |
GET | /api/v1/chatbots/{id}/faq-categories | Elenca categorie FAQ | faqs:read |
POST | /api/v1/chatbots/{id}/faq-categories | Crea categoria FAQ | faqs:write |
POST | /api/v1/chatbots/{id}/faq-categories/reorder | Riorganizza categorie FAQ | faqs:write |
GET | /api/v1/faq-categories/{id} | Ottieni categoria FAQ | faqs:read |
PATCH | /api/v1/faq-categories/{id} | Aggiorna categoria FAQ | faqs:write |
DELETE | /api/v1/faq-categories/{id} | Elimina categoria FAQ | faqs:write |
PUT | /api/v1/faq-categories/{id}/translations | Aggiorna traduzioni della categoria FAQ | faqs:write |
GET | /api/v1/chatbots/{id}/faq-widget-settings | Ottieni impostazioni widget FAQ | chatbots:read |
PATCH | /api/v1/chatbots/{id}/faq-widget-settings | Aggiorna impostazioni widget FAQ | chatbots:write |
Chats, feedback & Improvement Agent
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/chats | Elenca sessioni di chat | chats:read |
GET | /api/v1/chats/{sessionId} | Ottieni sessione di chat | chats:read |
PATCH | /api/v1/chats/{sessionId} | Imposta categoria di confidenza della chat | chats:write |
POST | /api/v1/chats/{sessionId}/feedback | Valuta la chat (Good / Needs Work) | chats:write |
POST | /api/v1/chats/{sessionId}/feedback/dismiss | Scarta la revisione della chat | chats:write |
POST | /api/v1/chats/{sessionId}/improve | Avvia Improvement Agent per la chat | chatbots:write |
GET | /api/v1/chatbots/{id}/feedback | Elenca revisioni chat di un chatbot | chats:read |
GET | /api/v1/chatbots/{id}/feedback/stats | Schede statistiche di revisione chat | chats:read |
GET | /api/v1/feedback/{id} | Ottieni revisione chat | chats:read |
PATCH | /api/v1/feedback/{id} | Sovrascrivi gravità della revisione | chats:write |
POST | /api/v1/feedback/{id}/improvement-session | Avvia Improvement Agent per la revisione | chatbots:write |
GET | /api/v1/chatbots/{id}/confidence | Ottieni stato di confidenza | analytics:read |
GET | /api/v1/chatbots/{id}/confidence-categories | Elenca categorie di confidenza | chats:read |
POST | /api/v1/chatbots/{id}/confidence-categories | Crea categoria di confidenza | chatbots:write |
PATCH | /api/v1/confidence-categories/{id} | Aggiorna categoria di confidenza | chatbots:write |
DELETE | /api/v1/confidence-categories/{id} | Elimina categoria di confidenza | chatbots:write |
POST | /api/v1/confidence-categories/{id}/merge | Unisci categorie di confidenza | chatbots:write |
GET | /api/v1/chatbots/{id}/improvement-sessions | Elenca sessioni di miglioramento | chatbots:read |
GET | /api/v1/improvement-sessions/{id} | Ottieni sessione di miglioramento | chatbots:read |
POST | /api/v1/improvement-sessions/{id}/messages | Invia messaggio all'Improvement Agent | chatbots:write |
POST | /api/v1/improvement-sessions/{id}/complete | Completa sessione di miglioramento | chatbots:write |
POST | /api/v1/improvement-sessions/{id}/reset | Reimposta sessione di miglioramento | chatbots:write |
POST | /api/v1/improvement-proposals/{id}/apply | Applica proposta di miglioramento | chatbots:write |
POST | /api/v1/improvement-proposals/{id}/reject | Respinge proposta di miglioramento | chatbots:write |
POST | /api/v1/improvement-proposals/{id}/simulations | Simula proposta di miglioramento | chatbots:write |
POST | /api/v1/improvement-simulations/{id}/assessment | Valuta risultato della simulazione | chatbots:write |
Leads
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/leads | Elenca lead | leads:read |
POST | /api/v1/leads | Crea lead | leads:write |
GET | /api/v1/leads/{id} | Ottieni lead | leads:read |
PATCH | /api/v1/leads/{id} | Aggiorna lead | leads:write |
DELETE | /api/v1/leads/{id} | Elimina lead | leads:write |
POST | /api/v1/leads/{id}/assign | Assegna lead | leads:write |
POST | /api/v1/leads/bulk-status | Aggiornamento in blocco dello stato dei lead | leads:write |
GET | /api/v1/leads/stats | Statistiche lead | leads:read |
GET | /api/v1/leads/export | Esporta lead | leads:read |
GET | /api/v1/chatbots/{id}/lead-config | Ottieni configurazione di acquisizione lead | leads:read |
PUT | /api/v1/chatbots/{id}/lead-config | Aggiorna configurazione di acquisizione lead | leads:write |
GET | /api/v1/chatbots/{id}/lead-categories | Elenca categorie lead | leads:read |
POST | /api/v1/chatbots/{id}/lead-categories | Crea categoria lead | leads:write |
GET | /api/v1/lead-categories/{id} | Ottieni categoria lead | leads:read |
PATCH | /api/v1/lead-categories/{id} | Aggiorna categoria lead | leads:write |
DELETE | /api/v1/lead-categories/{id} | Elimina categoria lead | leads:write |
PUT | /api/v1/lead-categories/{id}/users/{userId} | Assegna membro a categoria lead | leads:write |
DELETE | /api/v1/lead-categories/{id}/users/{userId} | Rimuovi membro da categoria lead | leads:write |
Contact forms
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/forms | Elenca moduli di contatto | forms:read |
POST | /api/v1/chatbots/{id}/forms | Crea modulo di contatto | forms:write |
GET | /api/v1/forms/{id} | Ottieni modulo di contatto | forms:read |
PATCH | /api/v1/forms/{id} | Aggiorna modulo di contatto | forms:write |
DELETE | /api/v1/forms/{id} | Elimina modulo di contatto | forms:write |
GET | /api/v1/forms/{id}/submissions | Elenca invii del modulo | forms:read |
GET | /api/v1/forms/{id}/stats | Statistiche invii modulo | forms:read |
GET | /api/v1/submissions/{id} | Ottieni invio del modulo | forms:read |
PATCH | /api/v1/submissions/{id} | Revisiona invio del modulo | forms:write |
DELETE | /api/v1/submissions/{id} | Elimina invio del modulo | forms:write |
Live chat
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/live-chat/availability | Ottieni la propria disponibilità per la live chat | chats:read |
PUT | /api/v1/live-chat/availability | Imposta la propria disponibilità per la live chat | chats:write |
POST | /api/v1/live-chat/heartbeat | Invia heartbeat di presenza | chats:write |
GET | /api/v1/live-chat/agents | Elenca agenti disponibili per la live chat | chats:read |
GET | /api/v1/live-chat/sessions | Elenca sessioni di live chat | chats:read |
GET | /api/v1/live-chat/sessions/{sessionId} | Ottieni sessione di live chat | chats:read |
POST | /api/v1/live-chat/sessions/{sessionId}/assign | Prendere in carico la live chat (assegna al proprietario della chiave) | chats:write |
POST | /api/v1/live-chat/sessions/{sessionId}/messages | Invia messaggio come agente | chats:write |
POST | /api/v1/live-chat/sessions/{sessionId}/close | Termina live chat | chats:write |
Analytics
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/analytics | Ottieni panoramica analytics | analytics:read |
GET | /api/v1/analytics/activity | Ottieni serie di attività chat | analytics:read |
GET | /api/v1/analytics/chatbots | Elenca statistiche di performance per chatbot | analytics:read |
GET | /api/v1/analytics/chatbots/{id} | Ottieni analytics del chatbot | analytics:read |
GET | /api/v1/analytics/leads | Ottieni funnel lead | analytics:read |
GET | /api/v1/analytics/forms | Ottieni statistiche invii modulo | analytics:read |
GET | /api/v1/activity | Ottieni riepilogo attention | analytics:read |
Company & team
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/company | Ottieni azienda | any key |
PATCH | /api/v1/company | Aggiorna azienda | company:write |
GET | /api/v1/company/settings | Ottieni impostazioni azienda | company:read |
PATCH | /api/v1/company/settings | Aggiorna impostazioni azienda | company:write |
DELETE | /api/v1/company/logo | Rimuovi logo aziendale | company:write |
GET | /api/v1/company/members | Elenca membri del team | company:read |
PATCH | /api/v1/company/members/{userId} | Cambia ruolo del membro | company:write |
DELETE | /api/v1/company/members/{userId} | Rimuovi membro del team | company:write |
GET | /api/v1/company/invites | Elenca inviti | company:read |
POST | /api/v1/company/invites | Invita membro del team | company:write |
DELETE | /api/v1/company/invites/{id} | Annulla invito | company:write |
POST | /api/v1/company/invites/{id}/resend | Reinvia invito | company:write |
Email Assistant
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/email/connections | Elenca connessioni mailbox | email:read |
GET | /api/v1/email/connections/{id} | Ottieni connessione mailbox | email:read |
PATCH | /api/v1/email/connections/{id} | Aggiorna connessione mailbox | email:write |
DELETE | /api/v1/email/connections/{id} | Disconnetti mailbox | email:write |
GET | /api/v1/email/connections/{id}/categories | Elenca categorie email | email:read |
POST | /api/v1/email/connections/{id}/categories | Crea categoria email | email:write |
GET | /api/v1/email/connections/{id}/folders | Elenca cartelle mail | email:read |
POST | /api/v1/email/connections/{id}/folders | Crea cartella mail | email:write |
GET | /api/v1/email/connections/{id}/activity | Elenca log di attività email | email:read |
GET | /api/v1/email/categories/{id} | Ottieni categoria email | email:read |
PATCH | /api/v1/email/categories/{id} | Aggiorna categoria email | email:write |
DELETE | /api/v1/email/categories/{id} | Elimina categoria email | email:write |
GET | /api/v1/email/contacts | Elenca contatti email | email:read |
GET | /api/v1/email/contacts/{id} | Ottieni contatto email | email:read |
PATCH | /api/v1/email/contacts/{id} | Aggiorna contatto email | email:write |
DELETE | /api/v1/email/contacts/{id} | Elimina contatto email | email:write |
Account & notifications
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/me | Ottieni contesto della chiave (whoami) | any key |
GET | /api/v1/account/usage | Ottieni piano e utilizzo | any key |
GET | /api/v1/notifications | Elenca notifiche | any key |
DELETE | /api/v1/notifications | Elimina notifiche lette vecchie | any key |
GET | /api/v1/notifications/unread-count | Ottieni conteggio notifiche non lette | any key |
POST | /api/v1/notifications/mark-all-read | Segna tutte le notifiche come lette | any key |
GET | /api/v1/notifications/{id} | Ottieni notifica | any key |
PATCH | /api/v1/notifications/{id} | Segna notifica come letta | any key |
Blog (platform)
| Method | Path | Descrizione | Scope |
|---|---|---|---|
GET | /api/v1/blog | Elenca post del blog | any key |
POST | /api/v1/blog | Crea post del blog | any key |
POST | /api/v1/blog/assets | Carica asset del blog | any key |
GET | /api/v1/blog/{id} | Ottieni post del blog | any key |
PATCH | /api/v1/blog/{id} | Aggiorna post del blog | any key |
DELETE | /api/v1/blog/{id} | Elimina post del blog | any key |
POST | /api/v1/blog/{id}/translations | Metti in coda traduzioni del blog | any key |
Serve aiuto? Contatti il nostro team di supporto →