Récupérer des utilisateurs avec le point de terminaison Obtenir utilisateur

Le point de terminaison GET /api/v2/users vous permet de récupérer une liste d’utilisateurs. Ce point de terminaison permet ce qui suit :

  • Rechercher sur la base d’un grand nombre de critères

  • Sélectionner les champs à envoyer

  • Trier les résultats obtenus

Ce point de terminaison est persistant et, à ce titre, nous vous recommandons de l’utiliser pour les processus administratif tels que la modification du nom d’affichage d’un utilisateur existant.

Exemple de demande

Pour rechercher des utilisateurs, faites une requête GET au point de terminaison /api/v2/users. La requête doit inclure un jeton d’accès de Management API. Passez votre requête de recherche dans le paramètre q et attribuez la valeur search_engine au paramètre v3.

Par exemple, pour rechercher un utilisateur dont le courriel est exactement jane@exampleco.com, utilisez q=email:"jane@exampleco.com » :


curl --request GET \
  --url 'https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3' \
  --header 'authorization: Bearer {yourMgmtApiAccessToken}'

Was this helpful?

/
var client = new RestClient("https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer {yourMgmtApiAccessToken}");
IRestResponse response = client.Execute(request);

Was this helpful?

/
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("authorization", "Bearer {yourMgmtApiAccessToken}")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}

Was this helpful?

/
HttpResponse<String> response = Unirest.get("https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3")
  .header("authorization", "Bearer {yourMgmtApiAccessToken}")
  .asString();

Was this helpful?

/
var axios = require("axios").default;

var options = {
  method: 'GET',
  url: 'https://{yourDomain}/api/v2/users',
  params: {q: 'email:"jane@exampleco.com"', search_engine: 'v3'},
  headers: {authorization: 'Bearer {yourMgmtApiAccessToken}'}
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});

Was this helpful?

/
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"authorization": @"Bearer {yourMgmtApiAccessToken}" };

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];

Was this helpful?

/
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3",
  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 {yourMgmtApiAccessToken}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Was this helpful?

/
import http.client

conn = http.client.HTTPSConnection("")

headers = { 'authorization': "Bearer {yourMgmtApiAccessToken}" }

conn.request("GET", "/{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

Was this helpful?

/
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Bearer {yourMgmtApiAccessToken}'

response = http.request(request)
puts response.read_body

Was this helpful?

/
import Foundation

let headers = ["authorization": "Bearer {yourMgmtApiAccessToken}"]

let request = NSMutableURLRequest(url: NSURL(string: "https://{yourDomain}/api/v2/users?q=email%3A%22jane%40exampleco.com%22&search_engine=v3")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()

Was this helpful?

/

Si la recherche aboutit, vous recevrez une réponse semblable à celle-ci :

[
  {
    "email": "jane@exampleco.com",
    "email_verified": false,
    "username": "janedoe",
    "phone_number": "+199999999999999",
    "phone_verified": false,
    "user_id": "auth0|5457edea1b8f22891a000004",
    "created_at": "",
    "updated_at": "",
    "identities": [
      {
        "connection": "Initial-Connection",
        "user_id": "5457edea1b8f22891a000004",
        "provider": "auth0",
        "isSocial": false
      }
    ],
    "app_metadata": {},
    "user_metadata": {},
    "picture": "",
    "name": "",
    "nickname": "",
    "multifactor": [
      ""
    ],
    "last_ip": "",
    "last_login": "",
    "logins_count": 0,
    "blocked": false,
    "given_name": "",
    "family_name": ""
  }
]

Was this helpful?

/

Exemples de requêtes

Vous trouverez ci-dessous quelques exemples des types de requêtes que vous pouvez effectuer à l’aide de Management API.

Cas d’utilisation Requête
Rechercher tous les utilisateurs dont le nom contient « john » name:*john*
Rechercher tous les utilisateurs dont le nom est exactement « jane » name:"jane"
Rechercher tous les noms d’utilisateurs commençant par « john » name:john*
Rechercher les noms d’utilisateurs commençant par « jane » et se terminant par « smith » name:jane*smith
Rechercher tous les utilisateurs dont le courriel est exactement « john@exampleco.com » email:"john@exampleco.com"
Rechercher tous les utilisateurs dont le courriel est exactement « john@exampleco.com » ou « jane@exampleco.com » en utilisant OR email:("john@exampleco.com" OR "jane@exampleco.com")
Rechercher des utilisateurs dont le courriel n’a pas été vérifié email_verified:false OR NOT _exists_:email_verified
Rechercher les utilisateurs dont le champ user_metadata nommé full_name a pour valeur « John Smith » user_metadata.full_name:"John Smith"
Rechercher des utilisateurs à partir d’une connexion particulière identities.connection:"google-oauth2"
Rechercher tous les utilisateurs qui ne se sont jamais connectés (NOT _exists_:logins_count OR logins_count:0)
Rechercher tous les utilisateurs qui se sont connectés avant 2018. last_login:[* TO 2017-12-31]
Rechercher tous les utilisateurs dont la dernière connexion a eu lieu en décembre 2017. last_login:{2017-11 TO 2017-12], last_login:[2017-12-01 TO 2017-12-31]
Rechercher tous les utilisateurs ayant un nombre de connexions >= 100 et <= 200 logins_count:[100 TO 200]
Rechercher tous les utilisateurs ayant un nombre de connexions >= 100 logins_count:[100 TO *]
Rechercher tous les utilisateurs ayant un nombre de connexions > 100 et < 200 logins_count:{100 TO 200}
Rechercher tous les utilisateurs dont le domaine de courriel est « exempleco.com » email.domain:"exampleco.com"

Limites

Le point de terminaison renvoie un maximum de 50 utilisateurs, même si davantage d’utilisateurs correspondent à votre requête.

Si vous voulez obtenir plus de 50 utilisateurs, utilisez le paramètre page pour afficher un plus grand nombre de pages de résultats. Chaque page contient 50 utilisateurs. Par exemple, vous pouvez préciser &page=2 pour afficher les résultats 51-100, préciser &page=3 pour afficher les résultats 101-150, et ainsi de suite. Cependant, ce point de terminaison ne renvoie jamais un total de plus de 1 000 utilisateurs ayant les mêmes critères de recherche, même avec le paramètre page.

Les données utilisateur qui peuvent être indexées, interrogées et renvoyées par le point de terminaison de recherche utilisateur sont limitées à 1 Mo par utilisateur. Pour plus d’informations sur la manière dont cela affecte les métadonnées personnalisées de plus de 1 Mo, consultez Noms des champs de métadonnées et types de données. Le point de terminaison obtenir utilisateur doit être utilisé pour récupérer tous les attributs de l’utilisateur pour les profils utilisateurs surdimensionnés.

Si vous avez besoin d’une exportation complète de tous vos utilisateurs, utilisez la tâche d’exportation ou l’extension Importation/Exportation des utilisateurs..

Si vous obtenez l’erreur 414 Request-URI Too Large, cela signifie que votre chaîne de requête est plus longue que la longueur prise en charge. Dans ce cas, affinez votre recherche.

Nous ne recommandons pas l’utilisation de ce point de terminaison pour :

  • Les opérations qui nécessitent une cohérence immédiate. Utilisez plutôt le point de terminaison Obtenir des utilisateurs par courriel ou Obtenir des utilisateurs par identifiant.

  • Les exportations d’utilisateurs. Utilisez plutôt le point de terminaison Exportation utilisateur.

  • Les opérations qui nécessitent une recherche de l’utilisateur dans le cadre des processus d’authentification. Utilisez plutôt le point de terminaison Obtenir des utilisateurs par courriel ou Obtenir des utilisateurs par identifiant.

  • La recherche d’utilisateurs pour l’association de comptes par courriel. Utilisez plutôt le point de terminaison Obtenir des utilisateurs par courriel.

En savoir plus