Each Pinecone [project](/guides/admin-assistant-projects-overview) has one or more API keys. To [make calls to the Pinecone API](/guides/get-started-assistant-quickstart-sdk-quickstart), you must provide a valid API key for the relevant Pinecone project.

This page shows you how to [create](#create-an-api-key), [view](#view-project-api-keys), [update](#update-an-api-key), and [delete](#delete-an-api-key) API keys.

:::callout{intent="warning"}
If you use custom API key permissions, ensure that you [target your index by host](/guides/manage-data-target-an-index#target-by-index-host-recommended) when performing data operations such as `upsert` and `query`.
:::

## Create an API key

You can create a new API key for your project, as follows:

:::::tabs
::::tab{title="Pinecone console"}
1. Open the [Pinecone console](https://app.pinecone.io/organizations/-/projects).

2. Select your project.

3. Go to **API keys**.

4. Click **Create API key**.

5. Enter an **API key name**.

6. Select the **Permissions** to grant to the API key. For a description of the permission roles, see [Project roles](/guides/admin-assistant-projects-overview#project-roles).

   :::callout{intent="note"}
   Users on the Starter and Builder plans can set the permissions to **All** only. To customize the permissions further, [upgrade to the Standard or Enterprise plan](/guides/admin-assistant-upgrade-billing-plan).
   :::

7. Click **Create key**.

8. Copy and save the generated API key in a secure place for future use.

   :::callout{intent="warning"}
   You will not be able to see the API key again after you close the dialog.
   :::

9. Click **Close**.
::::

::::tab{title="Code"}
:::callout{intent="note"}
An [access token](/guides/admin-assistant-manage-organization-service-accounts#retrieve-an-access-token) must be provided to complete this action through the Admin API. The Admin API is in [public preview](/guides/changelog-feature-availability).
:::

:::code-group
```bash curl theme={null}
PINECONE_PROJECT_ID="YOUR_PROJECT_ID"
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"

curl -X POST "https://api.pinecone.io/admin/projects/$PINECONE_PROJECT_ID/api-keys" \
     -H "X-Pinecone-Api-Version: 2026-07" \
     -H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
     -d '{
           "name": "example-api-key",
           "roles": ["ProjectEditor"]
         }'
```

```bash CLI theme={null}
# Target the project for which you want to create an API key.
pc target -o "example-org" -p "example-project"
# Create the API key
pc api-key create -n "example-api-key" --roles ProjectEditor
```
:::

The example returns a response like the following:

:::code-group
```json curl theme={null}
{
  "key": {
    "id": "62b0dbfe-3489-4b79-b850-34d911527c88",
    "name": "example-api-key",
    "project_id": "32c8235a-5220-4a80-a9f1-69c24109e6f2",
    "roles": [
      "ProjectEditor"
    ],
    "created_at": "2025-10-20T23:40:27.069075Z"
  },
  "value": "..."
}
```

```text CLI theme={null}
ATTRIBUTE     VALUE
Name          example-api-key
ID            62b0dbfe-3489-4b79-b850-34d911527c88
Value         ...
Project ID    32c8235a-5220-4a80-a9f1-69c24109e6f2
Roles         ProjectEditor
```
:::
::::
:::::

## View project API keys

You can [view the API keys](/guides/admin-2-2026-04-admin-assistant-list-api-keys) for your project:

:::::tabs
:::tab{title="Pinecone console"}
1. Open the [Pinecone console](https://app.pinecone.io/organizations/-/projects).
2. Select your project.
3. Go to the **API keys** tab.

You will see a list of all API keys for the project, including their names, IDs, and permissions.
:::

::::tab{title="Code"}
:::callout{intent="note"}
An [access token](/guides/admin-assistant-manage-organization-service-accounts#retrieve-an-access-token) must be provided to complete this action through the Admin API. The Admin API is in [public preview](/guides/changelog-feature-availability).
:::

:::code-group
```bash curl theme={null}
PINECONE_PROJECT_ID="32c8235a-5220-4a80-a9f1-69c24109e6f2"
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"

curl -X GET "https://api.pinecone.io/admin/projects/$PINECONE_PROJECT_ID/api-keys" \
     -H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
     -H "X-Pinecone-Api-Version: 2026-07"
```

```bash CLI theme={null}
PINECONE_PROJECT_ID="32c8235a-5220-4a80-a9f1-69c24109e6f2"

pc api-key list -i $PINECONE_PROJECT_ID
```
:::

The example returns a response like the following:

:::code-group
```json curl theme={null}
{
  "data": [
    {
      "id": "62b0dbfe-3489-4b79-b850-34d911527c88",
      "name": "example-api-key",
      "project_id": "32c8235a-5220-4a80-a9f1-69c24109e6f2",
      "roles": [
        "ProjectEditor"
      ],
      "created_at": "2025-10-20T23:39:43.665754Z"
    },
    {
      "id": "0d0d3678-81b4-4e0d-a4f0-70ba488acfb7",
      "name": "example-api-key-2",
      "project_id": "32c8235a-5220-4a80-a9f1-69c24109e6f2",
      "roles": [
        "ProjectEditor"
      ],
      "created_at": "2025-10-20T23:43:13.176422Z"
    }
  ]
}
```

```text CLI theme={null}
Organization: example-organization (ID: -NM7af6f234168c4e44a)
Project: example-project (ID: 32c8235a-5220-4a80-a9f1-69c24109e6f2)

API Keys

NAME                 ID                                      PROJECT ID                              ROLES
example-api-key      62b0dbfe-3489-4b79-b850-34d911527c88    32c8235a-5220-4a80-a9f1-69c24109e6f2    ProjectEditor
example-api-key-2    0d0d3678-81b4-4e0d-a4f0-70ba488acfb7    32c8235a-5220-4a80-a9f1-69c24109e6f2    ProjectEditor
```
:::
::::
:::::

## View API key details

You can [view the details of an API key](/guides/admin-2-2026-04-admin-assistant-fetch-api-key):

:::::tabs
:::tab{title="Pinecone console"}
1. Open the [Pinecone console](https://app.pinecone.io/organizations/-/projects).
2. Select your project.
3. Go to the **API keys** tab.
4. In the row of the API key you want to change, in the **Actions** column, click **ellipsis (...) menu > Settings**.

You will see the API key's name, ID, and permissions.
:::

::::tab{title="Code"}
:::callout{intent="note"}
An [access token](/guides/admin-assistant-manage-organization-service-accounts#retrieve-an-access-token) must be provided to complete this action through the Admin API. The Admin API is in [public preview](/guides/changelog-feature-availability).
:::

:::code-group
```bash curl theme={null}
PINECONE_API_KEY_ID="62b0dbfe-3489-4b79-b850-34d911527c88"
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"

curl -X GET "https://api.pinecone.io/admin/api-keys/$PINECONE_API_KEY_ID" \
     -H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
     -H "accept: application/json" \
     -H "X-Pinecone-Api-Version: 2026-07"
```

```bash CLI theme={null}
PINECONE_API_KEY_ID="62b0dbfe-3489-4b79-b850-34d911527c88"

pc api-key describe -i $PINECONE_API_KEY_ID
```
:::

The example returns a response like the following:

:::code-group
```json curl theme={null}
{
  "id": "62b0dbfe-3489-4b79-b850-34d911527c88",
  "name": "example-api-key",
  "project_id": "32c8235a-5220-4a80-a9f1-69c24109e6f2",
  "roles": [
    "ProjectEditor"
  ],
  "created_at": "2025-10-22T19:27:21.202955Z"
}
```

```text CLI theme={null}
ATTRIBUTE     VALUE
Name          example-api-key
ID            62b0dbfe-3489-4b79-b850-34d911527c88
Project ID    32c8235a-5220-4a80-a9f1-69c24109e6f2
Roles         ProjectEditor
```
:::
::::
:::::

## Update an API key

:::callout{intent="note"}
Users on the Starter and Builder plans can't change API key permissions once they're set. Instead, [create a new API key](#create-an-api-key) or [upgrade to the Standard or Enterprise plan](/guides/admin-assistant-upgrade-billing-plan).
:::

If you are a [project owner](/guides/admin-assistant-projects-overview#project-roles), you can update the name and roles of an API key:

:::::tabs
:::tab{title="Pinecone console"}
1. Open the [Pinecone console](https://app.pinecone.io/organizations/-/projects).

2. Select your project.

3. Go to the **API keys** tab.

4. In the row of the API key you want to change, in the **Actions** column, click **ellipsis (...) menu > Settings**.

5. Change the name and/or permissions for the API key as needed.

   For information about the different API key permissions, refer to [Project roles](/guides/admin-assistant-projects-overview#project-roles).

6. Click **Update**.
:::

::::tab{title="Code"}
:::callout{intent="note"}
An [access token](/guides/admin-assistant-manage-organization-service-accounts#retrieve-an-access-token) must be provided to complete this action through the Admin API. The Admin API is in [public preview](/guides/changelog-feature-availability).
:::

:::code-group
```bash curl theme={null}
PINECONE_API_KEY_ID="62b0dbfe-3489-4b79-b850-34d911527c88"
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"

curl -X PATCH "https://api.pinecone.io/admin/api-keys/$PINECONE_API_KEY_ID" \
     -H "X-Pinecone-Api-Version: 2026-07" \
     -H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
     -d '{
           "name": "new-api-key-name",
           "roles": ["ProjectEditor"]
         }'
```

```bash CLI theme={null}
PINECONE_API_KEY_ID="62b0dbfe-3489-4b79-b850-34d911527c88"

# Target the organization that contains the API key.
pc target -o "example-org"
# Update the API key name.
pc api-key update -i $PINECONE_API_KEY_ID -n "new-api-key-name"
```
:::

The example returns a response like the following:

:::code-group
```json curl theme={null}
{
  "id": "62b0dbfe-3489-4b79-b850-34d911527c88",
  "name": "new-api-key-name",
  "project_id": "32c8235a-5220-4a80-a9f1-69c24109e6f2",
  "roles": [
    "ProjectEditor"
  ],
  "created_at": "2025-10-22T19:27:21.202955Z"
}
```

```text CLI theme={null}
ATTRIBUTE     VALUE
Name          new-api-key-name
ID            62b0dbfe-3489-4b79-b850-34d911527c88
Project ID    32c8235a-5220-4a80-a9f1-69c24109e6f2
Roles         ProjectEditor
```
:::
::::
:::::

## Delete an API key

If you are a [project owner](/guides/admin-assistant-projects-overview#project-roles), you can delete your API key:

:::::tabs
::::tab{title="Pinecone console"}
1. Open the [Pinecone console](https://app.pinecone.io/organizations/-/projects).
2. Select your project.
3. Go to the **API keys** tab.
4. In the row of the API key you want to change, in the **Actions** column, click **ellipsis (...) menu > Delete**.
5. Enter the **API key name**.
6. Click **Confirm deletion**.

   :::callout{intent="warning"}
   Deleting an API key is irreversible and will immediately disable any applications using the API key.
   :::
::::

::::tab{title="Code"}
:::callout{intent="note"}
An [access token](/guides/admin-assistant-manage-organization-service-accounts#retrieve-an-access-token) must be provided to complete this action through the Admin API. The Admin API is in [public preview](/guides/changelog-feature-availability).
:::

:::code-group
```bash curl theme={null}
PINECONE_API_KEY_ID="62b0dbfe-3489-4b79-b850-34d911527c88"
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"

curl -X DELETE "https://api.pinecone.io/admin/api-keys/$PINECONE_API_KEY_ID" \
     -H "X-Pinecone-Api-Version: 2026-07" \
     -H "Authorization: Bearer $PINECONE_ACCESS_TOKEN"
```

```bash CLI theme={null}
PINECONE_API_KEY_ID="62b0dbfe-3489-4b79-b850-34d911527c88"

# Delete the API key. Use --skip-confirmation to skip
# the confirmation prompt.
pc api-key delete -i $PINECONE_API_KEY_ID
```
:::

The example returns a response like the following:

:::code-group
```text curl theme={null}
No response payload
```

```text CLI theme={null}
[WARN] This operation will delete API key example-api-key from project example-project.
[WARN] Any integrations that authenticate with this API key will immediately stop working.
[WARN] This action cannot be undone.
Do you want to continue? (y/N): y
[INFO] You chose to continue delete.
[SUCCESS] API key example-api-key deleted
```
:::
::::
:::::

## Related pages

- [Understanding projects](./admin-projects-understanding-projects.md)
- [Create a project](./admin-projects-create-a-project.md)
- [Manage projects](./admin-projects-manage-projects.md)
- [Manage project members](./admin-projects-manage-project-members.md)
- [Manage API keys](./admin-projects-manage-api-keys.md)
- [Manage service accounts at the project-level](./admin-projects-manage-service-accounts.md)
- [Projects overview](./admin-assistant-projects-overview.md)
- [Create a project](./admin-assistant-create-a-project.md)
- [Manage projects](./admin-assistant-manage-projects.md)
- [Manage project members](./admin-assistant-manage-project-members.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
