Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

List role bindings

List role bindings in the caller's organization, optionally filtered by principal, resource, and role.

JavaScript
// 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);
Go
// 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)
    }
}
Terraform
# 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]
}
curl
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"
curl
{
  "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=="
  }
}
GET/admin/role-bindings

List role bindings

8 parameters
  • X-Pinecone-Api-Versionstringheaderrequired

    Required date-based version header

  • principal_typestringquery

    Filter by principal type. Required when `principal_id` is set.

  • principal_idstringquery

    Filter by principal ID. Requires `principal_type`. The ID is a UUID for all principal types (user, service account, or invite).

  • resource_typestringquery

    Filter by resource type. Required when `resource_id` is set.

  • resource_idstringquery

    Filter by resource ID. Requires `resource_type`.

  • rolestringquery

    Filter by role.

  • limitintegerquery

    The number of results to return per page. When omitted, the server defaults to 100. Out-of-range values return `400 OUT_OF_RANGE`.

  • paginationTokenstringquery

    Cursor from `pagination.next` of a prior response. Must be reused with the same query context (path parameters, filters, and `limit`).

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu