AI & Assistant
The AI assistant provides a real-time conversational interface. Conversations are persistent and grounded in your organization’s data.
WebSocket Connection
GET /v1/assistant/ws?token=YOUR_ACCESS_TOKEN Upgrade to a WebSocket connection for real-time assistant interaction. The access token is passed as a query parameter because the browser WebSocket API does not support custom headers during the upgrade handshake.
The connection maintains conversation state and streams responses in real time.
Security Notes
- Access tokens are short-lived
- The access token is fully validated on connection
- WSS (TLS) transport mandatory
List Conversations
GET /v1/assistant/conversations Query Parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Max results (1–100) |
offset | integer | Pagination offset |
Get Conversation
GET /v1/assistant/conversations/:id Returns the full conversation history including all messages and assistant responses.
Custom Skills
GET /v1/skills List custom AI skills configured for the organization. Skills are reusable prompt templates with configurable model settings per pricing plan.
POST /v1/skills
Create a custom AI skill with a prompt template, model selection, and plan
gating. System-assigned fields (id, org_id,
version, created_at, updated_at) are
never supplied by the caller; the organization comes from the
authenticated session and the rest are assigned by the server.
Request Body
{
"name": "Summarize Spec",
"description": "Summarizes a specification document",
"skill_type": "agent",
"overall_prompt": "You are a helpful summarizer...",
"default_model": "..."
} Response
On success (201 Created) the complete created skill is returned.
{
"success": true,
"data": {
"id": "...",
"org_id": "...",
"name": "Summarize Spec",
"description": "Summarizes a specification document",
"skill_type": "agent",
"config": { /* prompt, model, and visibility settings */ },
"is_enabled": true,
"version": 1,
"created_by": "...",
"created_at": "2026-06-20T12:00:00Z",
"updated_at": "2026-06-20T12:00:00Z"
}
} Response Codes
| Status | Meaning |
|---|---|
201 | Skill created; the full record is returned |
400 | Validation error (missing/invalid field, an unknown body key, or a model not included in the active plan) |
401 | Authentication required |
403 | Caller lacks the required permission to create skills |
500 | Unexpected server error |
AI Model Configuration
GET /v1/ai-model-config Get the current AI model configuration for the organization.
PUT /v1/ai-model-config Update the AI model configuration. Available models depend on the subscription tier.
Semantic Search
Searchable content is indexed for semantic search. Content is indexed automatically in the background as soon as it is created or updated and is kept up to date without any manual action.
Vector Search Benchmarks
Generate synthetic datasets and benchmark vector-index techniques, then retrieve chart-ready results.
POST /v1/benchmarks/generate
Generate a synthetic vector dataset. This creates a benchmark dataset record.
System-assigned fields (id, org_id,
generated_at) are never supplied by the caller; the
organization comes from the authenticated session and the rest are assigned
by the server.
Request Body
{
"name": "Uniform 100k",
"vector_count": 100000,
"dimensions": 1024,
"distribution": "uniform"
} Response
On success (201 Created) the complete created dataset record is returned.
{
"success": true,
"data": {
"id": "...",
"org_id": "...",
"name": "Uniform 100k",
"description": "Synthetic uniform dataset with 100000 vectors of 1024 dimensions",
"vector_count": 100000,
"dimensions": 1024,
"distribution": "uniform",
"seed": null,
"generation_time_ms": 0,
"generated_at": "2026-06-20T12:00:00Z",
"created_at": "2026-06-20T12:00:00Z",
"updated_at": "2026-06-20T12:00:00Z"
}
} Response Codes
| Status | Meaning |
|---|---|
201 | Dataset created; the full record is returned |
400 | Validation error (missing/invalid field, vector_count out of range, or an unknown distribution) |
401 | Authentication required |
403 | Caller lacks the benchmark permission |
500 | Unexpected server error |
POST /v1/benchmarks/run
Run a benchmark suite against a dataset across the selected index techniques.
This executes a run and returns the run summary (200 OK);
detailed results are retrieved via GET /v1/benchmarks/results.
GET /v1/benchmarks/results List benchmark results for the organization.
GET /v1/benchmarks/runs/:runId/charts Get chart data for a benchmark run.