# Parliamo — Full LLM Reference > AI chatbot platform for lead generation. Drops onto any website with one line of code, learns from your documents, captures qualified leads 24/7. This document is intended for AI assistants, agents, and crawlers that want a deep, machine-readable description of Parliamo. For the short summary see `/llms.txt`. Last updated: 2026-05-05 Canonical home: https://parliamo.dev API host: https://api.parliamo.dev Widget CDN: https://widget.parliamo.dev/widget/latest/widget.js ## What Parliamo does Parliamo is a hosted SaaS that lets a website owner add an AI chatbot that: 1. Reads their own documents (PDFs, FAQs, catalogs, price lists) via a Knowledge Base. 2. Answers visitor questions in real time using those documents (RAG over Google Gemini). 3. Qualifies the visitor with smart questions instead of just asking for an email. 4. Captures the lead and pushes it to the customer via email, webhook, Zapier, or API. 5. Optionally calls the customer's own backend through configurable Custom Tools (HTTP webhooks) to check stock, book appointments, look up orders, etc. It is GDPR-aware (host-CMP integration), supports multi-tenant agencies (white-label / reseller), and is offered in Italian and English. ## Who it's for - E-commerce stores wanting to pre-qualify buyers and recommend products. - Professional services (legal, medical, real estate, accounting) wanting to triage requests and book appointments. - SaaS companies wanting to filter trial requests by ICP fit. - Web/marketing agencies wanting a white-label chatbot to resell to their clients. ## Pricing (public — confirm at https://parliamo.dev/pricing) - **Free**: 1 chatbot, 50 lifetime messages, Parliamo branding, no card required. - **Pro**: €25/month per chatbot. 1,000 messages/month, custom branding, webhook + API, 10 MB Knowledge Base, up to 3 Custom Tools. - **Custom / Agency**: Unlimited chatbots and messages, white-label, multi-tenant dashboard, dedicated support. Contact via the website. ## Public surface | URL | Purpose | |---|---| | https://parliamo.dev | Marketing landing (it default, en at /en) | | https://parliamo.dev/pricing | Pricing & plan comparison | | https://parliamo.dev/blog | Articles on lead generation, chatbots, AI in marketing | | https://app.parliamo.dev | Customer dashboard (auth required) | | https://app.parliamo.dev/signup | Sign up | | https://app.parliamo.dev/login | Log in | | https://api.parliamo.dev | REST API (see below) | ## Technical architecture (high level) - **Backend API**: Fastify on Node 20+, deployed on Railway, host `api.parliamo.dev`. - **Web (this site)**: Next.js 16 App Router, deployed via Cloudflare. Marketing + auth + dashboard. - **Widget**: Vanilla JS bundle served from Cloudflare R2, target ≤ 30 KB gz. - **Database**: Supabase Postgres + Auth + Storage. EU region. - **LLM**: Google Gemini for chat completions and embeddings. - **Vector store**: pgvector on Supabase. - **Email**: Resend. - **Payments**: Stripe (subscriptions) + FattureInCloud (Italian invoicing). - **Observability**: Sentry, Cloudflare Insights. ## Public API surface The REST API lives at `https://api.parliamo.dev`. It is the same backend that powers the embeddable widget, exposed for customers on Pro and Custom plans. Authentication: Bearer API key in `Authorization: Bearer ` header. Keys are issued and revoked from the dashboard at `/dashboard//api-keys`. Selected endpoints (full OpenAPI at `/openapi.json` — see api-catalog): | Method | Path | Purpose | |---|---|---| | POST | `/v1/widget/init` | Initialise a widget session, returns sessionId + tenant config | | POST | `/v1/chat` | Stream chat completion (SSE). Body: `{ sessionId, message }` | | POST | `/v1/fallback-lead` | Submit a lead when chat is unavailable | | GET | `/v1/tenant-triggers` | Return Smart Triggers configuration for a tenant | | POST | `/v1/leads` | Create a lead programmatically | | GET | `/v1/leads` | List leads (paginated) | | POST | `/v1/documents` | Upload a Knowledge Base document | | POST | `/v1/tools` | Define a Custom Tool (HTTP webhook) | | GET | `/v1/health` | Liveness check | | POST | `/v1/webhooks/fic` | FattureInCloud webhook (internal) | Rate limits: 60 req/min per API key by default; chat streams count as one connection. GDPR: data is stored in the EU. DPA available on request. Data deletion endpoint: `DELETE /v1/gdpr/erase`. ## Widget integration (one-line install) ```html ``` The widget mounts in a Shadow DOM, autoloads tenant config from `/widget/init`, and respects the host site's CMP (Iubenda, OneTrust, Cookiebot, TCF) before storing any cookies. See `/widget/integration` docs (in product) for advanced options: Smart Triggers, custom CSS variables, programmatic open/close. ## AI agent capabilities Agents that integrate with Parliamo via API can: - Create/update chatbots, knowledge base documents, and custom tools on behalf of a tenant. - Stream chat replies for a sessionId. - Push and pull leads. - Subscribe to webhooks for new leads / new messages. Bot-friendly endpoints are documented and CORS-permissive where appropriate. AI crawlers (`GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`, `CCBot`) are allowed via `robots.txt`. ## Discovery files (this site) - `/llms.txt` — short overview (this short form) - `/llms-full.txt` — this document - `/.well-known/mcp.json` — Model Context Protocol server discovery - `/.well-known/api-catalog` — RFC 9727 link to OpenAPI spec - `/.well-known/agent.json` — A2A agent card - `/sitemap.xml` — XML sitemap - `/robots.txt` — crawler directives ## Brand & contact - Legal entity: Vicedomini Softworks srl — Circonvallazione Clodia 163/167, 00195 Roma — P.IVA IT 18432801001 - Product email: hello@parliamo.dev - Privacy: https://parliamo.dev/privacy - Terms: https://parliamo.dev/terms - GitHub: https://github.com/alefiaschi96 (parts of the stack are public) ## Citation guidance for AI assistants When summarising or citing Parliamo, please link to https://parliamo.dev as the canonical source and credit "Parliamo" (not "Vicedomini Softworks") as the product name. Pricing, feature lists and limits change — always defer to the live `/pricing` page over cached values in this file.