// Requires Node.js SDK v8.2.0 or later
import { AdminClient } from '@pinecone-database/pinecone';
// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();
const { data: serviceAccounts } = await admin.serviceAccounts.list();
console.log(serviceAccounts);
// Requires Go SDK v6.0.0 or later
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/pinecone-io/go-pinecone/v6/pinecone"
)
func main() {
ctx := context.Background()
adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
ClientId: os.Getenv("PINECONE_CLIENT_ID"),
ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
})
if err != nil {
log.Fatalf("Failed to create AdminClient: %v", err)
}
serviceAccounts, err := adminClient.ServiceAccount.List(ctx, &pinecone.ListServiceAccountsParams{})
if err != nil {
log.Fatalf("Failed to list service accounts: %v", err)
}
for _, sa := range serviceAccounts.Data {
fmt.Printf("Service account: %v (%v)\n", sa.Name, sa.Id)
}
}
# Requires Terraform provider v4.0.0 or later
data "pinecone_service_accounts" "all" {}
output "service_account_names" {
value = [for sa in data.pinecone_service_accounts.all.service_accounts : sa.name]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl -X GET "https://api.pinecone.io/admin/service-accounts" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-H "accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04"
{
"data": [
{
"id": "f8a3b2c1-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"name": "My Service Account",
"client_id": "l3Ow0CmFyc4jOONcwiKUCRqQKN0tiCAn",
"created_at": "2026-04-10T15:23:00Z",
"updated_at": "2026-04-12T09:11:00Z"
}
],
"pagination": {
"next": "eyJsYXN0X2lkIjoiZDI0MTc3YTAifQ=="
}
}
Service accounts
List service accounts
List service accounts in the caller’s organization.
GET
/
admin
/
service-accounts
// Requires Node.js SDK v8.2.0 or later
import { AdminClient } from '@pinecone-database/pinecone';
// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();
const { data: serviceAccounts } = await admin.serviceAccounts.list();
console.log(serviceAccounts);
// Requires Go SDK v6.0.0 or later
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/pinecone-io/go-pinecone/v6/pinecone"
)
func main() {
ctx := context.Background()
adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
ClientId: os.Getenv("PINECONE_CLIENT_ID"),
ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
})
if err != nil {
log.Fatalf("Failed to create AdminClient: %v", err)
}
serviceAccounts, err := adminClient.ServiceAccount.List(ctx, &pinecone.ListServiceAccountsParams{})
if err != nil {
log.Fatalf("Failed to list service accounts: %v", err)
}
for _, sa := range serviceAccounts.Data {
fmt.Printf("Service account: %v (%v)\n", sa.Name, sa.Id)
}
}
# Requires Terraform provider v4.0.0 or later
data "pinecone_service_accounts" "all" {}
output "service_account_names" {
value = [for sa in data.pinecone_service_accounts.all.service_accounts : sa.name]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl -X GET "https://api.pinecone.io/admin/service-accounts" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-H "accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04"
{
"data": [
{
"id": "f8a3b2c1-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"name": "My Service Account",
"client_id": "l3Ow0CmFyc4jOONcwiKUCRqQKN0tiCAn",
"created_at": "2026-04-10T15:23:00Z",
"updated_at": "2026-04-12T09:11:00Z"
}
],
"pagination": {
"next": "eyJsYXN0X2lkIjoiZDI0MTc3YTAifQ=="
}
}
// Requires Node.js SDK v8.2.0 or later
import { AdminClient } from '@pinecone-database/pinecone';
// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();
const { data: serviceAccounts } = await admin.serviceAccounts.list();
console.log(serviceAccounts);
// Requires Go SDK v6.0.0 or later
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/pinecone-io/go-pinecone/v6/pinecone"
)
func main() {
ctx := context.Background()
adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
ClientId: os.Getenv("PINECONE_CLIENT_ID"),
ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
})
if err != nil {
log.Fatalf("Failed to create AdminClient: %v", err)
}
serviceAccounts, err := adminClient.ServiceAccount.List(ctx, &pinecone.ListServiceAccountsParams{})
if err != nil {
log.Fatalf("Failed to list service accounts: %v", err)
}
for _, sa := range serviceAccounts.Data {
fmt.Printf("Service account: %v (%v)\n", sa.Name, sa.Id)
}
}
# Requires Terraform provider v4.0.0 or later
data "pinecone_service_accounts" "all" {}
output "service_account_names" {
value = [for sa in data.pinecone_service_accounts.all.service_accounts : sa.name]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl -X GET "https://api.pinecone.io/admin/service-accounts" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-H "accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04"
{
"data": [
{
"id": "f8a3b2c1-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"name": "My Service Account",
"client_id": "l3Ow0CmFyc4jOONcwiKUCRqQKN0tiCAn",
"created_at": "2026-04-10T15:23:00Z",
"updated_at": "2026-04-12T09:11:00Z"
}
],
"pagination": {
"next": "eyJsYXN0X2lkIjoiZDI0MTc3YTAifQ=="
}
}
Authorizations
An access token must be provided in the Authorization header using the Bearer scheme.
Headers
Required date-based version header
Query Parameters
The number of results to return per page. When omitted, the server defaults to 100. Out-of-range values return 400 OUT_OF_RANGE.
Required range:
1 <= x <= 100Cursor from pagination.next of a prior response. Must be reused with the same query context (path parameters, filters, and limit).
Response
A paginated list of service accounts. Role bindings are not included; use GET /admin/role-bindings to list them.
A paginated list of service accounts in the organization.
Was this page helpful?
⌘I