Python SDK
JavaScript/TypeScript SDK
Go SDK
Supported SDK versions
The examples use these stable releases, which include data versioning and all 16 text analyzers:
Python SDK 0.10.0 requires Python 3.10–3.13. If you use Python 3.9, stay on
lambdadb==0.9.0 until upgrading Python; that release does not include the additional analyzer names. Go SDK 0.5.0 requires Go 1.22 or later. Server support is also required for the features you use.
Data versioning support
The minimum stable versions for collection, branch, tag, and alias APIs remain Python 0.9.0, JavaScript/TypeScript 0.5.1, and Go 0.4.0. Use the recommended releases above when you also need the expanded analyzer set. Start with the SDK examples to create a branch, write to it, and read from a selected ref. The language-specific guides cover tags, aliases, pagination, and bulk uploads. Python also provides async methods; JavaScript/TypeScript uses promises and async iterators, while Go usescontext.Context.
For analyzer support through the SDKs, CLI, and MCP server, see analyzer SDK compatibility.
REST timestamps use Unix epoch milliseconds. Python exposes numeric timestamps with datetime helpers such as created_at_dt; the TypeScript collection-scoped client returns Date values; Go provides time getters. Branch parent and snapshot fields can be null, so check them before accessing their fields.
Compatibility clients
Qdrant SDK compatibility
Use Qdrant-style Python and TypeScript clients during Qdrant-to-LambdaDB application migrations.
MCP
If you want to use LambdaDB from an MCP client such as Claude Desktop, see the MCP guide:Use with MCP
Client lifecycle
Python:
LambdaDB supports context manager usage. __enter__ returns the client, and __exit__ calls client.close() (closing the SDK-owned HTTP client) and makes the client unusable after the with block. If you don’t use with, call client.close() when you’re done. If you pass a custom client=/async_client=, you own closing it.JavaScript/TypeScript: the SDK uses the platform
fetch API and does not expose a close() method. In most environments there’s nothing to close explicitly. To cancel requests, pass an AbortSignal (for example via request fetchOptions.signal). If you provide your own fetch/HTTP implementation to the SDK, you own its lifecycle.Go: the SDK uses
net/http and does not require an explicit Close() in typical usage. Responses are closed internally. If you provide a custom http.Client/Transport, you own its lifecycle (for example, managing idle connections) and should shut it down according to your application’s needs.