# Buscar documentos del expediente

> Distingue documento principal, certificado, anexo y ebook.



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

|                     |                                                                    |
| ------------------- | ------------------------------------------------------------------ |
| **Tool ID**         | `pjud.documentos.consultar`                                        |
| **Nombre MCP**      | `pjud__documentos__consultar`                                      |
| **Conector**        | `pjud`                                                             |
| **Plano**           | `action`                                                           |
| **Lee el alcance**  | `expedientes` (debe estar habilitado en la conexión)               |
| **Scope (permiso)** | `pjud: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]

Referenciado significa que existe una referencia en el portal; solo descargado acredita que Connect recuperó el archivo. Para leer páginas usa documentos.detallar. Lee exclusivamente datos ya sincronizados de la conexión. Para actualizarlos usa pjud.conexion.sincronizar. Revisa estadoDatos, observadoHasta y cobertura antes de interpretar una lista vacía.

## Entrada [#entrada]

| Campo         | Tipo                                                                               | Requerido         | Descripción                                                                      |
| ------------- | ---------------------------------------------------------------------------------- | ----------------- | -------------------------------------------------------------------------------- |
| `causaId`     | string `^pjc_[a-zA-Z0-9_-]{16,80}$`                                                | sí                | ID obtenido de pjud.causas.consultar. No es el rol escrito en el portal.         |
| `cuadernoId`  | string `^pjq_[a-zA-Z0-9_-]{16,80}$`                                                | no                | Identificador estable de cuaderno, obtenido de causas.detallar.                  |
| `actuacionId` | string `^pja_[a-zA-Z0-9_-]{16,80}$`                                                | no                | Identificador estable de actuación dentro de su causa y ámbito de historia.      |
| `busqueda`    | string                                                                             | no                | Texto de búsqueda entre los datos persistidos de la conexión.                    |
| `clase`       | `"principal"` · `"certificado_envio"` · `"anexo"` · `"ebook"` · `"sin_clasificar"` | no                | Clase documental identificada desde la referencia de OJV.                        |
| `desde`       | string `^\d{4}-\d{2}-\d{2}$`                                                       | no                | Día inicial del rango en AAAA-MM-DD, inclusive.                                  |
| `hasta`       | string `^\d{4}-\d{2}-\d{2}$`                                                       | no                | Día final del rango en AAAA-MM-DD, inclusive.                                    |
| `cursor`      | string                                                                             | no                | Cursor opaco de la respuesta anterior. Reenvíalo sin construirlo ni modificarlo. |
| `limit`       | entero 1-100                                                                       | no · default `50` | Máximo de filas por página; conserva el cursor para continuar en el mismo corte. |

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

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "causaId": {
        "type": "string",
        "pattern": "^pjc_[a-zA-Z0-9_-]{16,80}$",
        "description": "ID obtenido de pjud.causas.consultar. No es el rol escrito en el portal."
      },
      "cuadernoId": {
        "type": "string",
        "pattern": "^pjq_[a-zA-Z0-9_-]{16,80}$",
        "description": "Identificador estable de cuaderno, obtenido de causas.detallar."
      },
      "actuacionId": {
        "type": "string",
        "pattern": "^pja_[a-zA-Z0-9_-]{16,80}$",
        "description": "Identificador estable de actuación dentro de su causa y ámbito de historia."
      },
      "busqueda": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200,
        "description": "Texto de búsqueda entre los datos persistidos de la conexión."
      },
      "clase": {
        "type": "string",
        "enum": [
          "principal",
          "certificado_envio",
          "anexo",
          "ebook",
          "sin_clasificar"
        ],
        "description": "Clase documental identificada desde la referencia de OJV."
      },
      "desde": {
        "description": "Día inicial del rango en AAAA-MM-DD, inclusive.",
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        "x-emisso-formato": "AAAA-MM-DD"
      },
      "hasta": {
        "description": "Día final del rango en AAAA-MM-DD, inclusive.",
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        "x-emisso-formato": "AAAA-MM-DD"
      },
      "cursor": {
        "type": "string",
        "minLength": 1,
        "maxLength": 4096,
        "description": "Cursor opaco de la respuesta anterior. Reenvíalo sin construirlo ni modificarlo."
      },
      "limit": {
        "default": 50,
        "description": "Máximo de filas por página; conserva el cursor para continuar en el mismo corte.",
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    "required": [
      "causaId"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Salida [#salida]

| Campo                                     | Tipo                                                                                                             | Requerido         | Descripción                                                                                                                                        |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ---------------------- | --------------------- | ------------------ | ------- | ------- | ---------- | -------------- | ------- | --- | ----------------- | --- | ------------------------ | -------------------------------------------- | ----------------- | ----------------------- | ---- | ----------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `documentos`                              | lista de objeto                                                                                                  | sí                | Referencias documentales y estado efectivo de descarga y extracción.                                                                               |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].documentoId`                | string `^pjd_[a-zA-Z0-9_-]{16,80}$`                                                                              | sí                | ID obtenido de pjud.documentos.consultar; nunca un enlace ni un token de OJV.                                                                      |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].causaId`                    | string `^pjc_[a-zA-Z0-9_-]{16,80}$`                                                                              | sí                | ID obtenido de pjud.causas.consultar. No es el rol escrito en el portal.                                                                           |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].cuadernoId`                 | string `^pjq_[a-zA-Z0-9_-]{16,80}$`                                                                              | null              | sí                                                                                                                                                 | Cuaderno al que corresponde la información; null para una sección de toda la causa.         |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].actuacionId`                | string `^pja_[a-zA-Z0-9_-]{16,80}$`                                                                              | null              | sí                                                                                                                                                 | Actuación asociada; null para información de toda la causa.                                 |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].descripcion`                | string                                                                                                           | sí                | Descripción de la pieza o cambio observado.                                                                                                        |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].tipoFuente`                 | string                                                                                                           | null              | sí                                                                                                                                                 | Tipo de pieza o trámite informado por la fuente.                                            |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].folioFuente`                | string                                                                                                           | no                | Folio del documento en su listado de origen, distinto del folio de la actuación.                                                                   |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].anexoObservado`             | objeto                                                                                                           | no                | Solo para anexos civiles sin folio publicado. Los bytes diferentes se conservan separados y la cobertura del listado permanece parcial.            |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].anexoObservado.identidad`   | string                                                                                                           | sí                | Identifica este archivo por sus bytes y su causa o actuación. No identifica un documento judicial ni relaciona archivos diferentes como versiones. |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].anexoObservado.sha256`      | string `^[a-f0-9]{64}$`                                                                                          | sí                | Huella inmutable del archivo observado, incluso si después se restringe su acceso.                                                                 |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].anexoObservado.referencias` | lista de objeto                                                                                                  | sí                | Referencias del listado que apuntaban a estos mismos bytes en el mismo ámbito. Se conservan repeticiones; no implican identidad judicial.          |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].clase`                      | `"principal"` · `"certificado_envio"` · `"anexo"` · `"ebook"` · `"sin_clasificar"`                               | sí                | Clase documental identificada desde la referencia de OJV.                                                                                          |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].fechaFuente`                | string `^\d{4}-\d{2}-\d{2}$`                                                                                     | null              | sí                                                                                                                                                 | Día de fuente asociado a la pieza o al cambio en AAAA-MM-DD; null si no está disponible.    |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].descarga`                   | `"referenciado"` · `"descargado"` · `"fallido"` · `"no_accesible"`                                               | sí                | Descargado confirma bytes originales guardados; referenciado solo confirma un enlace observado.                                                    |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].extraccion`                 | `"pendiente"` · `"extraido"` · `"parcial"` · `"requiere_ocr"` · `"fallido"` · `"no_disponible"`                  | sí                | Disponibilidad del texto. Parcial o requiere\_ocr no significa que falten los bytes originales.                                                    |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].paginas`                    | entero                                                                                                           | null              | sí                                                                                                                                                 | Páginas detectadas en el archivo; null si no se pudo determinar.                            |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].sha256`                     | string `^[a-f0-9]{64}$`                                                                                          | null              | sí                                                                                                                                                 | Hash de los bytes de la versión descargada. null si todavía no se recuperó el archivo.      |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].fuente`                     | objeto                                                                                                           | sí                | Procedencia y fecha de observación. No contiene credenciales ni enlaces privados.                                                                  |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].fuente.sistema`             | string                                                                                                           | sí                | Sistema judicial del que procede la observación.                                                                                                   |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].fuente.ruta`                | `"mis_causas"` · `"consulta_unificada"` · `"ingreso_ojv"`                                                        | sí                | Superficie OJV utilizada para recuperar la información.                                                                                            |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].fuente.portalUrl`           | `"https://oficinajudicialvirtual.pjud.cl/indexN.php"` · `"https://ojv.pjud.cl/kpitec-ojv-web/views/login.html"`  | sí                | Acceso al portal; puede requerir sesión. No contiene enlaces privados ni tokens de OJV.                                                            |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `documentos[].fuente.observadoEn`         | string \`^(?:(?:\d\d\[2468]\[048]                                                                                | \d\d\[13579]\[26] | \d\d0\[48]                                                                                                                                         | \[02468]\[048]00                                                                            | \[13579]\[26]00)-02-29 | \d{4}-(?:(?:0\[13578] | 1\[02])-(?:0\[1-9] | \[12]\d | 3\[01]) | (?:0\[469] | 11)-(?:0\[1-9] | \[12]\d | 30) | (?:02)-(?:0\[1-9] | 1\d | 2\[0-8])))T(?:(?:\[01]\d | 2\[0-3]):\[0-5]\d(?::\[0-5]\d(?:.\d+)?)?(?:Z | (\[+-]\(?:\[01]\d | 2\[0-3]):\[0-5]\d)))$\` | sí   | Instante ISO 8601 con zona horaria. |                                                                                                       |
| `cursor`                                  | string                                                                                                           | null              | sí                                                                                                                                                 | null cuando no quedan filas en este corte; no acredita que OJV esté completamente revisada. |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `estadoDatos`                             | `"sin_sincronizar"` · `"disponibles"` · `"incompletos"`                                                          | sí                | Una lista vacía con sin\_sincronizar o incompletos no acredita ausencia de actividad judicial.                                                     |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `observadoHasta`                          | string \`^(?:(?:\d\d\[2468]\[048]                                                                                | \d\d\[13579]\[26] | \d\d0\[48]                                                                                                                                         | \[02468]\[048]00                                                                            | \[13579]\[26]00)-02-29 | \d{4}-(?:(?:0\[13578] | 1\[02])-(?:0\[1-9] | \[12]\d | 3\[01]) | (?:0\[469] | 11)-(?:0\[1-9] | \[12]\d | 30) | (?:02)-(?:0\[1-9] | 1\d | 2\[0-8])))T(?:(?:\[01]\d | 2\[0-3]):\[0-5]\d(?::\[0-5]\d(?:.\d+)?)?(?:Z | (\[+-]\(?:\[01]\d | 2\[0-3]):\[0-5]\d)))$\` | null | sí                                  | Corte de observación de los datos persistidos. No es la fecha de la consulta ni la de una resolución. |
| `cobertura`                               | lista de objeto                                                                                                  | sí                | Secciones efectivamente revisadas y sus límites, para las causas de esta consulta.                                                                 |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `cobertura[].causaId`                     | string `^pjc_[a-zA-Z0-9_-]{16,80}$`                                                                              | sí                | ID obtenido de pjud.causas.consultar. No es el rol escrito en el portal.                                                                           |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `cobertura[].cuadernoId`                  | string `^pjq_[a-zA-Z0-9_-]{16,80}$`                                                                              | null              | sí                                                                                                                                                 | Cuaderno al que corresponde la información; null para una sección de toda la causa.         |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `cobertura[].seccion`                     | `"cabecera"` · `"historia"` · `"litigantes"` · `"notificaciones"` · `"escritos_por_resolver"` · `"exhortos"` · … | sí                | Sección concreta cuya cobertura se informa.                                                                                                        |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `cobertura[].estado`                      | `"con_datos"` · `"sin_registros"` · `"parcial"` · `"fallida"` · `"no_accesible"` · `"no_implementada"`           | sí                | Solo con\_datos y sin\_registros acreditan revisión completa de esta sección. Los otros valores indican información pendiente o inaccesible.       |                                                                                             |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `cobertura[].revisadaEn`                  | string \`^(?:(?:\d\d\[2468]\[048]                                                                                | \d\d\[13579]\[26] | \d\d0\[48]                                                                                                                                         | \[02468]\[048]00                                                                            | \[13579]\[26]00)-02-29 | \d{4}-(?:(?:0\[13578] | 1\[02])-(?:0\[1-9] | \[12]\d | 3\[01]) | (?:0\[469] | 11)-(?:0\[1-9] | \[12]\d | 30) | (?:02)-(?:0\[1-9] | 1\d | 2\[0-8])))T(?:(?:\[01]\d | 2\[0-3]):\[0-5]\d(?::\[0-5]\d(?:.\d+)?)?(?:Z | (\[+-]\(?:\[01]\d | 2\[0-3]):\[0-5]\d)))$\` | null | sí                                  | Instante ISO 8601 de revisión; null si esa sección no se revisó.                                      |
| `cobertura[].registrosObservados`         | entero                                                                                                           | null              | sí                                                                                                                                                 | Filas observadas en la sección; null significa que no se pudo contar, no cero.              |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |
| `cobertura[].codigoIncidencia`            | string `^pjud_[a-z_]+$`                                                                                          | null              | sí                                                                                                                                                 | Código saneado; nunca mensajes, cookies o HTML del proveedor.                               |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |      |                                     |                                                                                                       |

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

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "documentos": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "documentoId": {
              "type": "string",
              "pattern": "^pjd_[a-zA-Z0-9_-]{16,80}$",
              "description": "ID obtenido de pjud.documentos.consultar; nunca un enlace ni un token de OJV."
            },
            "causaId": {
              "type": "string",
              "pattern": "^pjc_[a-zA-Z0-9_-]{16,80}$",
              "description": "ID obtenido de pjud.causas.consultar. No es el rol escrito en el portal."
            },
            "cuadernoId": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^pjq_[a-zA-Z0-9_-]{16,80}$",
                  "description": "Identificador estable de cuaderno, obtenido de causas.detallar."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Cuaderno al que corresponde la información; null para una sección de toda la causa."
            },
            "actuacionId": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^pja_[a-zA-Z0-9_-]{16,80}$",
                  "description": "Identificador estable de actuación dentro de su causa y ámbito de historia."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Actuación asociada; null para información de toda la causa."
            },
            "descripcion": {
              "type": "string",
              "description": "Descripción de la pieza o cambio observado."
            },
            "tipoFuente": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Tipo de pieza o trámite informado por la fuente."
            },
            "folioFuente": {
              "description": "Folio del documento en su listado de origen, distinto del folio de la actuación.",
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "anexoObservado": {
              "description": "Solo para anexos civiles sin folio publicado. Los bytes diferentes se conservan separados y la cobertura del listado permanece parcial.",
              "type": "object",
              "properties": {
                "identidad": {
                  "type": "string",
                  "const": "contenido_en_ambito",
                  "description": "Identifica este archivo por sus bytes y su causa o actuación. No identifica un documento judicial ni relaciona archivos diferentes como versiones."
                },
                "sha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$",
                  "description": "Huella inmutable del archivo observado, incluso si después se restringe su acceso."
                },
                "referencias": {
                  "minItems": 1,
                  "maxItems": 5000,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fecha": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                            "x-emisso-formato": "AAAA-MM-DD"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Fecha publicada junto a la referencia del anexo; null cuando no se informa."
                      },
                      "descripcion": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 4000,
                        "description": "Referencia literal publicada por OJV para el archivo observado; no es un folio ni establece identidad judicial."
                      }
                    },
                    "required": [
                      "fecha",
                      "descripcion"
                    ],
                    "additionalProperties": false
                  },
                  "description": "Referencias del listado que apuntaban a estos mismos bytes en el mismo ámbito. Se conservan repeticiones; no implican identidad judicial."
                }
              },
              "required": [
                "identidad",
                "sha256",
                "referencias"
              ],
              "additionalProperties": false
            },
            "clase": {
              "type": "string",
              "enum": [
                "principal",
                "certificado_envio",
                "anexo",
                "ebook",
                "sin_clasificar"
              ],
              "description": "Clase documental identificada desde la referencia de OJV."
            },
            "fechaFuente": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                  "x-emisso-formato": "AAAA-MM-DD"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Día de fuente asociado a la pieza o al cambio en AAAA-MM-DD; null si no está disponible."
            },
            "descarga": {
              "type": "string",
              "enum": [
                "referenciado",
                "descargado",
                "fallido",
                "no_accesible"
              ],
              "description": "Descargado confirma bytes originales guardados; referenciado solo confirma un enlace observado."
            },
            "extraccion": {
              "type": "string",
              "enum": [
                "pendiente",
                "extraido",
                "parcial",
                "requiere_ocr",
                "fallido",
                "no_disponible"
              ],
              "description": "Disponibilidad del texto. Parcial o requiere_ocr no significa que falten los bytes originales."
            },
            "paginas": {
              "anyOf": [
                {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ],
              "description": "Páginas detectadas en el archivo; null si no se pudo determinar."
            },
            "sha256": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Hash de los bytes de la versión descargada. null si todavía no se recuperó el archivo."
            },
            "fuente": {
              "type": "object",
              "properties": {
                "sistema": {
                  "type": "string",
                  "const": "OJV",
                  "description": "Sistema judicial del que procede la observación."
                },
                "ruta": {
                  "type": "string",
                  "enum": [
                    "mis_causas",
                    "consulta_unificada",
                    "ingreso_ojv"
                  ],
                  "description": "Superficie OJV utilizada para recuperar la información."
                },
                "portalUrl": {
                  "type": "string",
                  "enum": [
                    "https://oficinajudicialvirtual.pjud.cl/indexN.php",
                    "https://ojv.pjud.cl/kpitec-ojv-web/views/login.html"
                  ],
                  "description": "Acceso al portal; puede requerir sesión. No contiene enlaces privados ni tokens de OJV."
                },
                "observadoEn": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                  "description": "Instante ISO 8601 con zona horaria."
                }
              },
              "required": [
                "sistema",
                "ruta",
                "portalUrl",
                "observadoEn"
              ],
              "additionalProperties": false,
              "description": "Procedencia y fecha de observación. No contiene credenciales ni enlaces privados."
            }
          },
          "required": [
            "documentoId",
            "causaId",
            "cuadernoId",
            "actuacionId",
            "descripcion",
            "tipoFuente",
            "clase",
            "fechaFuente",
            "descarga",
            "extraccion",
            "paginas",
            "sha256",
            "fuente"
          ],
          "additionalProperties": false
        },
        "description": "Referencias documentales y estado efectivo de descarga y extracción."
      },
      "cursor": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 4096,
            "description": "Cursor opaco de la respuesta anterior. Reenvíalo sin construirlo ni modificarlo."
          },
          {
            "type": "null"
          }
        ],
        "description": "null cuando no quedan filas en este corte; no acredita que OJV esté completamente revisada."
      },
      "estadoDatos": {
        "type": "string",
        "enum": [
          "sin_sincronizar",
          "disponibles",
          "incompletos"
        ],
        "description": "Una lista vacía con sin_sincronizar o incompletos no acredita ausencia de actividad judicial."
      },
      "observadoHasta": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "Instante ISO 8601 con zona horaria."
          },
          {
            "type": "null"
          }
        ],
        "description": "Corte de observación de los datos persistidos. No es la fecha de la consulta ni la de una resolución."
      },
      "cobertura": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "causaId": {
              "type": "string",
              "pattern": "^pjc_[a-zA-Z0-9_-]{16,80}$",
              "description": "ID obtenido de pjud.causas.consultar. No es el rol escrito en el portal."
            },
            "cuadernoId": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^pjq_[a-zA-Z0-9_-]{16,80}$",
                  "description": "Identificador estable de cuaderno, obtenido de causas.detallar."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Cuaderno al que corresponde la información; null para una sección de toda la causa."
            },
            "seccion": {
              "type": "string",
              "enum": [
                "cabecera",
                "historia",
                "litigantes",
                "notificaciones",
                "escritos_por_resolver",
                "exhortos",
                "remisiones",
                "documentos",
                "diligencias",
                "liquidacion",
                "materias"
              ],
              "description": "Sección concreta cuya cobertura se informa."
            },
            "estado": {
              "type": "string",
              "enum": [
                "con_datos",
                "sin_registros",
                "parcial",
                "fallida",
                "no_accesible",
                "no_implementada"
              ],
              "description": "Solo con_datos y sin_registros acreditan revisión completa de esta sección. Los otros valores indican información pendiente o inaccesible."
            },
            "revisadaEn": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                  "description": "Instante ISO 8601 con zona horaria."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Instante ISO 8601 de revisión; null si esa sección no se revisó."
            },
            "registrosObservados": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filas observadas en la sección; null significa que no se pudo contar, no cero."
            },
            "codigoIncidencia": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^pjud_[a-z_]+$"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Código saneado; nunca mensajes, cookies o HTML del proveedor."
            }
          },
          "required": [
            "causaId",
            "cuadernoId",
            "seccion",
            "estado",
            "revisadaEn",
            "registrosObservados",
            "codigoIncidencia"
          ],
          "additionalProperties": false
        },
        "description": "Secciones efectivamente revisadas y sus límites, para las causas de esta consulta."
      }
    },
    "required": [
      "documentos",
      "cursor",
      "estadoDatos",
      "observadoHasta",
      "cobertura"
    ],
    "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]

* [`pjud.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.
