Reference

A single-page lookup for botts.ai — plan limits, what costs credits, supported file types, channels, data-residency tiers, the widget embed, HTTP tools and secrets, form fields, and an explicit list of what the platform does not do (yet).

Quick-reference tables that pull the hard numbers and rules together in one place. For the "why" and "how," follow the links into the full guides.

Plans and limits

New organizations start on Free. Prices are the same number in CHF, EUR, and USD; paying yearly is about 17% cheaper. Ultra is custom and arranged with sales.

FreeLiteStandardProUltra
Price / month39169699Custom
Credits / month2001,50010,00030,000Custom
Members1138Unlimited
Agents (active)1125Unlimited
Deployments (active)1148Unlimited
Knowledge-base pages508004,00012,000Unlimited
Upload storage (MB)102001,0002,500Unlimited

See Team & Billing for plan changes, credit blocks, and auto-recharge.

What costs credits

Everything an agent does is metered in credits. Plan credits are spent first, then purchased credits (earliest-expiring first).

ActivityCost
AI model usage (text)Per ~1,000 words, in and out — the rate depends on the model (shown in the model picker).
Voice / phoneBilled separately and higher than text — per second of call plus audio tokens in/out.
Website crawling1 credit per page (a "page" ≈ 2,000 characters of extracted text).
Embedding (indexing)0.01 credits per 1,000 tokens.

Note

A "page" is a unit of 2,000 characters of extracted text — used both for crawl billing and for your plan's knowledge-base page limit.

Supported file types and upload limits

TypeExtensions
PDF.pdf
Word.doc, .docx
Text.txt
Markdown.md
  • Maximum 100 MB per file. Larger files are rejected before upload.
  • Total upload storage is capped by your plan's Upload storage (MB) limit.
  • A scanned or image-only PDF with no extractable text is accepted but shows as Skipped — it contributes no searchable content. Use a text-based PDF or paste the text as Markdown. See Knowledge Base.

Channels

ChannelStatus
Website chat widgetLive
Phone / voice agentLive
Chat (Internal) — teamLive
WhatsAppComing soon
TelegramComing soon
EmailComing soon

Full details in Deployments.

Data-residency tiers

Set per organization under My Organization → General → Server Location. The tier filters which AI models you can select. Switzerland counts as European but is not part of the EU.

TierModels allowed
Swiss / SwissSwiss-hosted models from Swiss companies
Swiss / anySwiss-hosted models, any provider
Europe / EuropeEuropean-hosted models from European companies
Europe / anyEuropean-hosted models, any provider
GlobalNo restriction (default)

Platform infrastructure, knowledge-base storage, and chat history are in Switzerland (Infomaniak) regardless of tier. Voice telephony uses a US provider (Twilio). botts.ai does not train models on your data. See the FAQ and data-residency post.

Website widget embed

Each website deployment exposes a single script tag, pasted just before the closing </body> tag:

<script async src="https://YOUR-API-URL/widget/chat-widget.js?key=YOUR_API_KEY"></script>
  • The key is the deployment's API key, prefixed bts_. The real URL and key are shown in the widget editor's Embed Code section — copy them from there.
  • Regenerating the key invalidates the old snippet everywhere it's embedded.
  • Works on WordPress, Shopify, Squarespace, Wix, or plain HTML. See Deployments.

HTTP tools and secrets

Custom tools let an agent call your own HTTP API. Configured under Integrations (Admin/Owner).

FieldValues
MethodGET, POST, PUT, DELETE, PATCH
AuthenticationNone, Bearer, Basic, or Custom Header
Parameter typesstring, number, integer, boolean
Live timeout30 seconds (10 seconds when testing)
  • Reference a stored secret anywhere in the endpoint, headers, or auth with $secret:key_name.
  • GET/DELETE send parameters as query string; POST/PUT/PATCH send a JSON body. Path variables like {order_id} are substituted.
  • A 2xx response body is passed to the model; 4xx/5xx bodies are hidden (the model is only told the status). Return 200 with a JSON body for "not found"-style answers.
  • Private, localhost, link-local, and cloud-metadata addresses are blocked.

Form fields

Built-in lead-capture templates (enable per agent under Form / Lead Capture):

TemplateFields (* = required)
Contactname*, email*, phone, message
Support Ticketsubject*, description*, email*, priority (low/medium/high)
Booking Requestname*, email*, date*, service

Custom fields use the same parameter types as tools — string, number, integer, boolean. One submission is captured per conversation; name/email/phone also fill the contact's empty profile fields. Submissions are viewable and exportable to CSV under each agent's Forms tab. See Agents.

What botts.ai doesn't do (yet)

So you (and any agent trained on these docs) don't assume a capability that isn't there:

  • No third-party knowledge-base connectors. Sources are website crawl and file upload only — there is no Google Drive, Notion, Dropbox, SharePoint, or S3 sync.
  • No public/customer API. There are no personal API keys or a general REST API for sending messages programmatically. The only keys are the per-deployment widget keys (bts_), which authenticate the embedded chat widget.
  • No calendar or booking automation. The Booking Request form collects a requested date; it does not check availability or book anything. Use an HTTP tool to call your own scheduling API.
  • No conversation/transcript export. Only form submissions export (CSV). Conversations are viewable in the dashboard but can't be bulk-exported.
  • No web browsing. Agents cannot search the web or open arbitrary URLs. External or live data must come through a custom HTTP tool.
  • No per-agent language selector. Agents reply in the language the user writes in; to pin a language, state it in the system prompt.
  • WhatsApp, Telegram, and Email channels are not available yet (Coming soon).
  • No SSO/SAML or audit logs at this time.

Need one of these? It's often achievable today with a custom HTTP tool — or worth raising with support.

Last updated on June 16, 2026