Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

On this pageOverview

Pinecone Node.js SDK

Install and use the Pinecone Node.js and TypeScript SDK to manage indexes, upsert vectors, run semantic search, and call the Admin and Inference APIs.

The Pinecone Node SDK requires TypeScript 4.1 or later and Node 18.x or later.

SDK versions are pinned to specific API versions. When a new API version is released, a new version of the SDK is also released.

The mappings between API versions and Node.js SDK versions are as follows:

API version SDK version
2026-04 v8.x
2025-10 v7.x
2025-04 v6.x
2025-01 v5.x
2024-10 v4.x
2024-07 v3.x
2024-04 v2.x

When a new stable API version is released, you should upgrade your SDK to the latest version to ensure compatibility with the latest API changes.

To install the latest version of the Node.js SDK, written in TypeScript, run the following command:

Shell
npm install @pinecone-database/pinecone

To check your SDK version, run the following command:

Shell
npm list | grep @pinecone-database/pinecone

If you already have the Node.js SDK, upgrade to the latest version as follows:

Shell
npm install @pinecone-database/pinecone@latest

Once installed, you can import the library and then use an API key to initialize a client instance:

JavaScript
import { Pinecone } from '@pinecone-database/pinecone';

const pc = new Pinecone({
    apiKey: 'YOUR_API_KEY'
});

To manage organizations, projects, API keys, and role-based access control, initialize an AdminClient with service account credentials instead. This requires v8.2.0 or later:

JavaScript
import { AdminClient } from '@pinecone-database/pinecone';

// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();

You can also pass clientId and clientSecret directly to the constructor instead of setting environment variables.

If your network setup requires you to interact with Pinecone through a proxy, you can pass a custom ProxyAgent from the undici library. Below is an example of how to construct an undici ProxyAgent that routes network traffic through a mitm proxy server while hitting Pinecone's /indexes endpoint.

JavaScript
import {
  Pinecone,
  type PineconeConfiguration,
} from '@pinecone-database/pinecone';
import { Dispatcher, ProxyAgent } from 'undici';
import * as fs from 'fs';

const cert = fs.readFileSync('path/to/mitmproxy-ca-cert.pem');

const client = new ProxyAgent({
  uri: 'https://your-proxy.com',
  requestTls: {
    port: 'YOUR_PROXY_SERVER_PORT',
    ca: cert,
    host: 'YOUR_PROXY_SERVER_HOST',
  },
});

const customFetch = (
  input: string | URL | Request,
  init: RequestInit | undefined
) => {
  return fetch(input, {
    ...init,
    dispatcher: client as Dispatcher,
    keepalive: true,  # optional
  });
};

const config: PineconeConfiguration = {
  apiKey:
    'YOUR_API_KEY',
  fetchApi: customFetch,
};

const pc = new Pinecone(config);

const indexes = async () => {
  return await pc.listIndexes();
};

indexes().then((response) => {
  console.log('My indexes: ', response);
});
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu