> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Aprenda a obtener listas de usuarios mediante el endpoint get_users.

# Recuperar usuarios con el endpoint get_users

export const AuthCodeGroup = ({children, dropdown}) => {
  const [processedChildren, setProcessedChildren] = useState(children);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      unsubscribe = window.autorun(() => {
        const processChildren = node => {
          if (typeof node === "string") {
            let processedNode = node;
            for (const [key, value] of window.rootStore.variableStore.values.entries()) {
              const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
              processedNode = processedNode.replaceAll(new RegExp(escapedKey, "g"), value);
            }
            return processedNode;
          } else if (Array.isArray(node)) {
            return node.map(processChildren);
          } else if (node && node.props && node.props.children) {
            return {
              ...node,
              props: {
                ...node.props,
                children: processChildren(node.props.children)
              }
            };
          }
          return node;
        };
        setProcessedChildren(processChildren(children));
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  return <CodeGroup dropdown={dropdown}>{processedChildren}</CodeGroup>;
};

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****ENMASCARADO*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

El [endpoint `GET /api/v2/users`](https://auth0.com/docs/api/management/v2#!/Users/get_users) le permite obtener una lista de usuarios. Con este endpoint, puede:

* Buscar según diversos criterios
* Seleccionar los campos que se devolverán
* Ordenar los resultados devueltos

Este endpoint tiene **consistencia eventual** y, por lo tanto, recomendamos usarlo para procesos administrativos internos, como cambiar el nombre para mostrar de un usuario existente.

<div id="request-example">
  ## Ejemplo de solicitud
</div>

Para buscar usuarios, realiza una solicitud `GET` al [`endpoint /api/v2/users`](https://auth0.com/docs/api/management/v2#!/Users/get_users). La solicitud debe incluir un [token de acceso de la Management API](/es/docs/secure/tokens/access-tokens/management-api-access-tokens). Pasa la consulta de búsqueda al parámetro `q` y establece el parámetro `search_engine` en `v3`.

Por ejemplo, para buscar un usuario cuyo correo electrónico sea exactamente `jane@exampleco.com`, usa `q=email:"jane@exampleco.com"`:

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

  ```csharp C# theme={null}
  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);
  ```

  ```go Go theme={null}
  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))

  }
  ```

  ```java Java theme={null}
  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();
  ```

  ```javascript Node.JS theme={null}
  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);
  });
  ```

  ```php PHP theme={null}
  $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;
  }
  ```

  ```python Python theme={null}
  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"))
  ```

  ```ruby Ruby theme={null}
  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
  ```
</AuthCodeGroup>

Si la solicitud se realiza correctamente, recibirás una respuesta como esta:

```json lines expandable theme={null}
[
  {
    "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": ""
  }
]
```

<div id="query-examples">
  ## Ejemplos de consultas
</div>

A continuación, se muestran algunos ejemplos de los tipos de consultas que puede realizar con la <Tooltip tip="Management API: producto que permite a los clientes realizar tareas administrativas." cta="Ver glosario" href="/es/docs/glossary?term=Management+API">Management API</Tooltip>.

| Caso de uso                                                                                                                                                                          | Consulta                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| Buscar todos los usuarios cuyo nombre contiene "john"                                                                                                                                | `name:\*john\*`                                                            |
| Buscar todos los usuarios cuyo nombre es exactamente "jane"                                                                                                                          | `name:"jane"`                                                              |
| Buscar todos los usuarios cuyo nombre comienza con "john"                                                                                                                            | `name:john*`                                                               |
| Buscar usuarios cuyo nombre comienza con "jane" y termina con "smith"                                                                                                                | `name:jane*smith`                                                          |
| Buscar todos los usuarios cuyo correo electrónico es exactamente "[john@exampleco.com](mailto:john@exampleco.com)"                                                                   | `email:"john@exampleco.com"`                                               |
| Buscar todos los usuarios cuyo correo electrónico es exactamente "[john@exampleco.com](mailto:john@exampleco.com)" o "[jane@exampleco.com](mailto:jane@exampleco.com)" mediante `OR` | `email:("john@exampleco.com" OR "jane@exampleco.com")`                     |
| Buscar usuarios sin correo electrónico verificado                                                                                                                                    | `email_verified:false OR NOT \_exists_\:email_verified`                    |
| Buscar usuarios que tienen el campo `user_metadata` llamado `full_name` con el valor "John Smith"                                                                                    | `user_metadata.full_name:"John Smith"`                                     |
| Buscar usuarios de una conexión específica                                                                                                                                           | `identities.connection:"google-oauth2"`                                    |
| Buscar todos los usuarios que nunca han iniciado sesión                                                                                                                              | `(NOT \_exists_\:logins_count OR logins_count:0)`                          |
| Buscar todos los usuarios que iniciaron sesión antes de 2018                                                                                                                         | `last_login:[* TO 2017-12-31]`                                             |
| Buscar todos los usuarios cuyo último inicio de sesión fue en diciembre de 2017                                                                                                      | `last_login:[2017-11 TO 2017-12]`, `last_login:[2017-12-01 TO 2017-12-31]` |
| Buscar todos los usuarios con un número de inicios de sesión >= 100 y \<= 200                                                                                                        | `logins_count:[100 TO 200]`                                                |
| Buscar todos los usuarios con un número de inicios de sesión >= 100                                                                                                                  | `logins_count:[100 TO *]`                                                  |
| Buscar todos los usuarios con un número de inicios de sesión > 100 y \< 200                                                                                                          | `logins_count:\{100 TO 200}`                                               |
| Buscar todos los usuarios cuyo dominio de correo electrónico es "exampleco.com"                                                                                                      | `email.domain:"exampleco.com"`                                             |

<div id="limitations">
  ## Limitaciones
</div>

* El endpoint devuelve un máximo de 50 usuarios, aunque haya más usuarios que coincidan con tu consulta.
* Si necesitas devolver más de 50 usuarios, usa el parámetro `page` para mostrar más páginas de resultados. Cada página contiene 50 usuarios. Por ejemplo, puedes especificar `&page=2` para mostrar los resultados 51-100, `&page=3` para mostrar los resultados 101-150, y así sucesivamente. Sin embargo, este endpoint nunca devuelve más de 1000 usuarios en total con los mismos criterios de búsqueda, incluso con paginación.
* Hay un límite de 1 MB por usuario para los datos de usuario que se pueden indexar, consultar y devolver mediante el [endpoint de búsqueda de usuarios](https://auth0.com/docs/api/management/v2/users/get-users). Para obtener más información sobre cómo esto afecta a los metadatos personalizados de más de 1 MB, consulta [Nombres de campos de metadatos y tipos de datos](/es/docs/manage-users/user-accounts/metadata/metadata-fields-data#size-limits-and-storage). Debes usar el [endpoint get user](https://auth0.com/docs/api/management/v2/users/get-users-by-id) para recuperar todos los atributos del usuario de perfiles de usuario de gran tamaño.
* De forma predeterminada, el endpoint `GET /api/v2/users` devuelve los resultados en un orden determinista para que la misma consulta produzca resultados con el mismo orden lógico cada vez. Este comportamiento se controla mediante el parámetro de consulta `primary_order`:

  * `primary_order=true` (predeterminado): los resultados de consultas idénticas se ordenan de forma consistente.
  * `primary_order=false`: los resultados se devuelven en un orden no determinista, lo que puede mejorar el rendimiento en consultas complejas.
* Si tu aplicación no requiere un orden consistente en los resultados de búsqueda y tus consultas son lo bastante breves como para no depender de la paginación, establece `primary_order=false` para mejorar el rendimiento de las consultas.
* Si necesitas una exportación completa de todos tus usuarios, usa el [trabajo de exportación](https://auth0.com/docs/api/management/v2#!/Jobs/post_users_exports) o la extensión [User Import / Export](/es/docs/customize/extensions/user-import-export-extension).
* Si recibes el error `414 Request-URI Too Large`, significa que la cadena de consulta supera la longitud admitida. En ese caso, refina tu búsqueda.

**No** recomendamos que uses este endpoint para lo siguiente:

* Operaciones que requieren consistencia inmediata. En su lugar, usa el [endpoint Get Users by Email](/es/docs/manage-users/user-search/retrieve-users-with-get-users-by-email-endpoint) o el [endpoint Get Users by ID](/es/docs/manage-users/user-search/retrieve-users-with-get-users-by-id-endpoint).
* Exportaciones de usuarios. En su lugar, usa el [endpoint User Export](/es/docs/manage-users/user-migration/bulk-user-exports).
* Operaciones que requieren la búsqueda de usuarios como parte de procesos de autenticación. En su lugar, usa el endpoint Get Users by Email o el endpoint Get Users by ID.
* Buscar usuarios para [Account Linking](/es/docs/manage-users/user-accounts/user-account-linking) por correo electrónico. En su lugar, usa el endpoint Get Users by Email.

<div id="learn-more">
  ## Más información
</div>

* [Sintaxis de consultas de búsqueda de usuarios](/es/docs/manage-users/user-search/user-search-query-syntax)
* [Ordenar los resultados de búsqueda](/es/docs/manage-users/user-search/sort-search-results)
* [Ver los resultados de búsqueda por página](/es/docs/manage-users/user-search/view-search-results-by-page)
* [Exportación masiva de usuarios](/es/docs/manage-users/user-migration/bulk-user-exports)
