openapi: 3.0.3 info: title: Pinecone assistant control plane API description: 'Pinecone Assistant Engine is a context engine to store and retrieve relevant knowledge from millions of documents at scale. This API supports creating and managing assistants. ' 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: 2026-04 servers: - url: https://api.pinecone.io/assistant description: Production API endpoints paths: /assistants: get: tags: - Manage Assistants summary: List assistants description: |- List of all assistants in a project. For guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project). operationId: list_assistants parameters: - in: header name: X-Pinecone-Api-Version description: Required date-based version header required: true schema: default: 2026-04 type: string style: simple - in: query name: limit description: Limit on the number of assistants to return. Default is 50. Minimum is 1. Maximum is 100. schema: type: integer example: 20 style: form - in: query name: pagination_token description: Pagination token to continue a previous listing operation. schema: type: string example: dXNlcl9pZD11c2VyXzE= style: form responses: '200': description: List all assistants in a project. content: application/json: schema: $ref: '#/components/schemas/ListAssistantsResponse' '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 '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: - Manage Assistants summary: Create an assistant description: |- Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more. For guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant) operationId: create_assistant parameters: - in: header name: X-Pinecone-Api-Version description: Required date-based version header required: true schema: default: 2026-04 type: string style: simple requestBody: description: The desired configuration to create an assistant. content: application/json: schema: $ref: '#/components/schemas/CreateAssistantRequest' required: true responses: '200': description: Create request successful. content: application/json: schema: $ref: '#/components/schemas/Assistant' '400': description: Bad request. The request body included invalid request parameters. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: upload-validation-error: summary: Validation error on ingest value: error: code: INVALID_ARGUMENT message: Uploaded file can only currently be either a pdf or txt file 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 '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 '429': description: Assistant of given name already exists. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /assistants/{assistant_name}: get: tags: - Manage Assistants summary: Check assistant status description: |- Get the status of an assistant. For guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant) operationId: get_assistant parameters: - in: header name: X-Pinecone-Api-Version description: Required date-based version header required: true schema: default: 2026-04 type: string style: simple - in: path name: assistant_name description: The name of the assistant to get a status on. required: true schema: type: string example: test-model style: simple responses: '200': description: Poll request successful. content: application/json: schema: $ref: '#/components/schemas/Assistant' '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: Assistant not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: assistant-not-found: summary: Assistant not found. value: error: code: NOT_FOUND message: Assistant "example-assistant" not found. status: 404 '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: - Manage Assistants summary: Delete an assistant description: |- Delete an existing assistant. For guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant) operationId: delete_assistant parameters: - in: header name: X-Pinecone-Api-Version description: Required date-based version header required: true schema: default: 2026-04 type: string style: simple - in: path name: assistant_name description: The name of the assistant to delete. required: true schema: type: string example: my-assistant style: simple responses: '200': description: The request to delete the assistant has been 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 '404': description: Assistant not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: assistant-not-found: summary: Assistant not found. value: error: code: NOT_FOUND message: Assistant "example-assistant" not found. status: 404 '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: - Manage Assistants summary: Update an assistant description: |- Update an existing assistant. You can modify the assistant's instructions. For guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant). operationId: update_assistant parameters: - in: header name: X-Pinecone-Api-Version description: Required date-based version header required: true schema: default: 2026-04 type: string style: simple - in: path name: assistant_name description: The name of the assistant to update. required: true schema: type: string style: simple requestBody: description: The desired configuration updates for the assistant. content: application/json: schema: $ref: '#/components/schemas/UpdateAssistantRequest' required: true responses: '200': description: Update request successful. content: application/json: schema: $ref: '#/components/schemas/UpdateAssistantResponse' '400': description: Bad Request '401': description: Unauthorized '404': description: Assistant not found '500': description: Internal Server Error components: schemas: UpdateAssistantResponse: type: object properties: assistant_name: description: The assistant name. type: string instructions: example: Answer questions with clear, helpful answers. Keep the tone friendly and easy to follow. description: Guidance applied to all responses generated by the assistant. type: string metadata: example: role: Customer Support Helper team: Operations description: Optional metadata associated with the assistant. Metadata is a JSON object that can store custom organizational data, tags, and attributes. type: object CreateAssistantRequest: description: The configuration needed to create an assistant. type: object properties: name: example: example-assistant description: | The name of the assistant. Resource name must be 1-63 characters long, start and end with an alphanumeric character, and consist only of lower case alphanumeric characters or `-`. type: string minLength: 1 maxLength: 63 instructions: nullable: true example: Answer questions with clear, helpful answers. Keep the tone friendly and easy to follow. description: Guidance applied to all responses generated by the assistant. Maximum 16 KB. type: string metadata: example: role: Customer Support Helper team: Operations description: Optional metadata associated with the assistant. Metadata is a JSON object that can store custom organizational data, tags, and attributes. Maximum size is 16KB. type: object region: description: The region to deploy the assistant in. Our current options are either `us` or `eu`. Defaults to `us`. x-enum: - us - eu type: string required: - name Assistant: description: Describes the configuration and status of a Pinecone Assistant. type: object properties: name: example: example-assistant description: | The name of the assistant. Resource name must be 1-63 characters long, start and end with an alphanumeric character, and consist only of lower case alphanumeric characters or `-`. type: string minLength: 1 maxLength: 63 instructions: nullable: true example: Answer questions with clear, helpful answers. Keep the tone friendly and easy to follow. description: Guidance applied to all responses generated by the assistant. type: string metadata: nullable: true example: role: Customer Support Helper team: Operations description: Optional metadata associated with the assistant. Metadata is a JSON object that can store custom organizational data, tags, and attributes. type: object status: description: The current operational status of the assistant. x-enum: - Initializing - Failed - Ready - Terminating - InitializationFailed type: string host: example: https://prod-1-data.ke.pinecone.io description: The host where the assistant is deployed. type: string region: description: The region where the assistant is deployed. x-enum: - us - eu type: string created_at: example: 2025-10-01T12:30:00Z description: The timestamp when the assistant was created, in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`). type: string format: date-time updated_at: example: 2025-10-01T12:45:00Z description: The timestamp of the most recent update to the assistant, in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`). type: string format: date-time required: - name - status UpdateAssistantRequest: description: The configuration updates for the assistant. type: object properties: instructions: nullable: true example: Answer questions with clear, helpful answers. Keep the tone friendly and easy to follow. description: Guidance applied to all responses generated by the assistant. Maximum 16 KB. type: string metadata: nullable: true example: role: Customer Support Helper team: Operations description: Optional metadata associated with the assistant. Metadata is a JSON object that can store custom organizational data, tags, and attributes. Maximum size is 16KB. type: object ListAssistantsResponse: type: object properties: assistants: description: The list of assistants that exist in the project. type: array items: $ref: '#/components/schemas/Assistant' pagination: $ref: '#/components/schemas/PaginationResponse' PaginationResponse: example: next: dXNlcl9pZD11c2VyXzE= description: Object that contains the next pagination token to continue a previous listing operation. type: object properties: next: description: The token to use to retrieve the next page of results. type: string required: - next ErrorResponse: example: error: code: TOO_MANY_REQUESTS message: Too many get or list assistant requests, try again later 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: 'Invalid region: Valid options are us, eu' description: Detailed information about the error that occurred. type: object properties: code: description: The status code associated with the error. 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 - TOO_MANY_REQUESTS type: string message: example: Message content cannot be empty description: A message providing details about the error. 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 securitySchemes: ApiKeyAuth: type: apiKey in: header name: Api-Key description: Pinecone API Key security: - ApiKeyAuth: [] tags: - name: Manage Assistants description: Actions that manage Assistants