What is Answerplane?
Answerplane is a trusted data layer for source-connected AI answers. It enables developers to embed governed answers, inspectable SQL/NoSQL plans, and tenant-scoped source access into their applications with just a few lines of code.
Governed source answers stay tied to approved connections, query plans, and tenant guardrails instead of free-form model output.
Core Value Proposition
- Governed Source Answers: Convert approved-source questions into inspectable database plans and provenance-backed answers
- Multi-Database Support: Works with PostgreSQL, MySQL, SQL Server, SQLite, Oracle, MongoDB, Snowflake, Databricks, Redshift, and BigQuery
- Multi-Tenant Architecture: Secure organization-level isolation with custom configurations
- Dynamic Schema Learning: Automatically adapts to your database structure
- Customizable AI Personalities: Tailor response styles to your use case
- Production-Ready: Built for reliable, scalable performance
Key Features
Trusted Data Layer
Answerplane provides a unified API for approved-source answers, schema-aware query planning, and tenant guardrails across SQL and NoSQL databases.
Organization-Specific Customization
Each organization can:
- Connect multiple databases
- Configure custom AI personalities
- Add custom knowledge base entries for domain-specific context
- Define query patterns and templates
- Set up billing and usage limits
- Manage user access and permissions
Enterprise Security
- Multi-tenant data isolation
- Encrypted database credentials
- Read-only database connections
- Query timeouts and result limits
- Tenant-level data filtering with X-Tenant-Id header (row-level security)
- Additional scoping with X-Scope-Id header (user/department/role-based filtering or tracking)
Use Cases
Customer-Facing
Embed a governed answer widget in your application so users can ask source-scoped questions:
<div id="dialektai-chat"></div>
<script>
DialektAI.create('#dialektai-chat', {
apiKey: 'pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
databaseId: 'your-db-id',
tenantId: getCurrentOrganizationId(), // Organization ID (positive integer) for row-level filtering
scopeId: getCurrentUserId() // User ID (tracking + optional additional filtering)
});
</script>
Internal Business Intelligence
Enable your team to ask governed questions without memorizing schema details:
- Sales team: "Show me top customers by revenue this quarter"
- Support team: "How many tickets were resolved last week?"
- Executives: "What's our monthly recurring revenue trend?"
Backend Integration
Use Answerplane as a governed answer layer in your backend via HTTP API:
Option 1: Regular HTTP POST (Non-Streaming)
import requests
response = requests.post(
'https://api.answerplane.com/api/v1/chat/message',
headers={
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json',
'X-Tenant-Id': '82' # Optional: filter for specific customer
},
json={
'message': 'Find all active subscriptions expiring next month',
'conversation_id': 'conv-uuid-456' # Optional: for continuing a conversation
}
)
result = response.json()
print(result['message']) # AI response
print(result['conversation_id']) # Conversation ID for follow-up messages
print(result['sources']) # Data sources used
print(result['execution_time_ms']) # Response time
Option 2: Server-Sent Events (Streaming)
import requests
response = requests.post(
'https://api.answerplane.com/api/v1/chat/session-123/stream?message=Show%20revenue%20trends',
headers={'X-API-Key': 'your_api_key_here'},
stream=True
)
for line in response.iter_lines():
if line:
print(line.decode('utf-8')) # Real-time streaming chunks
JavaScript/Node.js Example
const response = await fetch('https://api.answerplane.com/api/v1/chat/message', {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json',
'X-Tenant-Id': '82'
},
body: JSON.stringify({
message: 'Find all active subscriptions expiring next month',
conversation_id: 'conv-uuid-456' // Optional: for continuing a conversation
})
});
const result = await response.json();
console.log(result.message); // AI response
console.log(result.conversation_id); // Conversation ID
console.log(result.sources); // Data sources used
Next Steps
- Quick Start Guide - Connect a source and send the first request
- Authentication - Set up API keys
- Widget Integration - Embed in your app
- API Reference - Complete API documentation