Overview

All API calls to your Pinecone index authenticate with an API key for the project containing the target index. If you are using a Pinecone client, you can initialize a client object, which allows you to provide your API key in one place and use it multiple times. If you are making HTTP requests with a tool like cURL, the HTTP request must include a header that specifies the API key. This topic describes each method.

Find your Pinecone API key

  1. Open the Pinecone console.
  2. Select your project.
  3. Go to API Keys.
  4. Copy your API key.

Initialize a client

To initialize a client with your API key, use the following code:

from pinecone import Pinecone

pc = Pinecone(api_key="YOUR_API_KEY")

Function calls with this client use the authentication information provided at initialization. For example:

# Creates an index using the API key stored in the client 'pc'.
pc.create_index(
    name="docs-auth-index",
    dimension=8,
    metric="cosine",
    spec=ServerlessSpec(
        cloud='aws', 
        region='us-east-1'
    ) 
) 

Add headers to an HTTP request

When issuing an HTTP request to Pinecone, each request must contain an Api-Key header that specifies a valid API key and must be encoded as JSON with the Content-Type: application/json header.

curl
curl -s -X POST "https://api.pinecone.io/indexes" \
   -H "Content-Type: application/json" \
   -H "Api-Key: YOUR_API_KEY" \
   -d '{
         "name":  "docs-auth-index",
         "dimension": 8,
         "metric": "cosine",
         "spec": {
            "serverless": {
               "cloud":"aws",
               "region": "us-east-1"
            }
         }
      }'

See also