Skip to main content
POST
/
oauth
/
token
PINECONE_CLIENT_ID="YOUR_CLIENT_ID"
PINECONE_CLIENT_SECRET="YOUR_CLIENT_SECRET"

# NOTES:
# - Base URL is login.pinecone.io. 
# - When including environment variables (as shown here), 
#   surround the request body in double quotes (not single
#   quotes). Then, in the JSON, escape double quotes with
#   a backslash.
curl -X POST "https://login.pinecone.io/oauth/token" \
     -H "X-Pinecone-Api-Version: 2025-04" \
     -H "Content-Type: application/json" \
     -d "{
           \"grant_type\": \"client_credentials\",
           \"client_id\": \"$PINECONE_CLIENT_ID\",
           \"client_secret\": \"$PINECONE_CLIENT_SECRET\",
           \"audience\": \"https://api.pinecone.io/\"
         }"
{
  "access_token": "...",
  "expires_in": 1800,
  "token_type": "Bearer"
}
PINECONE_CLIENT_ID="YOUR_CLIENT_ID"
PINECONE_CLIENT_SECRET="YOUR_CLIENT_SECRET"

# NOTES:
# - Base URL is login.pinecone.io. 
# - When including environment variables (as shown here), 
#   surround the request body in double quotes (not single
#   quotes). Then, in the JSON, escape double quotes with
#   a backslash.
curl -X POST "https://login.pinecone.io/oauth/token" \
     -H "X-Pinecone-Api-Version: 2025-04" \
     -H "Content-Type: application/json" \
     -d "{
           \"grant_type\": \"client_credentials\",
           \"client_id\": \"$PINECONE_CLIENT_ID\",
           \"client_secret\": \"$PINECONE_CLIENT_SECRET\",
           \"audience\": \"https://api.pinecone.io/\"
         }"
{
  "access_token": "...",
  "expires_in": 1800,
  "token_type": "Bearer"
}

Body

A request to exchange client credentials for an access token.

A request to obtain an access token.

client_id
string
required

The service account's client ID.

client_secret
string
required

The service account's client secret.

grant_type
enum<string>
required

The type of grant to use.

Available options:
client_credentials
audience
enum<string>
required

The audience for the token.

Available options:
https://api.pinecone.io/

Response

A response that contains the access token.

access_token
string
required

The access token.

token_type
enum<string>
required

The type of token.

Available options:
Bearer
expires_in
integer
required

The number of seconds until the token expires.