Skip to main content

Translation Sessions Guide

This guide covers accessing translation session logs using the WIIL Platform JS SDK. Translation sessions represent records of translation operations performed by the AI system.

Quick Start​

import { WiilClient } from 'wiil-js';

const client = new WiilClient({
apiKey: 'your-api-key',
});

// List translation sessions
const result = await client.translationSessions.list();

console.log('Total sessions:', result.meta.totalCount);
result.data.forEach(session => {
console.log(`- ${session.id}: ${session.sourceLanguage} -> ${session.targetLanguage}`);
});

Architecture Overview​

Translation sessions are a read-only resource that provides:

  • Session Logs: Records of completed translation operations
  • Language Tracking: Source and target language for each session
  • Audit Trail: Historical record for compliance and analysis

Operations​

List Translation Sessions​

// List with default pagination
const result = await client.translationSessions.list();

console.log('Total sessions:', result.meta.totalCount);
console.log('Page:', result.meta.page, 'of', result.meta.totalPages);

result.data.forEach(session => {
console.log(`Session ${session.id}:`);
console.log(` Source: ${session.sourceLanguage}`);
console.log(` Target: ${session.targetLanguage}`);
});

List with Custom Pagination​

const result = await client.translationSessions.list({
page: 2,
pageSize: 50,
sortBy: 'createdAt',
sortDirection: 'desc',
});

console.log(`Page ${result.meta.page} of ${result.meta.totalPages}`);
console.log(`Showing ${result.data.length} of ${result.meta.totalCount} sessions`);

Get Translation Session by ID​

const session = await client.translationSessions.get('session_123');

console.log('Session ID:', session.id);
console.log('Source Language:', session.sourceLanguage);
console.log('Target Language:', session.targetLanguage);
console.log('Created At:', new Date(session.createdAt).toISOString());

Complete Example​

import { WiilClient } from 'wiil-js';

const client = new WiilClient({
apiKey: process.env.WIIL_API_KEY!,
});

async function exploreTranslationSessions() {
// 1. List all translation sessions
const allSessions = await client.translationSessions.list({
page: 1,
pageSize: 100,
});

console.log('Total translation sessions:', allSessions.meta.totalCount);

if (allSessions.data.length === 0) {
console.log('No translation sessions available');
return;
}

// 2. Analyze language pairs
const languagePairs = new Map<string, number>();

allSessions.data.forEach(session => {
const pair = `${session.sourceLanguage} -> ${session.targetLanguage}`;
languagePairs.set(pair, (languagePairs.get(pair) || 0) + 1);
});

console.log('\nLanguage pair distribution:');
languagePairs.forEach((count, pair) => {
console.log(` ${pair}: ${count} sessions`);
});

// 3. Get details of a specific session
const sessionId = allSessions.data[0].id;
const sessionDetails = await client.translationSessions.get(sessionId);

console.log('\nSession details:');
console.log(' ID:', sessionDetails.id);
console.log(' Source:', sessionDetails.sourceLanguage);
console.log(' Target:', sessionDetails.targetLanguage);
}

exploreTranslationSessions().catch(console.error);

Best Practices​

  1. Use pagination for large datasets - Translation sessions can accumulate quickly. Always use pagination to avoid loading too much data.

  2. Sort by createdAt for recent sessions - Use sortBy: 'createdAt' with sortDirection: 'desc' to get the most recent sessions first.

  3. Check for empty results - Always check if data.length > 0 before accessing session details.

Troubleshooting​

Session Not Found​

Error:

WiilAPIError: Translation session not found

Solution: Verify the session ID exists by listing available sessions first:

const sessions = await client.translationSessions.list();

if (sessions.data.length > 0) {
const session = await client.translationSessions.get(sessions.data[0].id);
console.log('Session found:', session.id);
} else {
console.log('No translation sessions available');
}

No Sessions Available​

If no translation sessions exist, they will be created automatically as translation operations occur through the platform. Translation sessions are generated by:

  • Real-time translation services
  • Translation provisioning chains
  • Multi-language agent interactions