Za pomocą metody users.list() interfejsu Directory API możesz wyszukiwać użytkowników, którzy pasują do określonych atrybutów. Ta metoda akceptuje parametr query, który jest zapytaniem wyszukiwania zawierającym co najmniej 1 klauzulę wyszukiwania. Każda klauzula wyszukiwania składa się z 3 części:
- Pole
 - Atrybut użytkownika, który jest wyszukiwany. Na przykład: 
givenName. - Operator
 - Test wykonywany na danych w celu zapewnienia dopasowania. Na przykład operator 
:sprawdza, czy atrybut tekstowy zawiera wartość. - Wartość
 - Treści atrybutu, który jest testowany. Na przykład: 
Jane. 
Aby wyszukać w zapytaniu wiele pól, dodaj każdą klauzulę wyszukiwania oddzieloną spacjami. Operacja jest domyślną operacją AND.
Pola
| Pole | Typ wartości | Operatory | Opis | 
|---|---|---|---|
| Nie określono | ciąg znaków | Porównaj z wartością w givenName, familyName lub email. | 
|
name | 
ciąg znaków | =, : | 
Wartość utworzona przez złączenie parametrów givenName i familyName. | 
email | 
ciąg znaków | =, :, :{PREFIX}* | 
adresy e-mail użytkownika, w tym aliasy; | 
givenName | 
ciąg znaków | =, :, :{PREFIX}* | 
Imię użytkownika. | 
familyName | 
ciąg znaków | =, :, :{PREFIX}* | 
Nazwisko lub nazwa użytkownika. | 
isAdmin | 
wartość logiczna | = | 
Określa, czy użytkownik ma uprawnienia superadministratora. | 
isDelegatedAdmin | 
wartość logiczna | = | 
Czy użytkownik ma delegowane uprawnienia administratora. | 
isSuspended | 
wartość logiczna | = | 
czy konto użytkownika jest zawieszone. | 
isArchived | 
wartość logiczna | = | 
czy konto użytkownika jest zarchiwizowane. | 
im | 
ciąg znaków | =, : | 
Identyfikator sieci do obsługi komunikatora. | 
externalId | 
ciąg znaków | =, : | 
Wartość identyfikatora zewnętrznego. | 
manager | 
ciąg znaków | = | 
Adres e-mail menedżera użytkownika, bezpośrednio lub wyżej w łańcuchu zarządzania. | 
managerId | 
ciąg znaków | = | 
Identyfikator menedżera użytkownika, bezpośrednio lub w łańcuchu zarządzania. | 
directManager | 
ciąg znaków | = | 
Adres e-mail bezpośredniego przełożonego użytkownika. | 
directManagerId | 
ciąg znaków | = | 
Identyfikator bezpośredniego menedżera użytkownika. | 
address | 
ciąg znaków | : | 
Dopasowuje wszystkie pola adresu. | 
addressPoBox | 
ciąg znaków | =, : | 
Skrzynka pocztowa. | 
addressExtended | 
ciąg znaków | =, : | 
Rozszerzony adres, np. zawierający podregion. | 
addressStreet | 
ciąg znaków | =, : | 
Ulica i numer. | 
addressLocality | 
ciąg znaków | =, : | 
Miasto lub miejscowość z adresu. | 
addressRegion | 
ciąg znaków | =, : | 
Skrót nazwy prowincji lub stanu. | 
addressPostalCode | 
ciąg znaków | =, : | 
Kod pocztowy. | 
addressCountry | 
ciąg znaków | =, : | 
kraj, | 
orgName | 
ciąg znaków | =, : | 
Nazwa organizacji. | 
orgTitle | 
ciąg znaków | =, : | 
Tytuł użytkownika w organizacji. | 
orgDepartment | 
ciąg znaków | =, : | 
Dział w organizacji. | 
orgDescription | 
ciąg znaków | =, : | 
Opis organizacji. | 
orgCostCenter | 
ciąg znaków | =, : | 
Centrum kosztów organizacji. | 
phone | 
ciąg znaków | = | 
Numer telefonu użytkownika. | 
orgUnitPath | 
ciąg znaków | = | 
Pełna ścieżka jednostki organizacyjnej. Dopasowuje wszystkie łańcuchy jednostek organizacyjnych podrzędnych do docelowej jednostki. Na przykład 'orgUnitPath=/' zwraca wszystkich użytkowników w organizacji. Z tego pola można korzystać tylko wtedy, gdy viewType=admin_view. | 
isEnrolledIn2Sv | 
wartość logiczna | = | 
Określa, czy użytkownik korzysta z weryfikacji dwuetapowej. | 
isEnforcedIn2Sv | 
wartość logiczna | = | 
Określa, czy weryfikacja dwuetapowa jest wymuszana na koncie użytkownika. | 
schemaName.fieldName | 
? | ? | Atrybut niestandardowy użytkownika, na który wskazuje jego schemat i nazwa pola. Właściwość indexed pola musi mieć wartość true. | 
Typy wartości
| Typ wartości | Odpowiednik w schemacie fieldType | Uwagi | 
|---|---|---|
| ciąg znaków | STRING, EMAIL, PHONE | 
Jeśli zapytanie zawiera spacje, ująć je w cudzysłowie '. W zapytaniach należy stosować cudzysłów pojedynczy z użyciem znaku \', np. 'Valentine\'s Day'. | 
| wartość logiczna | BOOL | 
Wartość musi wynosić true lub false. Obsługuje tylko operator =. | 
| liczba | INT64, DOUBLE | 
Jako separatora dziesiętnego należy używać kropki, a nie separatora tysięcy, na przykład 150430.25. | 
| data | DATE | 
W formacie RRRR-MM-DD, np. 2001-02-15. | 
Operatory
| Operator | Obsługiwane typy wartości | Uwagi | 
|---|---|---|
= | 
string, boolean, number, date | Pole i wartość dokładnie pasują do siebie. Na przykład reguła givenName=Jane pasuje do wszystkich użytkowników z atrybutem givenName o wartości "Jane", ale nie "Jane Ann". Obsługiwane w większości pól ciągu znaków (patrz wyżej). | 
: | 
ciąg znaków | Pole zawiera w wartości pełne słowa w kolejności. Na przykład zapytanie z wartością givenName:Jane pasuje do użytkowników z wartością givenName = "Jane" i "Jane Ann", ale nie "Janet". Zapytanie wielowyrazowe dotyczące 'givenName:Mary Ann' pasuje do wartości "Mary Ann Evans" i "Sarah Mary Ann", ale nie do "Ann Mary". Obsługiwane w większości pól ciągu znaków (patrz wyżej). | 
:{PREFIX}* | 
ciąg znaków | Pole zaczyna się od wartości. Na przykład zapytanie z wartością givenName:Jane* pasuje do użytkowników z wartością givenName = "Jane", "Jane Ann" = "Janet", ale nie "Sarah Jane". Obsługiwane tylko w przypadku ograniczonego zbioru pól ciągu znaków (patrz wyżej). Nieobsługiwane w przypadku atrybutów niestandardowych. | 
:[{MIN},{MAX}] | 
liczba, data | Pole mieści się w zakresie. Aby dopasowanie było możliwe, wartość pola musi być większa lub równa {MIN} i mniejsza niż {MAX}. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. | 
> | 
liczba, data | Pole jest większe niż wartość. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. | 
>= | 
liczba, data | Pole jest większe lub równe wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. | 
< | 
liczba, data | Pole jest mniejsze niż wartość. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. | 
<= | 
liczba, data | Pole jest mniejsze lub równe wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. | 
Przykłady
Wszystkie zapytania używają metody users.list, która ma żądanie HTTP podobne do tego (przerwy w wierszach w celu ułatwienia czytelności):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Wyszukiwanie użytkownika według nazwy
Pole zapytania name jest testowane na podstawie wartości utworzonej przez złączenie wartości pól givenName i familyName. Zapytanie name='Jane' nie zwraca żadnych wyników dla użytkownika z adresem givenName='Jane' i familyName='Smith'.
name='Jane Smith'
Wyszukiwanie użytkowników na podstawie pola givenName LUB familyName zawierającego wartość
name:'Jane'
Wyszukiwanie użytkowników pasujących do prefiksu adresu e-mail
email:admin*
Wyszukiwanie wszystkich superadministratorów
isAdmin=true
Szukaj użytkowników, których orgTitles zawiera „Menedżer”
orgTitle:Manager
Wyszukiwanie użytkowników, którzy mają wspólnego menedżera w łańcuchu raportowania
manager='janesmith@example.com'
Wyszukiwanie użytkowników mających tego samego bezpośredniego menedżera
directManager='bobjones@example.com'
Wyszukiwanie użytkowników w danym kraju
addressCountry='Sweden'
Wyszukiwanie użytkowników w określonej organizacji
orgName='Human Resources'
Wyszukiwanie menedżerów w określonej organizacji
orgName=Engineering orgTitle:Manager
Wyszukiwanie niestandardowych atrybutów użytkowników
Wyszukiwanie wszystkich pracowników, którzy pracują nad konkretnym projektem
EmploymentData.projects:'GeneGnomes'
Wyszukiwanie wszystkich pracowników w określonej lokalizacji
EmploymentData.location='Atlanta'
Wyszukiwanie wszystkich pracowników powyżej poziomu stanowiska 7
EmploymentData.jobLevel>=7
Wyszukiwanie wszystkich pracowników o poziomie stanowiska >= 5 i < 8
EmploymentData.jobLevel:[5,8]
Wyszukiwanie wszystkich pracowników, którzy korzystają z weryfikacji dwuetapowej
isEnrolledIn2Sv=true
Wyszukiwanie wszystkich pracowników, którzy muszą korzystać z weryfikacji dwuetapowej
isEnforcedIn2Sv=true