Skip to main content
Pinecone Docs
current

Search documentation

Type to search this documentation.

List users in the organization

List users in the caller's organization, optionally filtered by email address.

GET/admin/users

List users in the organization

4 parameters
  • X-Pinecone-Api-Versionstringheaderrequired

    Required date-based version header

  • emailstringquery

    Case-insensitive filter on the user's email address. Malformed email returns `400 INVALID_ARGUMENT`.

  • 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`).

cURL
curl --request GET \
  --url https://api.pinecone.io/admin/users \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Pinecone-Api-Version: <x-pinecone-api-version>'
Python
import requests

url = "https://api.pinecone.io/admin/users"

headers = {
    "Authorization": "Bearer <token>",
    "X-Pinecone-Api-Version": "<x-pinecone-api-version>"
}

response = requests.get(url, headers=headers)

print(response.text)
JavaScript
const options = {method: "GET", headers: {"Authorization": "Bearer <token>", "X-Pinecone-Api-Version": "<x-pinecone-api-version>"}};

fetch("https://api.pinecone.io/admin/users", options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.pinecone.io/admin/users",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "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;
}
Go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.pinecone.io/admin/users"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("X-Pinecone-Api-Version", "<x-pinecone-api-version>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
Java
HttpResponse<String> response = Unirest.get("https://api.pinecone.io/admin/users")
  .header("Authorization", "Bearer <token>")
  .header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
  .asString();
Ruby
require 'uri'
require 'net/http'

url = URI("https://api.pinecone.io/admin/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Pinecone-Api-Version"] = '<x-pinecone-api-version>'

response = http.request(request)
puts response.read_body
200
{
  "data": [
    {
      "email": "alice@example.com",
      "id": "e2e92523-85dc-4142-b8c2-e681be8b78df",
      "name": "Alice Example"
    }
  ],
  "pagination": {
    "next": "eyJsYXN0X2lkIjoiZTJlOTI1MjMifQ=="
  }
}
400
{
  "error": {
    "code": "INVALID_ARGUMENT",
    "message": "Bad request. The request body included invalid request parameters."
  },
  "status": 400
}
401
{
  "error": {
    "code": "UNAUTHENTICATED",
    "message": "Invalid API key."
  },
  "status": 401
}
403
{
  "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
}
500
{
  "error": {
    "code": "UNKNOWN",
    "message": "Internal server error"
  },
  "status": 500
}
4XX
{
  "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
}
Authorizationstringrequired

An access token must be provided in the Authorization header using the Bearer scheme.

X-Pinecone-Api-Versionstringrequired

Required date-based version header

Typestring
Default2026-07
email?string

Case-insensitive filter on the user's email address. Malformed email returns 400 INVALID_ARGUMENT.

Required string length: 0 - 254

Typestring
limit?integer

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 <= 100

Typeinteger
Default100
paginationToken?string

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

Typestring

200 — A paginated list of users. Role bindings are not included; use GET /admin/role-bindings to list them.

A paginated list of users in the organization.

dataobject[]required

The page of users.

Typeobject[]
Show child attributes
idstringrequired

The unique ID of the user.

Typestring
emailstringrequired

The user's email address.

Typestring
name?string

The user's display name. Omitted from the response if the user has not set one.

Typestring
pagination?object | null

Cursor envelope for the next page. null (or absent) on the final page of results.

Typeobject | null
Show child attributes
next?string

Opaque cursor for the next page. Do not parse or construct. Invalid or expired tokens return 400.

Example: eyJsYXN0X2lkIjogImluZGV4LTQifQ==

Typestring
Suggest an edit

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

Export
Documentation menu