// 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: roleBindings } = await admin.roleBindings.list({
principalType: 'user',
principalId: 'e2e92523-85dc-4142-b8c2-e681be8b78df',
});
console.log(roleBindings);
// 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)
}
principalType := pinecone.PrincipalTypeUser
principalId := "e2e92523-85dc-4142-b8c2-e681be8b78df"
roleBindings, err := adminClient.RoleBinding.List(ctx, &pinecone.ListRoleBindingsParams{
PrincipalType: &principalType,
PrincipalId: &principalId,
})
if err != nil {
log.Fatalf("Failed to list role bindings: %v", err)
}
for _, roleBinding := range roleBindings.Data {
fmt.Printf("Role binding: %v (%v)\n", roleBinding.Role, roleBinding.Id)
}
}
# Requires Terraform provider v4.0.0 or later
data "pinecone_role_bindings" "user_roles" {
principal_type = "user"
principal_id = "e2e92523-85dc-4142-b8c2-e681be8b78df"
}
output "user_roles" {
value = [for b in data.pinecone_role_bindings.user_roles.role_bindings : b.role]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl -X GET "https://api.pinecone.io/admin/role-bindings?principal_type=user&principal_id=e2e92523-85dc-4142-b8c2-e681be8b78df" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-H "accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04"
{
"data": [
{
"id": "5a86ed21-daf1-448d-a9ca-f92a0fd839d3",
"principal_type": "user",
"principal_id": "e2e92523-85dc-4142-b8c2-e681be8b78df",
"resource_type": "organization",
"resource_id": "-ExampleOrgId0000000",
"role": "OrgMember",
"created_at": "2026-04-10T15:23:00Z"
}
],
"pagination": {
"next": "eyJsYXN0X2lkIjoiNWE4NmVkMjEifQ=="
}
}
List role bindings
List role bindings in the caller’s organization, optionally filtered by principal, resource, and role.
// 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: roleBindings } = await admin.roleBindings.list({
principalType: 'user',
principalId: 'e2e92523-85dc-4142-b8c2-e681be8b78df',
});
console.log(roleBindings);
// 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)
}
principalType := pinecone.PrincipalTypeUser
principalId := "e2e92523-85dc-4142-b8c2-e681be8b78df"
roleBindings, err := adminClient.RoleBinding.List(ctx, &pinecone.ListRoleBindingsParams{
PrincipalType: &principalType,
PrincipalId: &principalId,
})
if err != nil {
log.Fatalf("Failed to list role bindings: %v", err)
}
for _, roleBinding := range roleBindings.Data {
fmt.Printf("Role binding: %v (%v)\n", roleBinding.Role, roleBinding.Id)
}
}
# Requires Terraform provider v4.0.0 or later
data "pinecone_role_bindings" "user_roles" {
principal_type = "user"
principal_id = "e2e92523-85dc-4142-b8c2-e681be8b78df"
}
output "user_roles" {
value = [for b in data.pinecone_role_bindings.user_roles.role_bindings : b.role]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl -X GET "https://api.pinecone.io/admin/role-bindings?principal_type=user&principal_id=e2e92523-85dc-4142-b8c2-e681be8b78df" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-H "accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04"
{
"data": [
{
"id": "5a86ed21-daf1-448d-a9ca-f92a0fd839d3",
"principal_type": "user",
"principal_id": "e2e92523-85dc-4142-b8c2-e681be8b78df",
"resource_type": "organization",
"resource_id": "-ExampleOrgId0000000",
"role": "OrgMember",
"created_at": "2026-04-10T15:23:00Z"
}
],
"pagination": {
"next": "eyJsYXN0X2lkIjoiNWE4NmVkMjEifQ=="
}
}
// 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: roleBindings } = await admin.roleBindings.list({
principalType: 'user',
principalId: 'e2e92523-85dc-4142-b8c2-e681be8b78df',
});
console.log(roleBindings);
// 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)
}
principalType := pinecone.PrincipalTypeUser
principalId := "e2e92523-85dc-4142-b8c2-e681be8b78df"
roleBindings, err := adminClient.RoleBinding.List(ctx, &pinecone.ListRoleBindingsParams{
PrincipalType: &principalType,
PrincipalId: &principalId,
})
if err != nil {
log.Fatalf("Failed to list role bindings: %v", err)
}
for _, roleBinding := range roleBindings.Data {
fmt.Printf("Role binding: %v (%v)\n", roleBinding.Role, roleBinding.Id)
}
}
# Requires Terraform provider v4.0.0 or later
data "pinecone_role_bindings" "user_roles" {
principal_type = "user"
principal_id = "e2e92523-85dc-4142-b8c2-e681be8b78df"
}
output "user_roles" {
value = [for b in data.pinecone_role_bindings.user_roles.role_bindings : b.role]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl -X GET "https://api.pinecone.io/admin/role-bindings?principal_type=user&principal_id=e2e92523-85dc-4142-b8c2-e681be8b78df" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-H "accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04"
{
"data": [
{
"id": "5a86ed21-daf1-448d-a9ca-f92a0fd839d3",
"principal_type": "user",
"principal_id": "e2e92523-85dc-4142-b8c2-e681be8b78df",
"resource_type": "organization",
"resource_id": "-ExampleOrgId0000000",
"role": "OrgMember",
"created_at": "2026-04-10T15:23:00Z"
}
],
"pagination": {
"next": "eyJsYXN0X2lkIjoiNWE4NmVkMjEifQ=="
}
}
Authorizations
An access token must be provided in the Authorization header using the Bearer scheme.
Headers
Required date-based version header
Query Parameters
Filter by principal type. Required when principal_id is set.
The kind of principal that receives permissions from a role binding.
Possible values: user, service_account, api_key, invite.
"service_account"
Filter by principal ID. Requires principal_type. The ID is a UUID for all principal types (user, service account, or invite).
Filter by resource type. Required when resource_id is set.
The kind of resource scope a role binding applies to.
Possible values: organization, project.
"project"
Filter by resource ID. Requires resource_type.
Filter by role. A role assigned to a principal at a resource scope.
"ProjectOwner"
The number of results to return per page. When omitted, the server defaults to 100. Out-of-range values return 400 OUT_OF_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 role bindings. When multiple filters are supplied, they are combined with AND.
Was this page helpful?