curl --request GET \
--url https://api.arize.com/v2/users \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arize.com/v2/users"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arize.com/v2/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arize.com/v2/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 => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.arize.com/v2/users"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arize.com/v2/users")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arize.com/v2/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"users": [
{
"id": "VXNlcjoxMjM0NQ==",
"name": "Jane Smith",
"email": "jane.smith@example.com",
"created_at": "2024-01-01T12:00:00Z",
"status": "ACTIVE",
"role": {
"type": "PREDEFINED",
"name": "MEMBER"
},
"is_developer": true
},
{
"id": "VXNlcjo2Nzg5MA==",
"name": "John Doe",
"email": "john.doe@example.com",
"created_at": "2024-01-02T12:00:00Z",
"status": "INVITED",
"role": {
"type": "PREDEFINED",
"name": "ADMIN"
},
"is_developer": true
}
],
"pagination": {
"next_cursor": "cursor_12345",
"has_more": true
}
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 403,
"title": "Access forbidden",
"detail": "You do not have permission to access this resource.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#access-forbidden"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}List users
List users in the account with cursor-based pagination. Results are sorted by creation date ascending (oldest first). The list includes members and pending invitations, including invitations whose links have expired.
When filtering by status, including ACTIVE, a page can contain fewer than
limit users or be empty while has_more is true. Continue with
next_cursor until has_more is false.
Requires account admin role, account member role, or USER_READ permission at the account level.
curl --request GET \
--url https://api.arize.com/v2/users \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arize.com/v2/users"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arize.com/v2/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arize.com/v2/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 => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.arize.com/v2/users"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arize.com/v2/users")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arize.com/v2/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"users": [
{
"id": "VXNlcjoxMjM0NQ==",
"name": "Jane Smith",
"email": "jane.smith@example.com",
"created_at": "2024-01-01T12:00:00Z",
"status": "ACTIVE",
"role": {
"type": "PREDEFINED",
"name": "MEMBER"
},
"is_developer": true
},
{
"id": "VXNlcjo2Nzg5MA==",
"name": "John Doe",
"email": "john.doe@example.com",
"created_at": "2024-01-02T12:00:00Z",
"status": "INVITED",
"role": {
"type": "PREDEFINED",
"name": "ADMIN"
},
"is_developer": true
}
],
"pagination": {
"next_cursor": "cursor_12345",
"has_more": true
}
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 403,
"title": "Access forbidden",
"detail": "You do not have permission to access this resource.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#access-forbidden"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}Authorizations
Most Arize AI endpoints require authentication. For those endpoints that require authentication, include your API key in the request header using the format
Query Parameters
Maximum items to return. Defaults to 50 if omitted; maximum is 100.
1 <= x <= 100Opaque pagination cursor returned from a previous response
(pagination.next_cursor). Treat it as an unreadable token; do not
attempt to parse or construct it.
Filter users by email address (case-insensitive partial match, up to 255 characters). Results are scoped to users visible to the caller.
255Filter users by account status. When omitted, ACTIVE, INVITED, and EXPIRED users are returned.
Can be specified multiple times to filter by multiple statuses (e.g., ?status=ACTIVE&status=INVITED).
Current status of the user in the account.
ACTIVE: User has verified their email and can access the platform.INVITED: User has a pending invitation whose link is still valid.EXPIRED: The invitation link has expired or is missing. A new invite is required.
ACTIVE, INVITED, EXPIRED Was this page helpful?