Skip to content

JS Sandbox API

Run JavaScript inside a managed isolate. Useful as a tool target for agents or for ad-hoc data shaping without spinning up your own runtime.

Execute a snippet

typescript
const exec = await client.jsSandbox.execute({
  code: `
    const total = variables.numbers.reduce((a, b) => a + b, 0);
    return { total, count: variables.numbers.length };
  `,
  variables: { numbers: [1, 2, 3, 4] },
  timeoutMs: 5_000,
});

console.log(exec.status);   // 'success'
console.log(exec.result);   // { total: 10, count: 4 }
console.log(exec.logs);     // captured console.* calls
console.log(exec.durationMs);

List or inspect runtimes

typescript
const runtimes = await client.jsSandbox.runtimes.list();
const def = await client.jsSandbox.runtimes.get('node-22-default');

Types

typescript
interface JsSandboxExecuteRequest {
  runtimeKey?: string;
  code: string;
  variables?: Record<string, unknown>;
  timeoutMs?: number;
  metadata?: Record<string, unknown>;
}

interface JsSandboxExecutionResult {
  executionId: string;
  runtimeKey: string;
  status: 'success' | 'error' | 'timeout' | string;
  durationMs?: number;
  result?: unknown;
  logs?: Array<{ level: string; message: string; args?: unknown[]; timestamp?: string }>;
  errorMessage?: string;
}

Released under the MIT License.