List workspaces
curl --request GET \
--url https://api.pinecone.io/workspaces \
--header 'Api-Key: <api-key>' \
--header 'X-Pinecone-Api-Version: <x-pinecone-api-version>'import requests
url = "https://api.pinecone.io/workspaces"
headers = {
"X-Pinecone-Api-Version": "<x-pinecone-api-version>",
"Api-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Pinecone-Api-Version': '<x-pinecone-api-version>', 'Api-Key': '<api-key>'}
};
fetch('https://api.pinecone.io/workspaces', 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/workspaces",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Api-Key: <api-key>",
"X-Pinecone-Api-Version: <x-pinecone-api-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pinecone.io/workspaces"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
req.Header.Add("Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pinecone.io/workspaces")
.header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
.header("Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pinecone.io/workspaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Pinecone-Api-Version"] = '<x-pinecone-api-version>'
request["Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pagination": {
"next": "dXNlcl9pZD11c2VyXzE="
},
"workspaces": [
{
"created_at": "2026-06-01T00:00:00.000Z",
"host": "production-c01b5b5.wksp.aws-us-east-1-b921.byoc.pinecone.io",
"name": "production",
"spec": {
"byoc": {
"environment": "aws-us-east-1-b921.byoc"
}
},
"status": {
"ready": true,
"state": "Ready"
},
"updated_at": "2026-06-11T13:00:00.000Z"
},
{
"created_at": "2026-06-10T00:00:00.000Z",
"host": "staging-7a1f9c1.wksp.aws-us-east-1-b921.byoc.pinecone.io",
"name": "staging",
"spec": {
"byoc": {
"environment": "aws-us-east-1-b921.byoc"
}
},
"status": {
"ready": true,
"state": "Ready"
},
"updated_at": "2026-06-11T13:00:00.000Z"
}
]
}Manage Workspaces
List workspaces
List the workspaces in the project. Results are paginated; the pagination object is omitted when there are no further results.
GET
/
workspaces
List workspaces
curl --request GET \
--url https://api.pinecone.io/workspaces \
--header 'Api-Key: <api-key>' \
--header 'X-Pinecone-Api-Version: <x-pinecone-api-version>'import requests
url = "https://api.pinecone.io/workspaces"
headers = {
"X-Pinecone-Api-Version": "<x-pinecone-api-version>",
"Api-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Pinecone-Api-Version': '<x-pinecone-api-version>', 'Api-Key': '<api-key>'}
};
fetch('https://api.pinecone.io/workspaces', 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/workspaces",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Api-Key: <api-key>",
"X-Pinecone-Api-Version: <x-pinecone-api-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pinecone.io/workspaces"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
req.Header.Add("Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pinecone.io/workspaces")
.header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
.header("Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pinecone.io/workspaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Pinecone-Api-Version"] = '<x-pinecone-api-version>'
request["Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pagination": {
"next": "dXNlcl9pZD11c2VyXzE="
},
"workspaces": [
{
"created_at": "2026-06-01T00:00:00.000Z",
"host": "production-c01b5b5.wksp.aws-us-east-1-b921.byoc.pinecone.io",
"name": "production",
"spec": {
"byoc": {
"environment": "aws-us-east-1-b921.byoc"
}
},
"status": {
"ready": true,
"state": "Ready"
},
"updated_at": "2026-06-11T13:00:00.000Z"
},
{
"created_at": "2026-06-10T00:00:00.000Z",
"host": "staging-7a1f9c1.wksp.aws-us-east-1-b921.byoc.pinecone.io",
"name": "staging",
"spec": {
"byoc": {
"environment": "aws-us-east-1-b921.byoc"
}
},
"status": {
"ready": true,
"state": "Ready"
},
"updated_at": "2026-06-11T13:00:00.000Z"
}
]
}Authorizations
Headers
Required date-based version header
Query Parameters
The number of results to return per page.
Required range:
1 <= x <= 100The token to use to retrieve the next page of results.
Response
This operation returns a list of all the workspaces that you have previously created, and which are associated with the given project.
The list of workspaces that exist in the project.
Was this page helpful?