OpenAPI Specification
openapi: 3.0.3
info:
title: Pinecone Admin API Keys Projects API
description: 'Provides an API for managing a Pinecone organization and its resources.
'
contact:
name: Pinecone Support
url: https://support.pinecone.io
email: support@pinecone.io
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: 2025-10
servers:
- url: https://api.pinecone.io
description: Production API endpoints
security:
- BearerAuth: []
tags:
- name: Projects
description: Actions that manage projects.
paths:
/admin/projects:
get:
tags:
- Projects
summary: List projects
description: List all projects in an organization.
operationId: list_projects
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
responses:
'200':
description: A list of projects.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectList'
'401':
description: 'Unauthorized. Possible causes: Invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized:
summary: Unauthorized
value:
error:
code: UNAUTHENTICATED
message: Invalid API key.
status: 401
4XX:
description: Unexpected error on request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
summary: Internal server error
value:
error:
code: UNKNOWN
message: Internal server error
status: 500
post:
tags:
- Projects
summary: Create a new project
description: Creates a new project.
operationId: create_project
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
description: The details of the new project.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProjectRequest'
required: true
responses:
'200':
description: The project was successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
index-metric-validation-error:
summary: Validation error
value:
error:
code: INVALID_ARGUMENT
message: Bad request. The request body included invalid request parameters.
status: 400
'401':
description: 'Unauthorized. Possible causes: Invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized:
summary: Unauthorized
value:
error:
code: UNAUTHENTICATED
message: Invalid API key.
status: 401
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
4XX:
description: Unexpected error on request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
summary: Internal server error
value:
error:
code: UNKNOWN
message: Internal server error
status: 500
/admin/projects/{project_id}:
get:
tags:
- Projects
summary: Get project details
description: Get details about a project.
operationId: fetch_project
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: path
name: project_id
description: Project ID
required: true
schema:
type: string
format: uuid
style: simple
responses:
'200':
description: The details of a project.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'401':
description: 'Unauthorized. Possible causes: Invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized:
summary: Unauthorized
value:
error:
code: UNAUTHENTICATED
message: Invalid API key.
status: 401
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
4XX:
description: Unexpected error on request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
summary: Internal server error
value:
error:
code: UNKNOWN
message: Internal server error
status: 500
delete:
tags:
- Projects
summary: Delete a project
description: 'Delete a project and all its associated configuration.
Before deleting a project, you must delete all indexes, assistants, backups, and collections associated with the project. Other project resources, such as API keys, are automatically deleted when the project is deleted.
'
operationId: delete_project
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: path
name: project_id
description: Project ID
required: true
schema:
type: string
format: uuid
style: simple
responses:
'202':
description: Project deletion request accepted.
'401':
description: 'Unauthorized. Possible causes: Invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized:
summary: Unauthorized
value:
error:
code: UNAUTHENTICATED
message: Invalid API key.
status: 401
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
4XX:
description: Unexpected error on request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
summary: Internal server error
value:
error:
code: UNKNOWN
message: Internal server error
status: 500
patch:
tags:
- Projects
summary: Update a project
description: 'Update a project''s configuration details.
You can update the project''s name, maximum number of Pods, or enable encryption with a customer-managed encryption key (CMEK).
'
operationId: update_project
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: path
name: project_id
description: Project ID
required: true
schema:
type: string
format: uuid
style: simple
requestBody:
description: 'Project details to be updated. Fields that are omitted will not be updated.
'
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProjectRequest'
required: true
responses:
'200':
description: The project was successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
index-metric-validation-error:
summary: Validation error
value:
error:
code: INVALID_ARGUMENT
message: Bad request. The request body included invalid request parameters.
status: 400
'401':
description: 'Unauthorized. Possible causes: Invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized:
summary: Unauthorized
value:
error:
code: UNAUTHENTICATED
message: Invalid API key.
status: 401
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
4XX:
description: Unexpected error on request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
summary: Internal server error
value:
error:
code: UNKNOWN
message: Internal server error
status: 500
components:
schemas:
UpdateProjectRequest:
type: object
properties:
name:
example: chatbot-prod
description: The name of the new project.
type: string
minLength: 1
maxLength: 512
max_pods:
description: 'The maximum number of Pods that can be created in the project.
'
type: integer
force_encryption_with_cmek:
description: 'Whether to force encryption with a customer-managed encryption key (CMEK). Once enabled, CMEK encryption cannot be disabled.
'
type: boolean
CreateProjectRequest:
type: object
properties:
name:
example: chatbot-prod
description: The name of the new project.
type: string
minLength: 1
maxLength: 512
max_pods:
description: 'The maximum number of Pods that can be created in the project. Default is `0` (serverless only).
'
type: integer
force_encryption_with_cmek:
description: 'Whether to force encryption with a customer-managed encryption key (CMEK). Default is `false`.
'
type: boolean
required:
- name
ErrorResponse:
example:
error:
code: QUOTA_EXCEEDED
message: The index exceeds the project quota of 5 pods by 2 pods. Upgrade your account or change the project settings to increase the quota.
status: 429
description: The response shape used for all error responses.
type: object
properties:
status:
example: 500
description: The HTTP status code of the error.
type: integer
error:
example:
code: INVALID_ARGUMENT
message: Index name must contain only lowercase alphanumeric characters or hyphens, and must not begin or end with a hyphen.
description: Detailed information about the error that occurred.
type: object
properties:
code:
description: 'The error code.
Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`. '
x-enum:
- OK
- UNKNOWN
- INVALID_ARGUMENT
- DEADLINE_EXCEEDED
- QUOTA_EXCEEDED
- NOT_FOUND
- ALREADY_EXISTS
- PERMISSION_DENIED
- UNAUTHENTICATED
- RESOURCE_EXHAUSTED
- FAILED_PRECONDITION
- ABORTED
- OUT_OF_RANGE
- UNIMPLEMENTED
- INTERNAL
- UNAVAILABLE
- DATA_LOSS
- FORBIDDEN
- UNPROCESSABLE_ENTITY
type: string
message:
example: Index name must contain only lowercase alphanumeric characters or hyphens, and must not begin or end with a hyphen.
type: string
details:
description: Additional information about the error. This field is not guaranteed to be present.
type: object
required:
- code
- message
required:
- status
- error
ProjectList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Project'
required:
- data
Project:
description: The details of a project.
type: object
properties:
id:
description: The unique ID of the project.
type: string
format: uuid
name:
description: The name of the project.
type: string
minLength: 1
maxLength: 512
max_pods:
description: The maximum number of Pods that can be created in the project.
type: integer
force_encryption_with_cmek:
description: Whether to force encryption with a customer-managed encryption key (CMEK).
type: boolean
organization_id:
description: The unique ID of the organization that the project belongs to.
type: string
created_at:
description: The date and time when the project was created.
type: string
format: date-time
required:
- id
- name
- max_pods
- force_encryption_with_cmek
- organization_id
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: 'An [access token](https://docs.pinecone.io/guides/organizations/manage-service-accounts#retrieve-an-access-token) must be provided in the `Authorization` header using the `Bearer` scheme.
'