Skip to main content

Auth

auth.signup

Creates an organisation, admin user, team, and first workspace.
const result = await client.auth.signup({
  org_name: 'Acme Corp',
  admin_name: 'Jane',
  admin_email: 'jane@acme.com',
  admin_password: 'securepassword',
  workspace_name: 'Support Bot',
  team_name: 'Customer Support',
  system_prompt: 'You are a helpful support assistant.' // optional
});
// { status: 'ok', org_id: '...', user_id: '...', workspace_id: 'ws-support-bot' }

auth.login

const session = await client.auth.login({
  email: 'jane@acme.com',
  password: 'securepassword'
});
// { user: { id, email, name, role } }

auth.session

const { user } = await client.auth.session();
if (user) {
  console.log(`Logged in as ${user.name} (${user.role})`);
}

Workspaces

workspaces.query

Execute a query against a workspace’s AI.
const result = await client.workspaces.query('ws-support-bot', {
  query: 'What is the status of order ORD-2026-001?',
  session_id: 'session-123' // optional, for multi-turn conversations
});

console.log(result.answer);
console.log(`Cost: $${result.cost_usd}, Duration: ${result.duration_ms}ms`);
console.log(`Tools: ${result.tools_called.join(', ')}`);
Return type: QueryResponse
FieldTypeDescription
answerstringThe AI’s response
tools_calledstring[]Tools the agent invoked
connections_hitstring[]Connections used
tokens{input, output}Token counts
cost_usdnumberEstimated cost
duration_msnumberResponse time
errorstring or nullError if failed
conversation_idstringConversation ID
session_idstringSession ID

workspaces.dashboard

const dashboard = await client.workspaces.dashboard('ws-support-bot');
console.log(`Queries today: ${dashboard.usage.queries_today}`);
console.log(`Cost MTD: $${dashboard.cost.this_month}`);
console.log(`Open tickets: ${dashboard.tickets.open}`);

Conversations

conversations.list

const { conversations, total, filters } = await client.conversations.list(
  'ws-support-bot',
  { status: 'open', limit: 20, offset: 0 }
);
Filter parameters:
ParamTypeValues
statusstringopen, cold, closed
categorystringquery, issue, sales, feedback, support, internal, other
resolutionstringresolved, unresolved, escalated, abandoned
consumerstringslack, api, whatsapp, claude-code
limitnumberPage size
offsetnumberPagination offset

conversations.get

const { conversation, messages, stats } = await client.conversations.get(
  'ws-support-bot',
  'conv-abc123'
);

conversations.close

await client.conversations.close('ws-support-bot', 'conv-abc123');

Connectors

connectors.testMcp

const result = await client.connectors.testMcp({
  transport: 'http',
  url: 'http://localhost:3000/mcp'
});

if (result.ok) {
  console.log(`Found ${result.tools} tools: ${result.toolNames?.join(', ')}`);
}

connectors.addMcp

await client.connectors.addMcp({
  workspace_id: 'ws-support-bot',
  name: 'order-service',
  transport: 'http',
  url: 'http://localhost:3000/mcp'
});