NewMCP ServerView docs
API

JavaScript SDK

Official Node.js/TypeScript SDK for LH42 with Promise-based API and full type definitions.

7 min readUpdated 2026-01-19

JavaScript SDK

The official JavaScript/TypeScript SDK for LH42.

Installation

bash
npm install @lakehouse42/sdk
# or
yarn add @lakehouse42/sdk
# or
pnpm add @lakehouse42/sdk

Quick Start

typescript
import { LakehouseClient } from '@lakehouse42/sdk';

const client = new LakehouseClient({
  apiKey: 'YOUR_API_KEY'
});

const results = await client.search({
  query: 'quarterly revenue'
});

results.forEach(r => console.log(`${r.title}: ${r.score}`));

TypeScript Support

Full TypeScript definitions included:

typescript
import {
  LakehouseClient,
  SearchResult,
  Document,
  SearchOptions
} from '@lakehouse42/sdk';

const options: SearchOptions = {
  query: 'quarterly revenue',
  limit: 10,
  options: {
    retrieval: 'hybrid',
    rerank: true
  }
};

const results: SearchResult[] = await client.search(options);

Error Handling

typescript
import { LakehouseError, RateLimitError } from '@lakehouse42/sdk';

try {
  const results = await client.search({ query: '...' });
} catch (error) {
  if (error instanceof RateLimitError) {
    console.log(`Retry after ${error.retryAfter}s`);
  } else if (error instanceof LakehouseError) {
    console.log(`API error: ${error.message}`);
  }
}

Browser Usage

For client-side applications, use the lightweight client:

typescript
import { LakehouseBrowserClient } from '@lakehouse42/sdk/browser';

// Note: Never expose API keys in browser code
// Use a server proxy instead

Streaming

typescript
const stream = await client.chat.completions.create({
  messages: [{ role: 'user', content: 'Hello' }],
  stream: true
});

for await (const chunk of stream) {
  process.stdout.write(chunk.content);
}