Setting Up Pinecone Environment

1. Installing Pinecone Client

LanguagePackageInstall Command
Pythonpinecone v5+pip install pinecone
Python (gRPC)pinecone[grpc]pip install "pinecone[grpc]"
Node.js@pinecone-database/pinecone v4+npm install @pinecone-database/pinecone
Javaio.pinecone:pinecone-clientMaven/Gradle dependency
Gogithub.com/pinecone-io/go-pineconego get github.com/pinecone-io/go-pinecone/pinecone
.NETPinecone.NETdotnet add package Pinecone.NET
Note: Package renamed from pinecone-client to pinecone in v3.0. Uninstall the old package first to avoid conflicts.

2. Configuring API Key

MethodUsageSecurity Level
Env variableexport PINECONE_API_KEY="..."Recommended
.env fileLoad via python-dotenv / dotenvGood (gitignore)
Secret managerAWS Secrets Manager, GCP Secret Manager, VaultBest (prod)
HardcodedInline string literalNever

3. Initializing Pinecone Client

Example: Python Initialization

from pinecone import Pinecone
import os

pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
indexes = pc.list_indexes()

Example: Node.js Initialization

import { Pinecone } from "@pinecone-database/pinecone";

const pc = new Pinecone({ apiKey: process.env.PINECONE_API_KEY! });
const indexes = await pc.listIndexes();
ParamDescription
api_keyRequired project API key
pool_threadsConcurrent request workers (Python)
source_tagUser-agent tag for tracking

4. Setting Up Project and Environment

ConceptDescription
ProjectTop-level container; one or more indexes, one API key per project
OrganizationBilling + project grouping; multiple projects per org
EnvironmentPod-based: region+cloud (e.g., us-east-1-aws). Serverless: implicit via index spec
API Key ScopeScoped to a single project; cannot cross projects

5. Verifying Connection

Example: Health Check

try:
    indexes = pc.list_indexes()
    print(f"Connected. Found {len(indexes.names())} indexes")
except Exception as e:
    print(f"Connection failed: {e}")
CheckAPI Call
List indexespc.list_indexes()
Describe indexpc.describe_index("name")
Statsindex.describe_index_stats()

6. Configuring Timeout Settings

SettingPythonDefault
Request timeoutPinecone(api_key=..., pool_threads=30)20s
Index timeoutindex.query(..., timeout=10)None
Connection poolpool_threads param30

7. Setting Up Proxy Configuration

Example: Proxy Setup (Python)

from pinecone import Pinecone

pc = Pinecone(
    api_key="...",
    proxy_url="http://proxy.corp.com:8080",
    ssl_ca_certs="/path/to/ca-bundle.crt",
)
ParamDescription
proxy_urlHTTP/HTTPS proxy URL with credentials
ssl_ca_certsCustom CA bundle for corporate proxies
ssl_verifyDisable cert verification (dev only)

8. Configuring Regional Endpoints

CloudRegions (Serverless)
AWSus-east-1, us-west-2, eu-west-1
GCPus-central1, europe-west4
Azureeastus2

9. Setting Up SSL/TLS Verification

Warning: Never disable SSL verification in production. Always use a proper CA bundle for corporate proxies.
SettingUse Case
ssl_verify=TrueProduction (default)
ssl_ca_certs="path"Custom CA / corporate proxy
ssl_verify=FalseLocal dev only UNSAFE

10. Managing API Key Rotation

Rotation Steps

  1. Generate new API key in Pinecone console.
  2. Deploy new key to secret store (staging first).
  3. Restart services; verify health checks pass.
  4. Monitor old key usage (audit logs) for 24-48h.
  5. Revoke old key once traffic confirms zero usage.
FrequencyRecommendation
ProductionEvery 90 days
After exposureImmediate
Team offboardingImmediate