Starting
September 8, 2025, every new line item will need to declare whether or not they will serve Eurpoean Union (EU) political ads. Display & Video 360 API and SDF uploads that don't provide declarations will fail. See our
deprecations page for more details on how to update your integration to make this declaration.
Retrieve a user
Stay organized with collections
Save and categorize content based on your preferences.
The user resource includes both user-specific information, such as the user
display name and unique ID, as well as permissions information, or assigned
user roles.
This page describes how to retrieve a user resource using an email address.
Retrieve a user from filtered list
Display & Video 360 API user resources have a unique ID assigned by the system upon
creation. This ID can be used to retrieve a user resource through the
users.get
method. However, if you do not have the
userId
for a user, you can still retrieve the user resource using
the users.list
method with the filter
parameter to filter by email address.
Here's an example of how to retrieve your user resource using this method:
Java
// Create a variable to store the desired user once found.
User retrievedUser = new User();
// Create the filter string for list call. Using this filter will return all
// users with an email address containing the specified value.
String emailFilter = String.format("email:\"%s\"", email-address);
// Configure the list request.
Users.List request =
service
.users()
.list();
// Set the filter for the request.
request.setFilter(emailFilter);
// Create the response and nextPageToken variables.
ListUsersResponse response;
String nextPageToken = null;
do {
// Create and execute the list request.
response = request.setPageToken(nextPageToken).execute();
// Check if response is empty.
if (response.isEmpty()) {
break;
}
// Iterate over retrieved line items and add to total list.
for (User user : response.getUsers()) {
if (user.getEmail() == email-address) {
retrievedUser = user;
break;
}
}
// Update the next page token.
nextPageToken = response.getNextPageToken();
} while (!Strings.isNullOrEmpty(nextPageToken) && retrievedUser.isEmpty());
// Print user information if a user was found.
if (!retrievedUser.isEmpty()) {
System.out.printf("User %s was found.\n", retrievedUser.getName());
System.out.printf("User: %s, Display Name: %s, Email: %s\n",
retrievedUser.getUserId(),
retrievedUser.getDisplayName(),
retrievedUser.getEmail());
AssignedUserRole userRole;
for (int i = 0; i < retrievedUser.getAssignedUserRoles().size(); i++) {
userRole = retrievedUser.getAssignedUserRoles().get(i);
System.out.printf("Assigned User Role %s:\n", i+1);
if (userRole.getPartnerId() != null) {
System.out.printf("Partner ID: %s\n", userRole.getPartnerId());
} else {
System.out.printf("Advertiser ID: %s\n", userRole.getAdvertiserId());
}
System.out.printf("User Role: %s\n", userRole.getUserRole());
}
} else {
System.out.printf("No user was found with email address %s", email-address);
}
Python
# Create a variable to store the desired user once found.
retrieved_user = None
# Create the filter string for list call. Using this filter will return all
# users with an email address containing the specified value.
email_filter = 'email:"%s"' % email-address
# Create the page token variable.
next_page_token = ''
while True:
# Request the users list.
response = service.users().list(
filter=email_filter,
pageToken=next_page_token
).execute()
# Check if the response is empty.
if not response:
break
# Iterate over retrieved users.
for user in response['users']:
# Break from the loop if the user is found.
if user['email'] == email-address
retrieved_user = user
break
# Break out of the loop if there is no next page or if the user has been
# found.
if 'nextPageToken' not in response or user is not None:
break
# Update the next page token.
next_page_token = response['nextPageToken']
# Print user information if a user was found.
if retrieved_user:
print('User %s was found.' % retrieved_user['name'])
print('User: %s, Display Name: %s, Email: %s'
% (retrieved_user['userId'],
retrieved_user['displayName'],
retrieved_user['email']))
for index in range(len(retrieved_user['assignedUserRoles'])):
print('Assigned User Role %s:' % index)
if 'partnerId' in retrieved_user['assignedUserRoles'][0]:
print('Partner ID: %s' % retrieved_user['assignedUserRoles'][0]['partnerId'])
else:
print('Advertiser ID: %s' %
retrieved_user['assignedUserRoles'][0]['advertiserId'])
print('User Role: %s' % retrieved_user['assignedUserRoles'][0]['userRole'])
else:
print('No user was found with email address %s' % email-address)
PHP
// Create a variable to store the desired user once found.
$retrievedUser = null;
// Create the filter string with the desired user email.
$emailFilter = 'email:"' . email-address . '"';
# Create the page token variable.
$nextPageToken = '';
do {
// Build argument parameters for list call.
$optParams = array(
'filter' => $emailFilter,
'pageToken' => $nextPageToken
);
// Call the API, getting the line items with flights ending before the
// given date.
$response = $this->service->users->listUsers($optParams);
// If no line items are returned, break loop.
if (!empty($response->getUsers())) {
break;
}
foreach ($response->getUsers() as $user) {
if ($user->getEmail() == email-address) {
$retrievedUser = $user;
break;
}
}
$nextPageToken = $response->getNextPageToken();
} while (is_null($retrievedUser) && $nextPageToken);
// Print user information if a user was found.
if (!is_null($retrievedUser)) {
printf(
'User %s was found.\nUser: %s, Display Name: %s, Email: %s\n',
$retrievedUser->getName(),
$retrievedUser->getUserId(),
$retrievedUser->getDisplayName(),
$retrievedUser->getEmail()
);
// Print each assigned user role for user.
foreach ($retrievedUser->getAssignedUserRoles() as $userRole) {
print("Assigned User Role:\n");
if ($userRole->getPartnerId()) {
printf("\tPartner ID: %s\n", $userRole->getPartnerId());
} else {
printf("\tAdvertiser ID: %s\n", $userRole->getAdvertiserId());
}
printf("\tUser Role: %s\n", $userRole->getUserRole());
}
} else {
printf(
"No user was found with email address %s",
email-address
);
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-04-09 UTC.
[null,null,["Last updated 2025-04-09 UTC."],[[["\u003cp\u003eThis page provides instructions for retrieving user resources using an email address instead of a user ID.\u003c/p\u003e\n"],["\u003cp\u003eUser resources include user-specific information and permissions details.\u003c/p\u003e\n"],["\u003cp\u003eThe retrieval process involves filtering by email address using the \u003ccode\u003eusers.list\u003c/code\u003e method with the \u003ccode\u003efilter\u003c/code\u003e parameter.\u003c/p\u003e\n"],["\u003cp\u003eCode samples are provided in Java, Python, and PHP demonstrating the retrieval process.\u003c/p\u003e\n"]]],[],null,["# Retrieve a user\n\nThe user resource includes both user-specific information, such as the user\ndisplay name and unique ID, as well as permissions information, or [assigned\nuser roles](/display-video/api/reference/rest/current/users#assigneduserrole).\n\nThis page describes how to retrieve a user resource using an email address.\n\nRetrieve a user from filtered list\n----------------------------------\n\nDisplay \\& Video 360 API user resources have a unique ID assigned by the system upon\ncreation. This ID can be used to retrieve a user resource through the\n[`users.get`](/display-video/api/reference/rest/current/users/get) method. However, if you do not have the\n[`userId`](/display-video/api/reference/rest/current/users#User.FIELDS.user_id) for a user, you can still retrieve the user resource using\nthe [`users.list`](/display-video/api/reference/rest/current/users/list) method with the [`filter`](/display-video/api/reference/rest/current/users/list#body.QUERY_PARAMETERS.filter)\nparameter to filter by email address.\n\nHere's an example of how to retrieve your user resource using this method: \n\n### Java\n\n```java\n// Create a variable to store the desired user once found.\nUser retrievedUser = new User();\n\n// Create the filter string for list call. Using this filter will return all\n// users with an email address containing the specified value.\nString emailFilter = String.format(\"email:\\\"%s\\\"\", email-address);\n\n// Configure the list request.\nUsers.List request =\n service\n .users()\n .list();\n\n// Set the filter for the request.\nrequest.setFilter(emailFilter);\n\n// Create the response and nextPageToken variables.\nListUsersResponse response;\nString nextPageToken = null;\n\ndo {\n // Create and execute the list request.\n response = request.setPageToken(nextPageToken).execute();\n\n // Check if response is empty.\n if (response.isEmpty()) {\n break;\n }\n\n // Iterate over retrieved line items and add to total list.\n for (User user : response.getUsers()) {\n if (user.getEmail() == email-address) {\n retrievedUser = user;\n break;\n }\n }\n\n // Update the next page token.\n nextPageToken = response.getNextPageToken();\n\n} while (!Strings.isNullOrEmpty(nextPageToken) && retrievedUser.isEmpty());\n\n// Print user information if a user was found.\nif (!retrievedUser.isEmpty()) {\n System.out.printf(\"User %s was found.\\n\", retrievedUser.getName());\n System.out.printf(\"User: %s, Display Name: %s, Email: %s\\n\",\n retrievedUser.getUserId(),\n retrievedUser.getDisplayName(),\n retrievedUser.getEmail());\n\n AssignedUserRole userRole;\n\n for (int i = 0; i \u003c retrievedUser.getAssignedUserRoles().size(); i++) {\n userRole = retrievedUser.getAssignedUserRoles().get(i);\n\n System.out.printf(\"Assigned User Role %s:\\n\", i+1);\n\n if (userRole.getPartnerId() != null) {\n System.out.printf(\"Partner ID: %s\\n\", userRole.getPartnerId());\n } else {\n System.out.printf(\"Advertiser ID: %s\\n\", userRole.getAdvertiserId());\n }\n\n System.out.printf(\"User Role: %s\\n\", userRole.getUserRole());\n }\n} else {\n System.out.printf(\"No user was found with email address %s\", email-address);\n}\n```\n\n### Python\n\n```python\n# Create a variable to store the desired user once found.\nretrieved_user = None\n\n# Create the filter string for list call. Using this filter will return all\n# users with an email address containing the specified value.\nemail_filter = 'email:\"%s\"' % email-address\n\n# Create the page token variable.\nnext_page_token = ''\n\nwhile True:\n # Request the users list.\n response = service.users().list(\n filter=email_filter,\n pageToken=next_page_token\n ).execute()\n\n # Check if the response is empty.\n if not response:\n break\n\n # Iterate over retrieved users.\n for user in response['users']:\n # Break from the loop if the user is found.\n if user['email'] == email-address\n retrieved_user = user\n break\n\n # Break out of the loop if there is no next page or if the user has been\n # found.\n if 'nextPageToken' not in response or user is not None:\n break\n\n # Update the next page token.\n next_page_token = response['nextPageToken']\n\n# Print user information if a user was found.\nif retrieved_user:\n print('User %s was found.' % retrieved_user['name'])\n\n print('User: %s, Display Name: %s, Email: %s'\n % (retrieved_user['userId'],\n retrieved_user['displayName'],\n retrieved_user['email']))\n\n for index in range(len(retrieved_user['assignedUserRoles'])):\n print('Assigned User Role %s:' % index)\n\n if 'partnerId' in retrieved_user['assignedUserRoles'][0]:\n print('Partner ID: %s' % retrieved_user['assignedUserRoles'][0]['partnerId'])\n else:\n print('Advertiser ID: %s' %\n retrieved_user['assignedUserRoles'][0]['advertiserId'])\n\n print('User Role: %s' % retrieved_user['assignedUserRoles'][0]['userRole'])\nelse:\n print('No user was found with email address %s' % email-address)\n```\n\n### PHP\n\n```php\n// Create a variable to store the desired user once found.\n$retrievedUser = null;\n\n// Create the filter string with the desired user email.\n$emailFilter = 'email:\"' . \u003cvar translate=\"no\"\u003eemail-address\u003c/var\u003e . '\"';\n\n# Create the page token variable.\n$nextPageToken = '';\n\ndo {\n // Build argument parameters for list call.\n $optParams = array(\n 'filter' =\u003e $emailFilter,\n 'pageToken' =\u003e $nextPageToken\n );\n\n // Call the API, getting the line items with flights ending before the\n // given date.\n $response = $this-\u003eservice-\u003eusers-\u003elistUsers($optParams);\n\n // If no line items are returned, break loop.\n if (!empty($response-\u003egetUsers())) {\n break;\n }\n\n foreach ($response-\u003egetUsers() as $user) {\n if ($user-\u003egetEmail() == \u003cvar translate=\"no\"\u003eemail-address\u003c/var\u003e) {\n $retrievedUser = $user;\n break;\n }\n }\n\n $nextPageToken = $response-\u003egetNextPageToken();\n} while (is_null($retrievedUser) && $nextPageToken);\n\n// Print user information if a user was found.\nif (!is_null($retrievedUser)) {\n printf(\n 'User %s was found.\\nUser: %s, Display Name: %s, Email: %s\\n',\n $retrievedUser-\u003egetName(),\n $retrievedUser-\u003egetUserId(),\n $retrievedUser-\u003egetDisplayName(),\n $retrievedUser-\u003egetEmail()\n );\n\n // Print each assigned user role for user.\n foreach ($retrievedUser-\u003egetAssignedUserRoles() as $userRole) {\n print(\"Assigned User Role:\\n\");\n if ($userRole-\u003egetPartnerId()) {\n printf(\"\\tPartner ID: %s\\n\", $userRole-\u003egetPartnerId());\n } else {\n printf(\"\\tAdvertiser ID: %s\\n\", $userRole-\u003egetAdvertiserId());\n }\n printf(\"\\tUser Role: %s\\n\", $userRole-\u003egetUserRole());\n }\n} else {\n printf(\n \"No user was found with email address %s\",\n \u003cvar translate=\"no\"\u003eemail-address\u003c/var\u003e\n );\n}\n```"]]