Skip to main content
This feature is in public preview and available only on Standard and Enterprise plans.
This page describes how to integrate Pinecone with Azure Blob Storage. After setting up an integration, you can import data from an Azure Blob Storage container into a Pinecone index hosted on AWS, GCP, or Azure.

Before you begin

Ensure you have the following:

1. Create an app registration and service principal

Pinecone uses a service principal to access your Azure Blob Storage container.
  1. Create an app registration for your Pinecone integration. This automatically creates a service principal. When creating your app registration:
    • Do not specify a Redirect URI.
    • Copy the Application (client) ID and the Directory (tenant) ID. You’ll use these values when adding a storage integration in Pinecone.
  2. Create a client secret for the service principal. Copy the secret’s Value (not its ID). You’ll use this when creating a storage integration in Pinecone.

2. Grant access to the storage account

Assign the service principal to your storage account:
  1. In the Azure portal, navigate to the subscription associated with your storage account.
  2. Select Access control (IAM).
  3. Click Add > Add role assignment.
  4. Select Storage Blob Data Reader or another role that has permission to list and read blobs in a container.
  5. Click Next.
  6. Select User, group, or service principal and click Select members.
  7. Select the app you created in the previous step.
  8. Click Review + assign (you may need to click this twice).

3. In Pinecone, add a storage integration

You can add a storage integration in the Pinecone console or with the API.

Use the console

In the Pinecone console, add an integration with Azure Blob Storage:
  1. Select your project.
  2. Go to Manage > Storage integrations.
  3. Click Add integration.
  4. Enter a unique integration name.
  5. Select Azure Blob Storage.
  6. For Tenant ID, Client ID, and Client secret, enter the values you copied from Azure.
  7. Click Add integration.

Use the API

This endpoint requires X-Pinecone-Api-Version: unstable. Unstable endpoints can change without notice.
Pass the values you copied from Azure as the azure_app_credentials field:
curl
Replace TENANT_ID, CLIENT_ID, and CLIENT_SECRET with the values you copied from Azure, and my-azure-integration with a unique name for the integration. The response includes the integration’s id, which you need to import data, and a status of Validated or Invalid. If the credentials are invalid, the request still succeeds and the integration is created with a status of Invalid, so check the status before you import.

Next steps

Import data from your Azure Blob Storage container into your Pinecone index.