# Consultar empresas de la credencial de Previred

> Lista las empresas que la credencial de esta conexión administra en Previred.



{/* AUTO-GENERATED by @emisso/codegen. DO NOT EDIT. */}

|                     |                                                                    |
| ------------------- | ------------------------------------------------------------------ |
| **Tool ID**         | `previred.empresas.consultar`                                      |
| **Nombre MCP**      | `previred__empresas__consultar`                                    |
| **Conector**        | `previred`                                                         |
| **Plano**           | `action`                                                           |
| **Lee el alcance**  | `empresas` (debe estar habilitado en la conexión)                  |
| **Scope (permiso)** | `previred:read`                                                    |
| **Auth**            | `none`                                                             |
| **Versión**         | `1`                                                                |
| **Sensible**        | sí                                                                 |
| **Deprecado**       | no                                                                 |
| **Comportamiento**  | readOnly=true, destructive=false, idempotent=true, openWorld=false |

> **Requiere conexión.** Indica cuál en cada llamada: header `X-Connect-Connection` en REST, campo `connectionId` en el `execute` de MCP y en las opciones del SDK. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale de [`conexiones.estado.consultar`](../conexiones/estado-consultar).

## Qué hace [#qué-hace]

Sirve para saber qué OTRAS empresas se podrían conectar con la misma clave, que es la pregunta típica de un contador con varias empresas a cargo. Ojo: cada conexión de Connect es UNA empresa, así que ver una empresa aquí no significa poder leer sus datos; para eso hay que crear su propia conexión. Lectura pura: NO contacta a Previred ni dispara una sincronización. Si el período nunca se sincronizó devuelve una lista vacía, que NO significa que no haya datos en Previred. Para traer datos nuevos, usa 'previred.conexion.sincronizar' primero. Pagina con 'cursor': cuando la respuesta trae 'cursor' distinto de null hay más filas, reenvía ese valor tal cual; nunca lo construyas a mano.

## Entrada [#entrada]

| Campo    | Tipo                      | Requerido          | Descripción                                                                                                                                                                                       |
| -------- | ------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rut`    | string `^\d{1,8}-[\dkK]$` | no                 | Filtra por el RUT de la EMPRESA, no el de un trabajador. Va sin puntos y con guion antes del dígito verificador.                                                                                  |
| `cursor` | string                    | no                 | Continúa desde donde quedó la página anterior: reenvía tal cual el 'cursor' que vino en la respuesta. Es opaco, así que nunca lo construyas a mano. Sin él, la consulta empieza por el principio. |
| `limit`  | entero 1-500              | no · default `100` | Cuántas filas traer como máximo, entre 1 y 500. Si se omite, 100.                                                                                                                                 |

<details>
  <summary>
    JSON Schema de entrada
  </summary>

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "rut": {
        "type": "string",
        "pattern": "^\\d{1,8}-[\\dkK]$",
        "description": "Filtra por el RUT de la EMPRESA, no el de un trabajador. Va sin puntos y con guion antes del dígito verificador."
      },
      "cursor": {
        "description": "Continúa desde donde quedó la página anterior: reenvía tal cual el 'cursor' que vino en la respuesta. Es opaco, así que nunca lo construyas a mano. Sin él, la consulta empieza por el principio.",
        "type": "string"
      },
      "limit": {
        "default": 100,
        "description": "Cuántas filas traer como máximo, entre 1 y 500. Si se omite, 100.",
        "type": "integer",
        "minimum": 1,
        "maximum": 500
      }
    }
  }
  ```
</details>

## Ejemplo [#ejemplo]

```bash title="curl"
curl -X POST https://connect.emisso.ai/api/v1/tools/previred.empresas.consultar/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
  -H "Content-Type: application/json" \
  -d '{"input":{}}'
```

```ts title="SDK TypeScript"
const data = await connect.tools.previred.empresas.consultar({}, { connectionId: "conn_9tKfR2mQx4Vb" });
```

```json title="MCP · meta-tool execute"
{
  "tool": "previred.empresas.consultar",
  "params": {},
  "connectionId": "conn_9tKfR2mQx4Vb"
}
```

**Salida esperada (200):**

```json
{
  "data": {
    "empresas": [
      {
        "rut": "76543210-3",
        "razonSocial": "COMERCIAL EJEMPLO SPA",
        "codDivision": "00",
        "syncedAt": "2026-08-11T14:02:11.000Z"
      }
    ],
    "cursor": null
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "previred.empresas.consultar",
    "plane": "action",
    "latency_ms": 24,
    "audit_status": "recorded"
  }
}
```

> Sincronizar este alcance no cuesta ninguna petición a Previred: el listado ya llega al iniciar sesión, así que se puede pedir junto a cualquier otro sin costo adicional.

## Salida [#salida]

| Campo                    | Tipo            | Requerido | Descripción                                                                                                                                                                                                          |                                                                                                                                              |
| ------------------------ | --------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `empresas`               | lista de objeto | sí        | Las empresas que la credencial de esta conexión administra en Previred. Ver una empresa aquí no es poder leer sus datos: cada conexión de Connect es UNA empresa, y para las demás hay que crear su propia conexión. |                                                                                                                                              |
| `empresas[].rut`         | string          | sí        | El RUT de la empresa, sin puntos y con guion.                                                                                                                                                                        |                                                                                                                                              |
| `empresas[].razonSocial` | string          | sí        | El nombre legal de la empresa, según Previred.                                                                                                                                                                       |                                                                                                                                              |
| `empresas[].codDivision` | string          | sí        | La división dentro de la empresa, que Previred trata como parte de la selección. '00' es la empresa sin divisiones, que es el caso general.                                                                          |                                                                                                                                              |
| `empresas[].syncedAt`    | string          | sí        | Cuándo se guardó esta fila en Connect (ISO 8601). Dice qué tan fresca está la caché: si la última sincronización es vieja, lo que falta puede existir en Previred y todavía no haberse traído.                       |                                                                                                                                              |
| `cursor`                 | string          | null      | sí                                                                                                                                                                                                                   | Cuando no es null quedan más filas: reenvíalo tal cual en 'cursor' para pedir la página siguiente. En null significa que esta fue la última. |

<details>
  <summary>
    JSON Schema de salida
  </summary>

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "empresas": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "rut": {
              "type": "string",
              "description": "El RUT de la empresa, sin puntos y con guion."
            },
            "razonSocial": {
              "type": "string",
              "description": "El nombre legal de la empresa, según Previred."
            },
            "codDivision": {
              "type": "string",
              "description": "La división dentro de la empresa, que Previred trata como parte de la selección. '00' es la empresa sin divisiones, que es el caso general."
            },
            "syncedAt": {
              "type": "string",
              "description": "Cuándo se guardó esta fila en Connect (ISO 8601). Dice qué tan fresca está la caché: si la última sincronización es vieja, lo que falta puede existir en Previred y todavía no haberse traído."
            }
          },
          "required": [
            "rut",
            "razonSocial",
            "codDivision",
            "syncedAt"
          ],
          "additionalProperties": false
        },
        "description": "Las empresas que la credencial de esta conexión administra en Previred. Ver una empresa aquí no es poder leer sus datos: cada conexión de Connect es UNA empresa, y para las demás hay que crear su propia conexión."
      },
      "cursor": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "Cuando no es null quedan más filas: reenvíalo tal cual en 'cursor' para pedir la página siguiente. En null significa que esta fue la última."
      }
    },
    "required": [
      "empresas",
      "cursor"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Errores de esta tool [#errores-de-esta-tool]

| Código                | HTTP | Reintentable | Qué hacer                                                                     |
| --------------------- | ---- | ------------ | ----------------------------------------------------------------------------- |
| `connection_disabled` | 403  | no           | Reactívala en /connections o usa otra conexión del mismo sistema.             |
| `alcance_not_enabled` | 403  | no           | Habilita el alcance en /connections o quítalo del input de la sincronización. |

Toda llamada puede devolver además los códigos transversales (`validation_error`, `unauthorized`, `scope_not_granted`, `rate_limited`, entre otros): el detalle vive en el [catálogo de errores](../errores).

## Próximos pasos [#próximos-pasos]

* [`previred.conexion.sincronizar`](./conexion-sincronizar): la tool que escribe los datos que esta lectura devuelve.
* [Sincronizar y consultar](/docs/conceptos/sincronizar-consultar): por qué leer datos reales son dos pasos.
