cURL
curl --request GET \
--url 'https://api.coderabbit.ai/v1/users?seat_filter=all&role_filter=all&limit=100' \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = 'https://api.coderabbit.ai/v1/users'
headers = {'x-coderabbitai-api-key': '<api-key>'}
params = {'seat_filter': 'all', 'role_filter': 'all', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.text)const options = {method: 'GET', headers: {'x-coderabbitai-api-key': '<api-key>'}};
fetch('https://api.coderabbit.ai/v1/users?seat_filter=all&role_filter=all&limit=100', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coderabbit.ai/v1/users?seat_filter=all&role_filter=all&limit=100"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-coderabbitai-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.coderabbit.ai/v1/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-coderabbitai-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.coderabbit.ai/v1/users")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-coderabbitai-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"seats_purchased": 50,
"seats_assigned": 30,
"seat_assignment_mode": "manual",
"users": [
{
"user_id": "121358802",
"seat_assigned": true,
"role": "cr_admin"
},
{
"user_id": "22605247",
"seat_assigned": false,
"role": "cr_member"
}
],
"next_cursor": "MjI2MDUyNDc="
}List all users in your organization with optional filtering by seat assignment and role status. Supports cursor-based pagination.
GET
/
v1
/
users
cURL
curl --request GET \
--url 'https://api.coderabbit.ai/v1/users?seat_filter=all&role_filter=all&limit=100' \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = 'https://api.coderabbit.ai/v1/users'
headers = {'x-coderabbitai-api-key': '<api-key>'}
params = {'seat_filter': 'all', 'role_filter': 'all', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.text)const options = {method: 'GET', headers: {'x-coderabbitai-api-key': '<api-key>'}};
fetch('https://api.coderabbit.ai/v1/users?seat_filter=all&role_filter=all&limit=100', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coderabbit.ai/v1/users?seat_filter=all&role_filter=all&limit=100"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-coderabbitai-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.coderabbit.ai/v1/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-coderabbitai-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.coderabbit.ai/v1/users")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-coderabbitai-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"seats_purchased": 50,
"seats_assigned": 30,
"seat_assignment_mode": "manual",
"users": [
{
"user_id": "121358802",
"seat_assigned": true,
"role": "cr_admin"
},
{
"user_id": "22605247",
"seat_assigned": false,
"role": "cr_member"
}
],
"next_cursor": "MjI2MDUyNDc="
}Users List
Requires Admin role. See Role-based access for details.
Filter an SSO workspace roster by linked status
With a workspace API token, omitorg_id and pass linked=true or linked=false to filter the workspace-wide SSO roster. linked=true returns users who have an email address and at least one active linked provider account. linked=false returns users who have no email address or no active linked provider accounts.
CodeRabbit applies the filter before cursor pagination. The filter is available only for workspace-wide SSO user listings; organization-scoped and non-SSO requests that include linked return 400 INVALID_REQUEST.
For workspace-token examples and identity-management guidance, see SSO user management API.Authorizations
API key for authentication. You can create an API key from the CodeRabbit dashboard.
Headers
Your CodeRabbit API key
Query Parameters
Filter users by seat assignment status
Available options:
all, assigned, unassigned Filter users by role
Available options:
all, member, admin Maximum number of users to return per page
Required range:
1 <= x <= 100Pagination cursor from previous response's next_cursor field
Response
List of users with seat and subscription info
Total number of seats purchased in the subscription
Number of seats currently assigned to users
The seat assignment mode for the organization
Available options:
automatic, manual Show child attributes
Show child attributes
Cursor for the next page of results, or null if no more results
Was this page helpful?