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

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:

Enterprise Security

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:

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