Update an API key
Update an API key's name and roles.
/admin/api-keys/{api_key_id}Update an API key
2 parameters
- X-Pinecone-Api-Versionstringheaderrequired
Required date-based version header
- api_key_idstringpathrequired
API key ID
curl --request PATCH \
--url https://api.pinecone.io/admin/api-keys/{api_key_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-Pinecone-Api-Version: <x-pinecone-api-version>' \
--header 'Content-Type: application/json' \
--data '{
"name": "devkey",
"roles": [
"ProjectEditor"
]
}'import requests
url = "https://api.pinecone.io/admin/api-keys/{api_key_id}"
payload = {
"name": "devkey",
"roles": [
"ProjectEditor"
]
}
headers = {
"Authorization": "Bearer <token>",
"X-Pinecone-Api-Version": "<x-pinecone-api-version>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {method: "PATCH", headers: {"Authorization": "Bearer <token>", "X-Pinecone-Api-Version": "<x-pinecone-api-version>", "Content-Type": "application/json"}, body: JSON.stringify({
"name": "devkey",
"roles": [
"ProjectEditor"
]
})};
fetch("https://api.pinecone.io/admin/api-keys/{api_key_id}", options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pinecone.io/admin/api-keys/{api_key_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => "{\"name\":\"devkey\",\"roles\":[\"ProjectEditor\"]}",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Pinecone-Api-Version: <x-pinecone-api-version>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pinecone.io/admin/api-keys/{api_key_id}"
payload := strings.NewReader("{\"name\":\"devkey\",\"roles\":[\"ProjectEditor\"]}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.pinecone.io/admin/api-keys/{api_key_id}")
.header("Authorization", "Bearer <token>")
.header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
.header("Content-Type", "application/json")
.body("{\"name\":\"devkey\",\"roles\":[\"ProjectEditor\"]}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pinecone.io/admin/api-keys/{api_key_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Pinecone-Api-Version"] = '<x-pinecone-api-version>'
request["Content-Type"] = 'application/json'
request.body = "{\"name\":\"devkey\",\"roles\":[\"ProjectEditor\"]}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"project_id": "<string>",
"roles": [
"ProjectEditor"
]
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Bad request. The request body included invalid request parameters."
},
"status": 400
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Invalid API key."
},
"status": 401
}{
"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
}{
"error": {
"code": "UNKNOWN",
"message": "Internal server error"
},
"status": 500
}{
"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
}Authorizations
Section titled “Authorizations”AuthorizationstringrequiredAn access token must be provided in the Authorization header using the Bearer scheme.
Headers
Section titled “Headers”X-Pinecone-Api-VersionstringrequiredRequired date-based version header
Path Parameters
Section titled “Path Parameters”api_key_idstringrequiredAPI key ID
Updated name and roles for the API key.
name?stringA new name for the API key. The name must be 1-80 characters long. If omitted, the name will not be updated.
Required string length: 1 - 80. Example: devkey
roles?string[]A new set of roles for the API key. Existing roles will be removed if not included. If this field is omitted, the roles will not be updated.
Response
Section titled “Response”200 — API key updated successfully.
The details of an API key, without the secret.
idstringrequiredThe unique ID of the API key.
namestringrequiredThe name of the API key.
project_idstringrequiredThe ID of the project containing the API key.
rolesstring[]requiredThe roles assigned to the API key.