Appearance
API Reference
Complete reference for all SDK methods.
Prompts
prompts.list()
List all prompts.
typescript
const { data: prompts } = await converra.prompts.list();prompts.get(id, options?)
Get a specific prompt (cached by default).
typescript
const prompt = await converra.prompts.get('prompt_123');
// Bypass cache
const fresh = await converra.prompts.get('prompt_123', { bypassCache: true });prompts.create(data)
Create a new prompt.
typescript
const prompt = await converra.prompts.create({
name: 'Customer Support',
content: 'You are a helpful customer support agent...',
description: 'Main support chatbot prompt',
tags: ['support', 'production']
});prompts.update(id, data)
Update an existing prompt.
typescript
await converra.prompts.update('prompt_123', {
content: 'Updated prompt content...'
});Conversations
conversations.create(data)
Log a conversation for insights and optimization.
typescript
await converra.conversations.create({
promptId: 'prompt_123',
content: `User: I need help with my order
Assistant: I'd be happy to help! Could you provide your order number?
User: It's #12345
Assistant: Found it! Your order is scheduled for delivery tomorrow.`,
llmModel: 'gpt-4',
status: 'completed'
});conversations.getInsights(id)
Get insights for a specific conversation.
typescript
const insights = await converra.conversations.getInsights('conv_456');
console.log(insights.sentiment); // 'positive'
console.log(insights.topics); // ['order tracking', 'delivery']Optimizations
optimizations.trigger(data)
Start an optimization process.
typescript
const optimization = await converra.optimizations.trigger({
promptId: 'prompt_123',
mode: 'exploratory', // 'validation' for statistical rigor
variantCount: 3,
intent: {
targetImprovements: ['clarity', 'task completion'],
hypothesis: 'Adding examples will improve understanding'
}
});optimizations.get(id)
Get optimization status and details.
typescript
const status = await converra.optimizations.get(optimization.id);
console.log(status.progress);optimizations.getVariants(id)
Get variants being tested.
typescript
const variants = await converra.optimizations.getVariants(optimization.id);
variants.forEach(v => {
console.log(`${v.name}: ${v.metrics?.lift}% lift`);
});optimizations.applyVariant(id, variantId?)
Apply the winning variant (or a specific variant).
typescript
await converra.optimizations.applyVariant(optimization.id);Insights
insights.forPrompt(id, options?)
Get aggregated insights for a prompt.
typescript
const insights = await converra.insights.forPrompt('prompt_123', {
days: 30
});
console.log(`Task completion: ${insights.metrics.taskCompletionRate}%`);
console.log(`Avg sentiment: ${insights.metrics.avgSentiment}`);insights.overall(options?)
Get insights across all prompts.
typescript
const overall = await converra.insights.overall({ days: 7 });Personas
personas.list(options?)
List simulation personas.
typescript
const { data: personas } = await converra.personas.list({
tags: ['enterprise', 'frustrated']
});personas.create(data)
Create a custom persona.
typescript
await converra.personas.create({
name: 'Impatient Executive',
description: 'A busy C-level executive who values brevity...',
tags: ['enterprise', 'impatient', 'executive']
});Webhooks
webhooks.create(data)
Register a webhook endpoint.
typescript
const webhook = await converra.webhooks.create({
url: 'https://your-app.com/webhooks/converra',
events: ['optimization.completed', 'prompt.updated'],
description: 'Production webhook'
});
// Save the secret!
console.log('Secret:', webhook.secret);Cache
cache.invalidate(promptId)
Invalidate a cached prompt.
typescript
converra.cache.invalidate('prompt_123');cache.invalidateAll()
Clear all cached prompts.
typescript
converra.cache.invalidateAll();cache.stats()
Get cache statistics.
typescript
const stats = converra.cache.stats();
// { size: 5, enabled: true, ttl: 300000 }Error Handling
typescript
import { Converra, ConverraError } from 'converra';
try {
await converra.prompts.get('nonexistent');
} catch (error) {
if (error instanceof ConverraError) {
console.error(`Error ${error.code}: ${error.message}`);
console.error(`Status: ${error.statusCode}`);
console.error(`Details:`, error.details);
}
}TypeScript Types
typescript
import type {
Prompt,
Conversation,
Optimization,
WebhookPayload,
WebhookEvent,
PromptUpdatedPayload,
OptimizationCompletedPayload,
} from 'converra';