GET /v1/users
from metadata.sdk import configure
from metadata.sdk.entities import Users
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# List first page
users = Users.list(limit=50)
for user in users.data:
print(f"{user.fullyQualifiedName}")
# List all with auto-pagination
for user in Users.list_all():
print(f"{user.fullyQualifiedName}")
# Filter by team with fields
users = Users.list(
team="Sales",
fields=["teams", "roles", "domains"],
limit=50
)
for user in users.data:
print(f"{user.fullyQualifiedName}")
if user.teams:
print(f" Teams: {[t.name for t in user.teams]}")
if user.roles:
print(f" Roles: {[r.name for r in user.roles]}")
# Filter bot accounts
bots = Users.list(isBot=True, limit=50)
import static org.openmetadata.sdk.fluent.Users.*;
// List first page
var result = Users.list()
.limit(50)
.execute();
for (var user : result.getData()) {
System.out.println(user.getFullyQualifiedName());
}
// Filter by team with fields
var result = Users.list()
.team("Sales")
.fields("teams", "roles", "domains")
.limit(50)
.execute();
for (var user : result.getData()) {
System.out.println(user.getFullyQualifiedName());
}
# List all
curl "{base_url}/api/v1/users?limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter by team
curl "{base_url}/api/v1/users?team=Sales&limit=50" \
-H "Authorization: Bearer {access_token}"
# With fields
curl "{base_url}/api/v1/users?fields=teams,roles,domains&limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter bot accounts
curl "{base_url}/api/v1/users?isBot=true&limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter admin users
curl "{base_url}/api/v1/users?isAdmin=true&limit=50" \
-H "Authorization: Bearer {access_token}"
{
"data": [
{
"id": "77655e6e-ad33-49da-bbca-db4ba4d4e2cd",
"name": "aaron_johnson0",
"fullyQualifiedName": "aaron_johnson0",
"displayName": "Aaron Johnson",
"version": 0.1,
"updatedAt": 1769982624214,
"updatedBy": "admin",
"email": "aaron_johnson0@gmail.com",
"href": "http://localhost:8585/api/v1/users/77655e6e-ad33-49da-bbca-db4ba4d4e2cd",
"isBot": false,
"isAdmin": false,
"allowImpersonation": false,
"teams": [
{
"id": "7a2b921b-f623-4eb5-9736-649788ad842c",
"type": "team",
"name": "Sales",
"fullyQualifiedName": "Sales",
"displayName": "Sales",
"deleted": false
}
],
"personas": [],
"deleted": false,
"roles": [
{
"id": "761c2bb2-0b77-4bc5-9af9-cf89536d6a12",
"type": "role",
"name": "DataSteward",
"fullyQualifiedName": "DataSteward",
"displayName": "Data Steward",
"deleted": false
}
],
"domains": []
}
],
"paging": {
"after": "...",
"total": 117
}
}
List Users
List all users with optional filtering and pagination
GET
/
v1
/
users
GET /v1/users
from metadata.sdk import configure
from metadata.sdk.entities import Users
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# List first page
users = Users.list(limit=50)
for user in users.data:
print(f"{user.fullyQualifiedName}")
# List all with auto-pagination
for user in Users.list_all():
print(f"{user.fullyQualifiedName}")
# Filter by team with fields
users = Users.list(
team="Sales",
fields=["teams", "roles", "domains"],
limit=50
)
for user in users.data:
print(f"{user.fullyQualifiedName}")
if user.teams:
print(f" Teams: {[t.name for t in user.teams]}")
if user.roles:
print(f" Roles: {[r.name for r in user.roles]}")
# Filter bot accounts
bots = Users.list(isBot=True, limit=50)
import static org.openmetadata.sdk.fluent.Users.*;
// List first page
var result = Users.list()
.limit(50)
.execute();
for (var user : result.getData()) {
System.out.println(user.getFullyQualifiedName());
}
// Filter by team with fields
var result = Users.list()
.team("Sales")
.fields("teams", "roles", "domains")
.limit(50)
.execute();
for (var user : result.getData()) {
System.out.println(user.getFullyQualifiedName());
}
# List all
curl "{base_url}/api/v1/users?limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter by team
curl "{base_url}/api/v1/users?team=Sales&limit=50" \
-H "Authorization: Bearer {access_token}"
# With fields
curl "{base_url}/api/v1/users?fields=teams,roles,domains&limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter bot accounts
curl "{base_url}/api/v1/users?isBot=true&limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter admin users
curl "{base_url}/api/v1/users?isAdmin=true&limit=50" \
-H "Authorization: Bearer {access_token}"
{
"data": [
{
"id": "77655e6e-ad33-49da-bbca-db4ba4d4e2cd",
"name": "aaron_johnson0",
"fullyQualifiedName": "aaron_johnson0",
"displayName": "Aaron Johnson",
"version": 0.1,
"updatedAt": 1769982624214,
"updatedBy": "admin",
"email": "aaron_johnson0@gmail.com",
"href": "http://localhost:8585/api/v1/users/77655e6e-ad33-49da-bbca-db4ba4d4e2cd",
"isBot": false,
"isAdmin": false,
"allowImpersonation": false,
"teams": [
{
"id": "7a2b921b-f623-4eb5-9736-649788ad842c",
"type": "team",
"name": "Sales",
"fullyQualifiedName": "Sales",
"displayName": "Sales",
"deleted": false
}
],
"personas": [],
"deleted": false,
"roles": [
{
"id": "761c2bb2-0b77-4bc5-9af9-cf89536d6a12",
"type": "role",
"name": "DataSteward",
"fullyQualifiedName": "DataSteward",
"displayName": "Data Steward",
"deleted": false
}
],
"domains": []
}
],
"paging": {
"after": "...",
"total": 117
}
}
List Users
List all users with optional filtering and pagination.Query Parameters
integer
default:"10"
Maximum number of results to return (max: 1000000).
string
Cursor for backward pagination.
string
Cursor for forward pagination.
string
Comma-separated list of fields to include:
teams, roles, personas, domains, follows, owns. See Supported Fields below.string
default:"non-deleted"
Include
all, deleted, or non-deleted entities.boolean
Filter by bot status. Set to
true to list only bot accounts, false for human users only.boolean
Filter by admin status. Set to
true to list only admin users.string
Filter by team name. Returns only users belonging to the specified team.
GET /v1/users
from metadata.sdk import configure
from metadata.sdk.entities import Users
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# List first page
users = Users.list(limit=50)
for user in users.data:
print(f"{user.fullyQualifiedName}")
# List all with auto-pagination
for user in Users.list_all():
print(f"{user.fullyQualifiedName}")
# Filter by team with fields
users = Users.list(
team="Sales",
fields=["teams", "roles", "domains"],
limit=50
)
for user in users.data:
print(f"{user.fullyQualifiedName}")
if user.teams:
print(f" Teams: {[t.name for t in user.teams]}")
if user.roles:
print(f" Roles: {[r.name for r in user.roles]}")
# Filter bot accounts
bots = Users.list(isBot=True, limit=50)
import static org.openmetadata.sdk.fluent.Users.*;
// List first page
var result = Users.list()
.limit(50)
.execute();
for (var user : result.getData()) {
System.out.println(user.getFullyQualifiedName());
}
// Filter by team with fields
var result = Users.list()
.team("Sales")
.fields("teams", "roles", "domains")
.limit(50)
.execute();
for (var user : result.getData()) {
System.out.println(user.getFullyQualifiedName());
}
# List all
curl "{base_url}/api/v1/users?limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter by team
curl "{base_url}/api/v1/users?team=Sales&limit=50" \
-H "Authorization: Bearer {access_token}"
# With fields
curl "{base_url}/api/v1/users?fields=teams,roles,domains&limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter bot accounts
curl "{base_url}/api/v1/users?isBot=true&limit=50" \
-H "Authorization: Bearer {access_token}"
# Filter admin users
curl "{base_url}/api/v1/users?isAdmin=true&limit=50" \
-H "Authorization: Bearer {access_token}"
{
"data": [
{
"id": "77655e6e-ad33-49da-bbca-db4ba4d4e2cd",
"name": "aaron_johnson0",
"fullyQualifiedName": "aaron_johnson0",
"displayName": "Aaron Johnson",
"version": 0.1,
"updatedAt": 1769982624214,
"updatedBy": "admin",
"email": "aaron_johnson0@gmail.com",
"href": "http://localhost:8585/api/v1/users/77655e6e-ad33-49da-bbca-db4ba4d4e2cd",
"isBot": false,
"isAdmin": false,
"allowImpersonation": false,
"teams": [
{
"id": "7a2b921b-f623-4eb5-9736-649788ad842c",
"type": "team",
"name": "Sales",
"fullyQualifiedName": "Sales",
"displayName": "Sales",
"deleted": false
}
],
"personas": [],
"deleted": false,
"roles": [
{
"id": "761c2bb2-0b77-4bc5-9af9-cf89536d6a12",
"type": "role",
"name": "DataSteward",
"fullyQualifiedName": "DataSteward",
"displayName": "Data Steward",
"deleted": false
}
],
"domains": []
}
],
"paging": {
"after": "...",
"total": 117
}
}
Returns
Returns a paginated list of user objects. By default, only basic fields are included. Use thefields parameter to request additional data.
Response
array
Array of user objects.
Show properties
Show properties
string
Unique identifier for the user (UUID format).
string
Username.
string
Fully qualified name (same as
name for users).string
Human-readable display name.
string
Email address of the user.
boolean
Whether this user is a bot account.
boolean
Whether this user has admin privileges.
array
Teams the user belongs to. Only included when
fields contains teams.array
Roles assigned to the user. Only included when
fields contains roles.array
Personas assigned to the user. Only included when
fields contains personas.array
Domain assignments for governance. Only included when
fields contains domains.array
Entities the user follows. Only included when
fields contains follows.array
Entities owned by the user. Only included when
fields contains owns.object
Supported Fields
The following fields can be requested via thefields query parameter:
| Field | Description |
|---|---|
teams | Teams the user belongs to |
roles | Roles assigned to the user |
personas | Personas assigned to the user |
domains | Domain assignments for governance |
follows | Entities the user follows |
owns | Entities owned by the user |
Error Handling
| Code | Error Type | Description |
|---|---|---|
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to list users |
Was this page helpful?
⌘I