# Listar Clientes

<mark style="color:blue;">`GET`</mark> `https://api.persat.com.ar/v1/clients`

#### Path Parameters

| Name          | Type   | Description                                                                           |
| ------------- | ------ | ------------------------------------------------------------------------------------- |
| limit         | number | Cantidad de clientes a obtener partiendo desde offset. El valor máximo es 100         |
| offset        | number | Indice comenzando desde 0. Indica a partir de que elemento queremos comenzar a listar |
| last\_updated | string | Fecha en formato ISO. Ejemplo: 2021-09-09T14:30:00.000Z                               |
| group\_id     | number | Numero de id de grupo de clientes a obtener. Debe ser mayor o igual a 0               |

#### Headers

| Name                                            | Type   | Description     |
| ----------------------------------------------- | ------ | --------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Bearer API\_KEY |

{% tabs %}
{% tab title="200 Se obtuvo el listado correctamente." %}

```json
{
    "success": true,
    "paging": {
        "offset": 0,
        "limit": 20,
        "result": 20,
        "total": 14785
    },
    "data": [
        {
            "uid_client": "131058",
            "company_name": "Empresa s.r.l..",
            "company_description": "Empresa de tapizados",
            "type_id": 2,
            "group_id": 3,
            "latitude": -34.90097,
            "longitude": -56.1875,
            "service_time": 20,          // Opcional
            "wt": [480, 780],            // Opcional
            "street": "CERRO LARGO",
            "street_nbr": "1350",
            "neighborhood": "",
            "city": "Buenos Aires",
            "country": "Argentina",
            "last_updated": "2021-09-09T14:30:05.000Z",
            "custom_fields": {
                "2": {
                    "name": "Telefono",
                    "value": "5555-2122"
                },
                "8": {
                    "name": "Entre calle 1",
                    "value": "11100"
                },
                "9": {
                    "name": "Entre calle 2",
                    "value": ""
                },
                "10": {
                    "name": "Mail de notificación",
                    "value": "info@empresa.com.ar"
                },
                "13": {
                    "name": "Nombre del Contacto",
                    "value": "Pedro Lopez"
                }
            }
        }, 
        { ... }      // Otro cliente
    ]
}


```

{% endtab %}

{% tab title="400 Error en alguno de los campos enviados. userMessage contiene informacipon adicional." %}

```json
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'offset' debe ser un número"
    }
}
```

{% endtab %}
{% endtabs %}

Los campos son explicados en la sección [Obtener un cliente](/entidades-basicas/clientes/obtener-un-cliente.md)

## <sub>`Parametros Opcionales`</sub>&#x20;

Por defecto, el listado devuele los primeros 20 resultados. En caso de querer los siguientes 20, debemos agregar el parámetro `offset`. También podemos obtener más de 20 resultados con el parámetro `limit`&#x20;

Curl de ejemplo con estos dos parametros:

```bash
curl --location --request GET "https://api.persat.com.ar/v1/clients?limit=5&offset=20" \
  --header "Authorization: Bearer YOUR_API_KEY"
```

Un parametro opcional, pero muy util para hacer una busqueda mas especifica a la hora de obtener los clientes, es el **group\_id** ([Grupo de clientes](/entidades-basicas/clientes/listar-grupos-de-clientes.md)), permitiendo obtener a los clientes que coincidan con ese **id de grupo.**

Otro parámetro opcional, es **last\_updated**, que es muy util a la hora de realizar una sincronización con otro sistema, y solo obtener los clientes que fueron modificados o creados despues de la fecha indicada incluyendola (mayor o igual)

A continuación un ejemplo con curl, en donde solicitamos 5 clientes desde la posición 20, que hayan sido modificados despues e inclusive el 10 de Septiembre de 2021 a las 14:30 UTC-0 y el Id del grupo 2.

```bash
curl --location --request GET "https://api.persat.com.ar/v1/clients?limit=5&offset=20&last_updated=2021-09-10T14:30:00.000Z&group_id=2" \
  --header "Authorization: Bearer YOUR_API_KEY"
```

## Sincronización

El procedimiento correcto para hacer la sincronización de un listado con muchos clientes es el siguiente:

La primera vez, realizamos un request sin el parametro last\_updated y/o group\_id, e iteramos modificando el offet hasta barrer todos los clientes. Una vez sincronizados guardamos la fecha UTC en que realizamos esta primer sincronización.

Luego, cada vez que queremos sincronizar, repetimos el procedimiento anterior pero indicando en el parámetro **last\_updated** la fecha guardada anteriormente. Finalizado el proceso guardamos la nueva fecha de sincronización.

De esta forma evitamos retrabajar clientes que no han sido modificados


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.api.persat.com.ar/entidades-basicas/clientes/listar-clientes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
