Simple, honest pricing

Start free. Upgrade when you need team access or higher limits. No per-seat fees, no usage-based billing, no vendor lock-in.

Free
$0
forever · self-hosted
Single user
50 queries / month
1 database connection
PostgreSQL, MySQL & MariaDB
Bring your own AI key
Session history
Self-hosted — your infrastructure
Multiple database connections
Multi-user, RBAC & LDAP
10,000 queries / month
Priority support
Deploy free →
Enterprise
License key
annual · self-hosted
Everything in free, plus:
Multi-user with role-based access (Admin / Developer / Guest)
LDAP / Active Directory — users provisioned on first login
All 7 databases: PostgreSQL, MySQL, MariaDB, SQL Server, ClickHouse, Databricks, Redshift
Up to 50 database connections
10,000 queries / month
Multiple LLM model configs
Audit log
Priority email support
License valid for 1 year
Request a license →

AI usage costs are billed directly by your provider (OpenAI, Anthropic, etc.) — Ottoch never charges for AI calls.

Common questions

Do I need to pay for AI usage?
No. You bring your own API key from your chosen provider (OpenAI, Anthropic, Google Gemini, etc.). All AI costs go directly to your provider account. Ottoch never sits between you and your provider's billing.
Is my database data sent to Ottoch?
No. Ottoch runs entirely on your own server. There are no analytics, no telemetry, and no call-home. The only outbound network calls from your instance are to your chosen AI provider's API endpoint — and those calls contain only your schema and your question, never your row data.
What happens when my enterprise license expires?
The app continues to work without interruption. On the next monthly query count reset, it downgrades to free tier limits (50 queries, 1 connection). Your data, sessions, and configuration are untouched. Renew at any time to restore enterprise limits.
Can I use it without an internet connection?
Yes. License validation is offline — the license key is checked locally. The only internet dependency is your AI provider's API. If you're running a local model via an OpenAI-compatible endpoint, Ottoch works in a fully air-gapped environment.
Can I use a local model like Ollama instead of a cloud AI provider?
Yes. Pick Custom (OpenAI-compatible) as the provider in LLM Configuration and point the Base URL at your local server's OpenAI-compatible endpoint — for Ollama that's /v1/chat/completions, not its native /api/chat path, since the two use different request/response formats. A bare hostname works fine too (e.g. a Docker container or service name like http://ollama:11434/v1/chat/completions) — it doesn't need to be a real internet domain. Use the Fetch models button after entering the URL to pick from whatever models your local server actually has loaded, rather than typing the exact name by hand.
Why does Ottoch say it can't answer my question?
The most common cause is a table that's needed to answer the question isn't activated for that connection — Ottoch only ever sees the schema of tables you've explicitly turned on under Manage tables. A question like "top-selling products" needs whichever table actually links orders to products (an order-items / line-items table), not just the products and orders tables on their own — activate every table the question touches, including join tables, and try again. If every relevant table is already active and it still can't answer, a smaller local model may simply be struggling with that particular query; a larger model (GPT-4o, Claude, Gemini) tends to handle multi-table joins more reliably.
How do I get support?
Email us at [email protected] or use the contact form. Enterprise licenses include priority response — we aim to reply within one business day. Free tier support is best-effort.

Start for free. Upgrade when you're ready.

No credit card. No time limit on the free tier.

Deploy free → Request enterprise license