---
title: "Ficha completa de una empresa por CUIT."
method: GET
path: "/empresa"
---

# Ficha completa de una empresa por CUIT.

`GET /empresa`

## Request

- Base URL: `https://indicadores.ar/v1`
- URL: `https://indicadores.ar/v1/empresa`
- Auth: API key in header `api-key`

Identidad registral y fiscal, dirigentes y socios con su participación, vínculos con otras empresas, los 15 tipos de acto societario con el link al aviso oficial, situación BCRA banco por banco, cheques rechazados, comercio exterior, contratos con el Estado y sanciones. Con `campos=` se suman bloques que cuestan créditos extra. Una empresa que sólo está en el padrón fiscal responde igual con `alcance: padron`; el 404 es para el CUIT que no existe. Si el CUIT es de una persona (empieza con 20, 23, 24, 25, 26 o 27), la respuesta es su ficha de persona con `ficha: persona`, cobrada como /persona y sin los campos adicionales.

Costo: 1 crédito + campos adicionales.

Campos adicionales (`campos=`): `empleados` (+1 crédito), `geo` (+1 crédito), `beneficiarios` (+2 créditos), `estados_contables` (+2 créditos), `situacion_historica` (+1 crédito), `paritarias` (+1 crédito), `score` (+5 créditos), `balances_cnv` (+1 crédito), `registros` (+1 crédito), `juicios` (+1 crédito). Cada uno se cobra sólo si vuelve con dato.

## Query parameters

- `cuit` string, required
- `campos` string

## Response `200`

Ficha completa de una empresa por CUIT.

- object
  - `ficha` 'empresa' | 'persona': Qué ficha es la respuesta. `empresa` salvo cuando el CUIT es de una persona: ahí la respuesta es la ficha de persona (la misma de /v1/persona), cobrada como tal.
  - `ficha_nota` string, nullable: Explica por qué la ficha no es la del endpoint pedido. Null cuando lo es.
  - `cuit` string
  - `alcance` 'registro' | 'padron': `registro` = la empresa está en el padrón societario (publicó actos o la inscribió un registro) y la ficha es completa. `padron` = sólo figura en el padrón fiscal: la ficha trae identidad, actividad, estado, domicilio fiscal y fecha de contrato, más los bloques que se indexan por CUIT (situación crediticia, cheques, comercio exterior, contratos públicos, sanciones); autoridades, vínculos y actos vienen vacíos porque no hay archivo del que sacarlos. Es el caso de sociedades de hecho, unipersonales y productores que nunca publicaron un acto. Cuesta lo mismo.
  - `alcance_nota` string, nullable: Explica el alcance cuando es `padron`; null en una ficha completa.
  - `razon_social` string
  - `denominaciones_anteriores` object[]: Cómo se llamó antes la sociedad, la más reciente primero. La llave para cruzar fuentes que no traen CUIT (contratos, facturas, padrones viejos): el nombre caduca y el CUIT no. No incluye correcciones de tipeo, razones sociales truncadas que después se completaron ni cambios de forma ("S.A." por "SA"). Vacío si no se le conoce otro nombre, y siempre vacío para una persona física.
    - `nombre` string
    - `hasta` string, date, nullable: Hasta cuándo se llamó así: la fecha de publicación del cambio. Null cuando el cambio se conoció por el padrón y no por un aviso.
    - `fuente` 'boletin_oficial' | 'arca' | 'registro_societario', nullable: De dónde sale el cambio.
  - `forma_legal` string, nullable
  - `jurisdiccion` string, nullable
  - `ciudad` string, nullable
  - `domicilio_legal` string, nullable: Domicilio registrado ante el registro societario (puede estar desactualizado). Con `baja_registral.tipo = cambio_jurisdiccion` puede ser el anterior en la Ciudad; si el texto nombra otra provincia, es el nuevo (ver también `domicilio_fiscal`).
  - `domicilio_fiscal` string, nullable: Domicilio fiscal declarado ante ARCA.
  - `baja_registral` object, nullable: La baja de la inscripción en la Inspección General de Justicia (registro de la Ciudad de Buenos Aires), tal como la publica su padrón. No es la baja fiscal: una sociedad que se mudó a otra provincia figura dada de baja en IGJ y sigue activa (ver `estado_fiscal`). Null si IGJ no la da de baja o la sociedad no está inscripta ahí. Sin costo extra.
    - `registro` 'igj': El registro que la da de baja.
    - `tipo` 'cambio_jurisdiccion' | 'fusion' | 'escision' | 'transformacion' | 'extranjera' | 'liquidacion' | 'disolucion' | 'cancelacion' | 'otra': `cambio_jurisdiccion` = se mudó a otra jurisdicción. `fusion` / `escision` = se disolvió por fusión o escisión. `transformacion` = cambió de tipo societario. `extranjera` = se canceló la inscripción de una sociedad extranjera o su sucursal. `liquidacion` = liquidada. `disolucion` = disuelta. `cancelacion` = inscripción cancelada sin más detalle. `otra` = otro trámite o sin detalle.
    - `codigo` string, nullable: Código del trámite de baja en IGJ.
    - `detalle` string, nullable: Detalle del trámite, tal como lo escribe IGJ.
  - `contacto` object, nullable: Sitios web, mails y teléfonos de la empresa. Null cuando no se le conoce ninguno. Cada dato trae su origen y su fecha, porque no pesan igual: lo que publica hoy en su sitio, lo que declaró ante un registro público (puede tener años) o lo que cargó la propia empresa. Sólo se publican mails institucionales (de rol, como `ventas@`, o con el nombre de la empresa): el mail de una persona no sale aunque figure en un registro.
    - `sitios_web` object[]: Sitios web de la empresa que RESPONDEN. Un dominio que no contesta, o que todavía no verificamos, no se devuelve: el registro de dominios tiene muchas altas que nunca se usaron y devolverlas sería mandarte a un link roto. Se devuelven todos los que quedan, el más parecido a la razón social primero.
      - `url` string
      - `origen` 'registro' | 'declarado' | 'inferido': `registro` = el CUIT figura como titular del dominio en NIC Argentina, es un hecho. `declarado` = es el dominio de un mail que la empresa declaró, o lo cargó ella misma. `inferido` = se dedujo de la razón social y se verificó bajando la página, que sólo se acepta si publica el CUIT, o si el nombre no tiene homónimos en el padrón y el sitio se declara argentino.
    - `email` string, nullable: El primero de `emails`: lo que cargó la empresa, si no lo de su sitio, si no lo más nuevo que declaró. Se conserva por compatibilidad; `emails` trae todos.
    - `telefono` string, nullable: El primero de `telefonos`.
    - `emails` object[]: Todos los mails institucionales que se le conocen, en el orden de `email`. El dominio de cada mail declarado se verificó: un dominio que ya no recibe correo no se publica.
      - `valor` string
      - `origen` 'empresa' | 'sitio_web' | 'registro_publico': `empresa` = lo cargó la propia empresa en su ficha, con la titularidad verificada. `sitio_web` = lo publica en su sitio. `registro_publico` = lo declaró ante un registro público.
      - `al` string, date, nullable: Fecha del dato: la de la carga, la de la lectura del sitio o la de la declaración.
    - `telefonos` object[]: Todos los teléfonos que se le conocen, a 10 dígitos nacionales (sin 0 ni 15), en el mismo orden. Un número que no se puede llevar a esa forma sin adivinar la característica no se publica.
      - `valor` string
      - `origen` 'empresa' | 'sitio_web' | 'registro_publico': Igual que en `emails`.
      - `al` string, date, nullable
    - `verificado_el` string, date, nullable: Fecha en que se leyó el sitio del que salieron mail y teléfono. Null cuando no hay datos leídos de un sitio.
  - `fecha_constitucion` string, date, nullable
  - `actividad` object
    - `codigo` string, nullable: Código de actividad AFIP.
    - `nombre` string, nullable
  - `actividades` object[]: TODAS las actividades declaradas ante ARCA según la constancia de inscripción: primero las vigentes por su orden (la primera es la principal) y después las dadas de baja. Sin costo extra. Vacío cuando la constancia todavía no se leyó para este CUIT (ver `actividades_al`), y siempre vacío para un CUIT de persona física.
    - `codigo` string: Código CLAE de ARCA sin ceros adelante, el mismo formato que `actividad.codigo`.
    - `descripcion` string, nullable
    - `orden` integer: Orden en la constancia: 1 es la principal.
    - `principal` boolean
    - `desde` string, nullable: Mes de alta de la actividad (`AAAA-MM`), tal como lo informa ARCA.
    - `estado` 'activa' | 'baja': `baja` = estaba declarada en una lectura anterior de la constancia y dejó de figurar.
    - `baja_detectada_el` string, date, nullable: Fecha de la lectura en la que dejó de figurar: la baja ocurrió ese día o antes.
  - `actividades_al` string, date, nullable: Fecha de la última constancia de inscripción leída para este CUIT. Null si nunca se leyó.
  - `estado_fiscal` string: Estado del CUIT ante ARCA. `activa` dice que no está dado de baja, no que opere: si tiene impuestos inscriptos lo dice `fiscal.impuestos_inscriptos`.
  - `perfil` object
    - `importador` boolean
    - `exportador` boolean
    - `empleador` boolean, nullable: `true` = inscripta como empleadora ante el fisco (aportes y contribuciones de seguridad social). `false` = el padrón masivo de ARCA o la constancia de inscripción la traen como no inscripta. `null` = sin dato (el padrón la publica en blanco, o todavía no se verificó): su ausencia no afirma que no tenga empleados. Siempre viene con `empleador_fuente` y `empleador_al`.
    - `empleador_fuente` 'arca_padron' | 'constancia' | 'repsal', nullable: De dónde salió `empleador`: `arca_padron` (padrón masivo de ARCA, corte mensual), `constancia` (constancia de inscripción leída en vivo) o `repsal` (dotación relevada en una inspección laboral). Gana la fuente más nueva.
    - `empleador_al` string, date, nullable: Fecha del corte al que corresponde `empleador` (la del padrón o la de la lectura).
  - `fiscal` object, nullable: Condición ante ARCA según el padrón masivo (corte mensual): si figura, IVA y ganancias, con la fecha del corte. Null cuando no se puede afirmar: sin padrón cargado, CUIT posterior al corte, o una sociedad fuera del padrón que figura como empleadora o cuya constancia, leída después del corte, trae impuestos.
    - `impuestos_inscriptos` boolean: `true` si el CUIT figura en el padrón masivo (inscripto en IVA, ganancias, monotributo o como empleador). `false` si es una sociedad que ya existía en el corte y no figura: sin IVA ni ganancias inscriptos.
    - `iva` 'AC' | 'EX' | 'NI' | 'NA' | 'XN' | 'AN', nullable: Código de ARCA: `AC` responsable inscripto, `EX` exento, `NI` no inscripto, `NA` no alcanzado, `XN` exento no alcanzado, `AN` activo no alcanzado. Null = en blanco o fuera del padrón.
    - `ganancias` 'AC' | 'EX' | 'NI' | 'NC', nullable: Código de ARCA: `AC` inscripto, `EX` exento, `NI` no inscripto, `NC` no corresponde. Null = en blanco o fuera del padrón.
    - `padron_al` string, date: Fecha del corte del padrón masivo de ARCA.
  - `capital` object
    - `fecha_ultimo_balance` string, date, nullable
    - `capital_ultimo_balance` string, nullable
  - `dirigentes` object[]: Personas vinculadas con documento: directores, socios, gerentes, síndicos, apoderados. Trae hasta 50, por nombre; `dirigentes_total` dice cuántas son. Una entrada por persona: si el registro la tiene partida en dos (el mismo DNI con dos CUIT, o el mismo nombre con un DNI mal tipeado), sale una sola con el CUIT que confirma el padrón de ARCA.
    - `cuit` string
    - `nombre_completo` string
    - `roles` string[]: Los cargos, sin fechas (lo mismo que `cargos[].rol`).
    - `cargos` object[]: Un cargo por rol y carácter con su período: director titular y director suplente son dos cargos. `desde` y `hasta` en null con `fuente: registro` = figura en el registro societario sin fecha de designación ni de cese, lo que NO afirma que siga en el cargo.
      - `rol` string
      - `suplente` boolean: El cargo es suplente ("Director Suplente", "Administrador Suplente", "Síndico Suplente"): reemplaza al titular en su ausencia. false = titular, o un registro que no distingue el carácter.
      - `desde` string, date, nullable: Fecha del acto que lo designó.
      - `hasta` string, date, nullable: Fecha del cese (renuncia o reemplazo). Sin cese propio, la de una renuncia posterior de la misma persona en la empresa: el aviso de renuncia casi nunca repite el cargo con el que la designaron.
      - `fuente` 'boletin' | 'registro': `boletin` = sale de un aviso societario publicado (con su fecha o su `aviso_url`). `registro` = figura en el registro acumulado de autoridades, que no informa designación ni cese y no da de baja a nadie: dice que alguna vez figuró, no que siga en el cargo.
    - `vigente` boolean: Figura en `directorio_vigente` (o en su `fiscalizacion`): lo designó el último acto de su órgano y no renunció después.
    - `fuente` 'boletin' | 'registro': `registro` cuando TODOS sus cargos son del registro sin fecha (`cargos[].fuente`): no leerlo como autoridad actual. `boletin` si alguno sale de un aviso.
    - `funcionario_publico` boolean: Declaró como funcionario/a ante la Oficina Anticorrupción en algún año; no implica que lo sea hoy.
    - `funcionario_publico_anio` integer, nullable: Año de su última declaración jurada; null si no declaró.
    - `funcionario_publico_cargo` string, nullable: Cargo de esa última declaración; null si no declaró.
    - `participacion_pct` number, nullable: % del capital suscripto según el aviso societario publicado.
    - `aviso_url` string, nullable: Link a un aviso del boletín oficial del que salió el vínculo, para leer la fuente y auditar el dato. Null cuando la fila viene de un padrón registral (sin aviso publicado) o cuando la fuente no ofrece una URL navegable por aviso.
  - `dirigentes_total` integer: Cuántas personas vinculadas tiene la empresa. Mayor que el largo de `dirigentes` cuando la lista vino recortada. `directorio_vigente` se calcula sobre todas, no sólo sobre las listadas.
  - `directorio_vigente` object: La administración vigente: las autoridades del ÚLTIMO acto fechado que designó presidente, vicepresidente, directores, administradores, gerentes, liquidadores o representantes, separadas del histórico acumulado de `dirigentes`. Un socio o un cesionario de cuotas no es directorio y no entra. `fecha: null` con `personas: []` significa que no se puede afirmar vigencia (ningún acto de designación de autoridades está fechado), no que la empresa no tenga autoridades. Si el último acto designó a alguien cuyo cargo no pudimos leer, `personas` trae ese acto con `sin_cargo_leido: true`.
    - `sin_cargo_leido` boolean: `true` cuando `personas` no son cargos leídos: el último acto las designó y el aviso no deja leer qué cargo tiene cada una (su `rol` es `socio` u `other`). Tratarlas como las autoridades probables de ese acto, no como un directorio confirmado.
    - `fecha` string, date, nullable: Fecha del acto de designación.
    - `personas` object[]: Titulares primero, después suplentes.
      - `cuit` string, nullable
      - `nombre_completo` string
      - `rol` string
      - `suplente` boolean: El cargo es suplente.
      - `desde` string, date, nullable: Fecha del acto que la designó.
    - `fiscalizacion` object: La sindicatura vigente (síndicos titulares y suplentes), con la fecha de su propio último acto: muchas veces el mismo que el del directorio, a veces otro.
      - `fecha` string, date, nullable: Fecha del acto de designación.
      - `personas` object[]: Titulares primero, después suplentes.
        - `cuit` string, nullable
        - `nombre_completo` string
        - `rol` string
        - `suplente` boolean
        - `desde` string, date, nullable
  - `vinculos_societarios` object[]: Vínculos directos con otras empresas publicados en los boletines: socias/accionistas personas jurídicas, fusiones, escisiones y transferencias de fondo de comercio.
    - `tipo` string: socia, ex_socia, absorbente, absorbida, beneficiaria_escision, escindente, cesionaria_fondo, cedente_fondo o vinculada.
    - `direccion` 'esta_empresa_es_sujeto' | 'esta_empresa_es_contraparte'
    - `denominacion` string
    - `cuit` string, nullable
    - `participacion_pct` number, nullable
    - `fecha` string, date
  - `cobertura_societaria` object: Hasta dónde llega el archivo digitalizado del boletín de la jurisdicción de registro. Permite distinguir "no pasó nada" de "no hay archivo": el historial de eventos es completo dentro de esta cobertura, no antes de ella.
    - `jurisdiccion` string, nullable: Jurisdicción de registro de la empresa.
    - `desde` string, date, nullable: Primera edición digitalizada del canal societario de esa jurisdicción.
    - `nota` string
  - `eventos` object[]: Actos societarios (constitución, reformas, fusiones, disolución, quiebra, concurso). Historial completo, sin recortar: la profundidad depende del archivo de cada jurisdicción y la declara cobertura_societaria.
    - `tipo` string
    - `fecha` string, date
    - `titulo` string, nullable
    - `descripcion` string, nullable
    - `aviso_url` string, nullable: Link al aviso del boletín oficial que publicó el acto, para leer la fuente y replicar la lógica. Null cuando el evento viene de un padrón registral o la fuente no ofrece una URL navegable por aviso.
    - `datos` object: Los datos que ESE acto publica y ningún otro tiene: el juzgado y el síndico de una quiebra, el liquidador de una disolución, el orden del día de una asamblea, el cedente de una cesión. Las claves varían según el tipo de acto y sólo aparecen las que el aviso publica; el objeto se omite cuando el acto no trae ninguna.
  - `bcra_consultado_el` string, date-time, nullable: Última lectura buena de la central de deudores para este CUIT. Null = todavía no se consultó: en ese caso `deudas_bcra` y `cheques_rechazados` en null NO afirman que no haya deuda. Pedir la ficha encola la consulta y una llamada posterior (minutos) la trae.
  - `deudas_bcra` object, nullable: Situación en la central de deudores del BCRA. Null sin deuda informada (siempre que `bcra_consultado_el` no sea null).
    - `periodo` string: Período informado (AAAAMM).
    - `peor_situacion` integer: 1 = normal … 5 = irrecuperable. Es el MÁXIMO entre las entidades que informan: una deuda residual chica en situación 5 lo pone en 5 aunque el 99% de la deuda esté en 1. Para leer cómo está la empresa usá `situacion_principal`.
    - `situacion_principal` integer: Situación de la entidad que concentra la mayor deuda del período. 1 = normal … 5 = irrecuperable.
    - `situacion_principal_label` string
    - `deuda_total_miles` number: Deuda total en miles de pesos.
    - `entidades` integer: Cantidad de entidades que informan deuda.
    - `entidades_detalle` object[]: Deuda banco por banco del período más reciente (hasta 50, por situación y monto).
      - `entidad` string
      - `situacion` integer: 1 = normal … 5 = irrecuperable.
      - `situacion_label` string
      - `deuda_miles` number
      - `dias_atraso` integer
      - `refinanciado` boolean
      - `en_juicio` boolean
  - `cheques_rechazados` object, nullable: Cheques rechazados informados por el BCRA. Null sin registros.
    - `total` integer
    - `impagos` integer
    - `detalle` object[]: Últimos cheques rechazados, uno por uno (hasta 50, más recientes primero).
      - `numero` string
      - `entidad` string
      - `fecha` string, date
      - `monto` string
      - `causal` string, nullable
      - `pagado` boolean
      - `fecha_pago` string, date, nullable
  - `comercio_exterior` object, nullable: Bloque unificado de comercio exterior. Null si la empresa no registra operaciones.
    - `importaciones` object, nullable: Importaciones registradas, agregadas por mes, NCM, país, vía, aduana y régimen. El FOB es el declarado en dólares; el CIF y el flete son ESTIMADOS (objeto `cif`); los derechos y tributos sí son los efectivamente liquidados.
      - `periodo_desde` string: Ventana AAAAMM de los totales y tops.
      - `periodo_hasta` string
      - `fob_usd` number
      - `items` integer: Ítems de despacho de la ventana.
      - `despachos` integer: Destinaciones distintas de la ventana.
      - `kilos` number, nullable: Peso neto, sólo de las operaciones cuya unidad estadística mide peso. Null cuando ninguna lo declara. NO es el peso total de lo importado.
      - `cif` object, nullable: Valor CIF y flete ESTIMADOS, despejados de la liquidación de tributos: la fuente aduanera publica FOB. Null cuando la estimación no cubre suficiente FOB del período.
        - `cif_usd_estimado` number
        - `flete_y_seguro_usd_estimado` number: Flete MÁS seguro; no se pueden separar.
        - `flete_sobre_fob_pct` number: Incidencia sobre el FOB que tiene estimación, no sobre el total.
        - `cobertura_fob_pct` number: Porcentaje del FOB del período con valor CIF estimado.
        - `fob_imputado_usd` number: Parte del FOB cuyo CIF salió de una referencia externa y no de la propia operación.
      - `tributos` object, nullable: Tributos efectivamente liquidados. A diferencia del CIF, declarados.
        - `derechos_usd` number
        - `tributos_totales_usd` number
      - `principales_ncm` object[]
        - `ncm` string
        - `descripcion` string, nullable: Descripción oficial de la posición; degrada a la partida o al capítulo cuando el nomenclador no tiene esa apertura.
        - `fob_usd` number
        - `items` integer
      - `principales_origenes` object[]
        - `pais` string: Código de país de origen del nomenclador aduanero.
        - `pais_nombre` string: Nombre del país de origen.
        - `pais_iso` string, nullable: ISO 3166-1 alpha-2. Null cuando la fuente no nombra un país vigente: zonas indeterminadas, "resto de", o entidades ya disueltas.
        - `fob_usd` number
        - `items` integer
      - `principales_procedencias` object[]: País desde el que se despachó la mercadería, que difiere del de origen en un tercio de las operaciones.
        - `pais` string
        - `pais_nombre` string
        - `pais_iso` string, nullable: ISO 3166-1 alpha-2. Null cuando la fuente no nombra un país vigente: zonas indeterminadas, "resto de", o entidades ya disueltas.
        - `fob_usd` number
        - `items` integer
      - `vias_de_transporte` object[]: Cómo llega la mercadería. Describe el último tramo hasta la aduana de registro.
        - `codigo` string: Código tal como lo publica la fuente aduanera.
        - `descripcion` string
        - `fob_usd` number
        - `items` integer
      - `aduanas` object[]: Aduana de registro del despacho.
        - `codigo` string: Código tal como lo publica la fuente aduanera.
        - `descripcion` string
        - `fob_usd` number
        - `items` integer
      - `regimenes` object[]: Régimen de la destinación (a consumo, courier, zona franca…).
        - `codigo` string: Código tal como lo publica la fuente aduanera.
        - `descripcion` string
        - `fob_usd` number
        - `items` integer
      - `serie_mensual` object[]: Hasta 24 meses, del más viejo al más nuevo.
        - `periodo` string
        - `fob_usd` number
        - `items` integer
    - `exportaciones_granos` object, nullable: Exportaciones declaradas de granos y subproductos, en toneladas por producto y mes.
      - `periodo_desde` string
      - `periodo_hasta` string
      - `toneladas` number
      - `declaraciones` integer
      - `principales_productos` object[]
        - `producto` string
        - `toneladas` number
        - `declaraciones` integer
      - `serie_mensual` object[]: Hasta 24 meses, del más viejo al más nuevo.
        - `periodo` string
        - `toneladas` number
    - `exportaciones_energia` object, nullable: Exportaciones declaradas de petróleo, gas y derivados, en dólares por producto, destino y mes, más las ofertas de exportación de hidrocarburos registradas.
      - `periodo_desde` string
      - `periodo_hasta` string
      - `monto_usd` number
      - `principales_productos` object[]
        - `producto` string
        - `monto_usd` number
      - `principales_destinos` object[]
        - `pais` string
        - `pais_iso` string, nullable: ISO 3166-1 alpha-2. Null cuando la fuente no nombra un país vigente: zonas indeterminadas, "resto de", o entidades ya disueltas.
        - `monto_usd` number
      - `serie_mensual` object[]: Hasta 24 meses, del más viejo al más nuevo.
        - `periodo` string
        - `monto_usd` number
      - `ofertas_hidrocarburos` object, nullable
        - `total` integer
        - `vigentes` integer
    - `habilitaciones_ue` object, nullable: Habilitaciones sanitarias vigentes para exportar a la Unión Europea, por rubro.
      - `rubros` object[]
        - `rubro` string
        - `establecimientos` integer
  - `contratos_publicos` object
    - `cantidad` integer: Cantidad de contrataciones con adjudicación confirmada.
    - `total_ars` number
    - `recientes` object[]
      - `organismo` string, nullable
      - `fecha` string, date, nullable
      - `monto` string, nullable
      - `moneda` string, nullable
      - `descripcion` string, nullable
      - `rol` string, nullable: adjudicataria | oferente | desestimada | null = sin clasificar (participó del proceso).
  - `creditos_subsidiados` object
    - `cantidad` integer
  - `sanciones` object[]: Sanciones administrativas publicadas (UIF/CNV/BCRA).
    - `fecha` string, date
    - `titulo` string, nullable
  - `apoc` object, nullable: Presencia en la base APOC de ARCA (facturas apócrifas). Dato informativo/preventivo. Null si no figura.
    - `fecha_condicion` string, date, nullable
    - `fecha_publicacion` string, date, nullable
  - `sanciones_laborales_repsal` object[]: Sanciones vigentes en el REPSAL (Registro Público de Empleadores con Sanciones Laborales).
    - `tipo_infraccion` string
    - `organismo_sancionador` string, nullable
    - `fecha_ingreso` string, date, nullable
    - `fin_publicacion` string, date, nullable
    - `numero_expediente` string
  - `empleados` object, nullable: Dotación conocida de la sociedad, tal como la publicó el Estado. Sólo presente con campos=empleados. Es un dato HISTÓRICO (ATP 2020, REPRO II 2020-2022, inspección laboral): leerlo con su fuente y fecha, nunca como empleados actuales. Null cuando no hay ningún conteo publicado o el CUIT es de una persona física.
    - `cantidad` integer: El conteo más reciente publicado.
    - `banda` '1-5' | '6-10' | '11-50' | '51-200' | '200+': Banda del conteo más reciente, con los cortes del ATP.
    - `fuente` 'atp_salario' | 'atp_credito' | 'repro2' | 'repsal', nullable: `atp_salario` (perceptores del salario complementario, por ronda), `atp_credito` (empleados declarados en el crédito ATP), `repro2` (trabajadores cubiertos por mes) o `repsal` (dotación relevada en una inspección).
    - `al` string, date, nullable: Mes o fecha del conteo más reciente (primer día del período).
    - `serie` object[]: Todos los conteos publicados, del más nuevo al más viejo.
      - `periodo` string: Mes devengado (AAAA-MM).
      - `cantidad` integer
      - `fuente` string
  - `geo` object, nullable: Coordenadas del domicilio, resueltas contra el Georef del IGN y el normalizador de la Ciudad (USIG) y verificadas calle por calle. Sólo presente con campos=geo. Null cuando no hay ni siquiera una zona que dar o todavía no se intentó.
    - `lat` number
    - `lon` number
    - `precision` 'puerta' | 'calle' | 'zona': `puerta` = calle y altura resueltas; `calle` = el punto es aproximado (la cara de manzana, el centro de la calle cuando el nomenclador no tiene alturas, el de varios puntos posibles para esa altura, o una esquina); `zona` = la calle no se pudo ubicar y el punto es el centro de la localidad o del código postal. `radio_m` dice el margen.
    - `radio_m` number, nullable: Con precisión `calle` o `zona`, el margen en metros: la distancia del punto al lugar más lejano donde podría estar el domicilio (en una zona, el que cubre al 90% de sus empresas). Null con precisión `puerta`, o cuando no se conoce.
    - `domicilio` 'legal' | 'fiscal': De qué domicilio sale el punto: `legal` (el del registro) o `fiscal` (el de ARCA, que se usa cuando el legal no se puede ubicar y suele ser el actual).
    - `fuente` 'georef' | 'usig' | 'manzana' | 'zona': `georef` (IGN, apis.datos.gob.ar), `usig` (normalizador de la Ciudad de Buenos Aires, CABA y conurbano), `manzana` (la cara de manzana de esa calle y altura, verificada contra la zona del código postal) o `zona` (el centro de las empresas ya ubicadas de esa localidad o código postal).
    - `nomenclatura` string, nullable: Dirección normalizada tal como la devolvió el nomenclador, para auditar el match.
    - `provincia_id` string, nullable: Código INDEC de la provincia donde quedó el punto.
    - `departamento_id` string, nullable: Código INDEC del departamento o partido (comuna en CABA).
    - `localidad_id` string, nullable: Código INDEC de la localidad censal. Null cuando el nomenclador no la informa.
    - `cpa` string, nullable: Código Postal Argentino del domicilio (`C1428AAO`), tal como lo publica la Ciudad de Buenos Aires. Sólo en CABA y con precisión `puerta`; null en el resto del país.
    - `al` string, date: Cuándo se resolvió.
  - `beneficiarios` object: Beneficiarios finales ESTIMADOS por actos registrales publicados. Sólo presente con campos=beneficiarios.
    - `umbral_pct` number: Umbral de referencia (10%, RG 4697 / UIF).
    - `profundidad_maxima` integer
    - `metodologia` string
    - `personas` object[]
      - `cuit` string
      - `nombre_completo` string
      - `funcionario_publico` boolean: Declaró como funcionario/a ante la Oficina Anticorrupción en algún año; no implica que lo sea hoy.
      - `funcionario_publico_anio` integer, nullable: Año de su última declaración jurada; null si no declaró.
      - `participacion_directa_pct` number, nullable: % directo cuando la persona es socia inmediata; null si sólo llega por cadena.
      - `participacion_efectiva_pct` number, nullable: Suma de los caminos cuantificables (directo + indirecto multiplicado).
      - `es_beneficiario_estimado` boolean
      - `caminos_sin_porcentaje` integer: Caminos societarios detectados cuyo % no fue publicado.
      - `cadena` object[]: Sociedades intermedias del camino cuantificado de mayor peso (vacía = directa).
        - `cuit` string
        - `razon_social` string
        - `participacion_pct` number, nullable
      - `fecha_ultimo_acto` string, date, nullable
  - `estados_contables` object: Estados contables publicados ante el regulador. Sólo presente con campos=estados_contables. Si la empresa no pertenece a un universo obligado a publicarlos, el bloque viene con fuente null y periodos vacío.
    - `fuente` string, nullable: bcra | ssn | null.
    - `regulador` string
    - `frecuencia` string: mensual (BCRA) o trimestral (SSN).
    - `entidad` string: Denominación con la que presenta ante el regulador.
    - `moneda` string: Siempre ARS, en pesos corrientes del período.
    - `nota` string
    - `periodos` object[]: Del más nuevo al más viejo.
      - `periodo` string, date: Primer día del período informado.
      - `activo` number
      - `pasivo` number
      - `patrimonio_neto` number
      - `resultado` number, nullable: Acumulado del ejercicio.
      - `meses_de_ejercicio` integer, nullable: Cuántos meses acumula ese resultado. El ejercicio de los bancos es el año calendario y el de las aseguradoras arranca el 1 de julio, así que sin este campo el resultado de dos regímenes no es comparable.
  - `situacion_historica` object: Serie mensual de la situación en la central de deudores del BCRA. Sólo presente con campos=situacion_historica. deudas_bcra trae la última foto; esto es la película, que es lo que responde si la empresa mejora o empeora. Sin historia acumulada el bloque viene con periodos vacío.
    - `periodos` object[]: Del período más nuevo al más viejo.
      - `periodo` string: Período informado (AAAAMM).
      - `deuda_total_miles` number: Deuda total del período en miles de pesos.
      - `situacion_principal` integer: Situación del grueso de la deuda del período. 1 = normal … 5 = irrecuperable.
      - `peor_situacion` integer: La peor situación informada por alguna entidad en el período.
      - `entidades` integer: Cantidad de entidades que informaron deuda en el período.
    - `nota` string
  - `paritarias` object: Índice de actos de la autoridad laboral nacional sobre acuerdos de esta empresa. Sólo presente con campos=paritarias. Si no hay ninguno, el bloque viene con total 0 y actos vacío. ⚠️ Es el índice, NO las escalas salariales: van en el anexo del acto.
    - `total` integer
    - `desde` string, date, nullable: Publicación del acto más viejo.
    - `nota` string
    - `actos` object[]: Del más nuevo al más viejo.
      - `fecha_publicacion` string, date
      - `tipo` string: homologacion | registro | tope_indemnizatorio | otro.
      - `acto` string, nullable: Tipo, número y año del acto.
      - `fecha_del_acto` string, date, nullable
      - `autoridad` string, nullable
      - `expediente` string, nullable
      - `numero_de_acuerdo` string, nullable
      - `cct` object: Números de convenio colectivo alcanzados.
      - `sindicatos` object: Entidades gremiales firmantes.
      - `tiene_anexo` boolean
      - `anexos` object: Referencias al anexo del acto, donde están las escalas y la vigencia.
  - `balances_cnv` object: Índice de estados contables presentados ante la Comisión Nacional de Valores. Sólo presente con campos=balances_cnv. ⚠️ Es el índice, NO los importes: van en el documento de cada presentación. Complementa a estados_contables, que sí trae importes pero sólo para bancos y aseguradoras.
    - `total` integer: Presentaciones PROPIAS de la emisora.
    - `desde` string, date, nullable: Cierre de la presentación más vieja.
    - `presentaciones_de_vinculadas` integer: Presentaciones en las que la emisora informa el balance de una controlada o vinculada. No son balances suyos y por eso no entran en la lista.
    - `nota` string
    - `presentaciones` object[]: De la más nueva a la más vieja.
      - `fecha_cierre` string, date, nullable
      - `fecha_presentacion` string, date
      - `tipo_balance` string, nullable: INDIVIDUAL | CONSOLIDADO.
      - `periodicidad` string, nullable
      - `norma_contable` string, nullable
  - `registros` object: Licencias y registros oficiales de la empresa. Sólo presente con campos=registros; vacío (total 0, listas vacías) si no figura en ninguno.
    - `total` integer: Inscripciones con detalle (INAES, SENASA, AGC, subsidios al transporte, salud, ENACOM, INASE, Agricultura, INV, Economía), aunque la lista traiga menos (tope 200).
    - `resumen` object[]: Un renglón por registro: qué organismo, qué registro, en qué estado y cuántas inscripciones resume. Incluye CNV, BCRA, SSN y Unión Europea, que tienen su propio detalle en otros bloques.
      - `organismo` 'CNV' | 'BCRA' | 'SSN' | 'UE' | 'INAES' | 'SENASA' | 'AGC' | 'Transporte' | 'Salud' | 'SSS' | 'ENACOM' | 'Energía' | 'INASE' | 'Agricultura' | 'INV' | 'Economía'
      - `organismo_nombre` string
      - `registro` string: Cooperativa, Elaborador, Habilitación comercial, …
      - `estado` string, nullable: Tal como lo publica el organismo.
      - `cantidad` integer: Establecimientos o habilitaciones que resume.
    - `inscripciones` object[]: El detalle de cada inscripción en INAES, SENASA, AGC, subsidios al transporte y registros de salud: vigentes primero, después las de baja; dentro de cada una, la más nueva primero.
      - `organismo` 'INAES' | 'SENASA' | 'AGC' | 'Transporte' | 'Salud' | 'SSS' | 'ENACOM' | 'INASE' | 'Agricultura' | 'INV' | 'Economía'
      - `registro` string
      - `numero` string, nullable: Matrícula (INAES), número oficial (SENASA), número de solicitud (AGC), código del establecimiento (Salud), disposición (SSS), resolución (TIC), registro único de actividad (homologación), número de registro postal, señal distintiva (radio y TV), número de inscripción (INASE, con las letras de sus categorías), matrícula (Agricultura) o número de inscripto (INV).
      - `estado` string, nullable: INAES: Vigente, Suspendida, Cancelada, Retiro de autorización, Autorización revocada, En disolución y liquidación. SENASA: Habilitado. AGC: Otorgada. Transporte: "Cobró entre 2017 y 2020" (los años del primer y el último pago). Salud: Habilitado. SSS: Vigente o Vencida. ENACOM: Otorgada (TIC), Inscripta (homologación), Inscripto o Reinscripto (postales) y el título de radio y TV (Licencia, Autorización, Permiso Precario Provisorio, …). INASE, INV: Inscripta. Agricultura: Vigente. Economía: "Autorizada" o "Sin datos desde <mes>" (SGR), "Activa" o "Solicitud de Baja" (Economía del Conocimiento), "Certificados emitidos" (autopartes).
      - `estado_visto_desde` string, date, nullable: Desde cuándo vemos el estado actual. El organismo no publica la fecha del cambio: es la primera vez que nuestra copia lo encontró así.
      - `fecha` string, date, nullable: Fecha de inscripción (INAES), de la habilitación (AGC) o el primer día del último mes con pagos (Transporte). El SENASA no la publica.
      - `domicilio` string, nullable
      - `localidad` string, nullable
      - `provincia` string, nullable
      - `actividades` object: Actividades (INAES, SENASA), rubros (AGC), conceptos de los pagos (Transporte), tipo de establecimiento (Salud, SSS), servicio licenciado (TIC), categoría (radio y TV, INASE), especies o capacidad (Agricultura) o marcas (INV).
      - `establecimiento` string, nullable: Nombre del establecimiento (SENASA, Salud).
      - `superficie_m2` number, nullable: Superficie habilitada (AGC).
      - `expediente` string, nullable: Expediente de la habilitación (AGC).
      - `nota` string, nullable: Lo que el padrón anota junto al nombre (INAES: "Bajo Sumario Res. 1659/16").
      - `periodo` object, nullable: Primer y último mes con pagos (`desde`, `hasta`, AAAA-MM). Sólo en los subsidios al transporte.
      - `montos_por_anio` object: Lo cobrado por año (`anio`, `monto`), en pesos corrientes de cada año: no se suman entre años sin ajustar. Vacío fuera de los subsidios al transporte.
      - `vence` string, date, nullable: Vencimiento de la inscripción (SSS).
      - `cifras` object: Cifras del registro (`rotulo`, `valor`, `unidad`: pesos o cantidad): el fondo de riesgo, las garantías vigentes y las pymes asistidas del último mes de una SGR; los certificados de autopartes. Vacío en los demás.
      - `tamano` string, nullable: Tamaño declarado (Economía del Conocimiento): Micro, Pequeña, Mediana o Grande.
    - `nota` string: El encuadre: qué cubre y qué no.
    - `hidrocarburos` object, nullable: Petróleo y gas: la producción que la empresa declaró como operadora, las áreas que opera o integra, sus participaciones en consorcios, sus inscripciones en los registros de empresas petroleras y de transporte por ductos y las fracturas de pozos que informó. Null si no figura en ninguno.
      - `produccion` object, nullable: Resumen de la producción. Null si nunca declaró producción como operadora.
        - `desde` string, date, nullable: Primer mes con producción.
        - `ultimo_periodo` string, date, nullable: Último mes con producción, hasta el último mes completo del país (el mes en curso llega a medio cargar y no se lee).
        - `ultimos_12_meses` object: Suma de los 12 meses que terminan en `ultimo_periodo`: `petroleo_m3`, `gas_miles_m3`, `agua_m3`.
        - `participacion_pais` object: Porcentaje del total del país en esos 12 meses: `petroleo` y `gas` (null si no produjo ese hidrocarburo).
        - `pozos_en_extraccion` integer: Pozos en extracción efectiva en `ultimo_periodo`.
      - `serie` object: Mes a mes, del más viejo al más nuevo, desde 2006: `periodo`, `petroleo_m3`, `gas_miles_m3`, `agua_m3`, `pozos_en_extraccion`.
      - `por_yacimiento` object: Los 12 meses de `ultimo_periodo` por área y yacimiento: `area`, `yacimiento`, `provincia`, `cuenca`, `recurso` (convencional o no convencional, con el subtipo), `petroleo_m3`, `gas_miles_m3`, `pozos_en_extraccion`.
      - `areas` object: Concesiones de explotación, lotes de explotación y permisos de exploración en los que figura: `tipo`, `codigo`, `nombre`, `rol` (operadora, socia o informante), `porcentaje` y `plano_modificado_el`.
      - `consorcios` object: Participaciones asignadas en la conformación de consorcios: `area`, `area_codigo`, `porcentaje`, `asignada_el` y `finalizada` (área finalizada o revertida a la provincia). Es un historial de asignaciones, no una foto de lo vigente.
      - `inscripciones` object: Inscripciones anuales: `registro` (upstream o midstream), `anio`, `categoria`, `numero`.
      - `venteos` object, nullable: Venteos y quema de gas detectados por satélite (VIIRS, MODIS) en concesiones que la empresa operaba ese mes: `total`, `ultimos_12_meses` (a `hasta`, la última detección publicada), `ultima` y `por_area`. ⚠️ La fuente no nombra a la empresa: una detección se le atribuye sólo si cae en UNA concesión y esa concesión tuvo UNA operadora declarando producción ese mes. Null si no hay ninguna.
      - `fracturas` object, nullable: Fracturas de pozos informadas: `total`, `ultimos_12_meses`, `ultima`, `etapas`, `agua_m3`, `por_formacion` y las diez más recientes. Una fecha de fractura posterior a su carga es imposible y se reemplaza por la de carga. Null si no informó ninguna.
    - `glp_planta_y_transporte` object, nullable: Lo que la empresa declara mes a mes a la Secretaría de Energía como productora, fraccionadora, distribuidora o compradora de GLP, como refinadora que vende en planta (Res. 606/2003) y como transportista, terminal o cargadora de hidrocarburos. `grupos`: uno por fuente, rol y unidad, con `descripcion`, `unidad` (`t` el GLP, el asfalto y el coque; `m3` lo demás), `desde`, `ultimo_periodo`, `volumen_12_meses` (null en el transporte, que mezcla gas y líquidos), `productos`, las diez `contrapartes` de más volumen (sólo empresas) y `volumen_con_consumidores_finales` (personas humanas, nunca nombradas). `precio_12_meses` (en el grupo y en cada producto): el promedio ponderado por volumen, sin IVA cuando la fuente lo distingue, con `valor`, `unidad` (`$/t` o `$/litro`), el `volumen` que lo respalda y la `cobertura` (parte del volumen con precio, de 0 a 1). ⚠️ La fuente mezcla $/t con $/kg y precio por garrafa: el promedio lleva sólo los renglones validados contra el mercado del mes, y es null si cubren menos de la mitad del volumen o si la fuente no publica precio. Null si no declara nada.
    - `estaciones_de_servicio` object, nullable: Estaciones de servicio que la empresa opera según la Res. 1104/04: `activas` (con ventas informadas en los 12 meses que terminan en `ultimo_periodo_del_pais` y sin baja), `otras` (dadas de baja, sin ventas recientes o sólo en el padrón), `banderas`, `volumen_12_meses_m3` por familia (`naftas`, `gasoil`, `gnc` en m³ de gas, `otros`) y hasta 500 `estaciones` con `nro_inscripcion`, bandera, tipo de negocio, domicilio, `fecha_baja`, `ultimo_periodo` y su volumen. `serie_anual`: lo vendido por año desde 2018 (`anio`, `volumen_m3` por familia, `meses` con ventas, `volumen_incompleto`), de las estaciones que opera hoy: la fuente no distingue lo que una estación vendió antes de cambiar de operador. ⚠️ Una parte de las estaciones informa el volumen en litros: lo que pasa de 2.000 por mes y producto no se suma y se marca `volumen_incompleto`. Null si no opera ninguna.
  - `juicios` object: Procesos judiciales publicados por edicto en los que la sociedad es parte. Sólo presente con campos=juicios; vacío (listas vacías, total 0) si no hay ninguno.
    - `procesos` object[]: Un renglón por proceso, del edicto más nuevo al más viejo. Un mismo edicto publicado varios días es un solo proceso.
      - `fecha_publicacion` string, date: Publicación más nueva del edicto.
      - `tipo_de_edicto` 'quiebra_concurso' | 'citacion' | 'notificacion' | 'remate' | 'usucapion' | 'deudor_persona'
      - `categoria` 'quiebra' | 'concurso_preventivo' | 'concurso_especial' | 'incidente_concursal' | 'pedido_de_quiebra' | 'quiebra_o_concurso' | 'laboral' | 'accidente_de_trabajo' | 'cobro' | 'ejecucion' | 'ejecucion_fiscal' | 'ejecucion_hipotecaria' | 'expensas' | 'danos_y_perjuicios' | 'usucapion' | 'infraccion' | 'contrato' | 'otro': Qué se discute, leído de la carátula.
      - `rol` 'sujeto' | 'citada' | 'demandada' | 'actora': sujeto: la fallida o la concursada; citada; demandada; actora (contra otra sociedad o el Estado: lo iniciado contra personas va en `iniciados`).
      - `detalle_reservado` boolean: La otra parte es una persona humana: juzgado, secretaría y expediente vienen en null porque llevan a ella (Ley 25.326). La categoría, el rol y la fecha sí.
      - `juzgado` string, nullable
      - `secretaria` string, nullable
      - `expediente` string, nullable: Tal como lo escribe el edicto.
      - `sindico` string, nullable: Sólo en quiebras y concursos.
      - `fechas` object: Las fechas del proceso que trae el edicto, por nombre: resolucion, verificacion (vencimiento para verificar créditos), informeIndividual, informeGeneral, audiencia, subasta. AAAA-MM-DD.
    - `iniciados` object: Los juicios que la sociedad inició contra personas humanas. Sólo se cuentan: el juzgado y el expediente llevarían a la persona demandada (Ley 25.326).
      - `total` integer
      - `por_categoria` object[]: Categoría y cantidad.
        - `categoria` 'quiebra' | 'concurso_preventivo' | 'concurso_especial' | 'incidente_concursal' | 'pedido_de_quiebra' | 'quiebra_o_concurso' | 'laboral' | 'accidente_de_trabajo' | 'cobro' | 'ejecucion' | 'ejecucion_fiscal' | 'ejecucion_hipotecaria' | 'expensas' | 'danos_y_perjuicios' | 'usucapion' | 'infraccion' | 'contrato' | 'otro'
        - `cantidad` integer
      - `desde` string, date, nullable
      - `hasta` string, date, nullable
    - `causas_historicas` object: Las causas no penales que los poderes judiciales provinciales informaron al Ministerio de Justicia con el CUIT de la sociedad. Es un ARCHIVO: casi todo Mendoza, Jujuy, La Pampa, Tucumán, Córdoba y Santa Fe de 2016 a 2019. El número de causa no se publica.
      - `fuente` string
      - `total` integer: Todas, las listadas y las contadas.
      - `por_categoria` object[]: Categoría y cantidad, de todas.
        - `categoria` 'quiebra' | 'concurso_preventivo' | 'concurso_especial' | 'incidente_concursal' | 'pedido_de_quiebra' | 'quiebra_o_concurso' | 'laboral' | 'accidente_de_trabajo' | 'cobro' | 'ejecucion' | 'ejecucion_fiscal' | 'ejecucion_hipotecaria' | 'expensas' | 'danos_y_perjuicios' | 'usucapion' | 'infraccion' | 'contrato' | 'otro'
        - `cantidad` integer
      - `desde` integer, nullable: Año de inicio de la más vieja.
      - `hasta` integer, nullable: Año de inicio de la más nueva.
      - `provincias` object
      - `causas` object[]: De la más nueva a la más vieja, hasta 60. Las que la sociedad inició contra personas o contra quien la fuente no identifica no se listan: van en `iniciadas`.
        - `fecha_inicio` string, date, nullable
        - `provincia` string
        - `categoria` 'quiebra' | 'concurso_preventivo' | 'concurso_especial' | 'incidente_concursal' | 'pedido_de_quiebra' | 'quiebra_o_concurso' | 'laboral' | 'accidente_de_trabajo' | 'cobro' | 'ejecucion' | 'ejecucion_fiscal' | 'ejecucion_hipotecaria' | 'expensas' | 'danos_y_perjuicios' | 'usucapion' | 'infraccion' | 'contrato' | 'otro'
        - `rol` 'actora' | 'demandada' | 'parte'
        - `detalle_reservado` boolean: La otra parte es una persona humana: objeto, juzgado y circunscripción vienen en null.
        - `objeto` string, nullable: El objeto según la fuente.
        - `juzgado` string, nullable
        - `circunscripcion` string, nullable
      - `sin_listar` integer: Causas listables que quedaron afuera del tope.
      - `iniciadas` object: Sólo se cuentan (Ley 25.326).
        - `total` integer
        - `por_categoria` object[]
          - `categoria` 'quiebra' | 'concurso_preventivo' | 'concurso_especial' | 'incidente_concursal' | 'pedido_de_quiebra' | 'quiebra_o_concurso' | 'laboral' | 'accidente_de_trabajo' | 'cobro' | 'ejecucion' | 'ejecucion_fiscal' | 'ejecucion_hipotecaria' | 'expensas' | 'danos_y_perjuicios' | 'usucapion' | 'infraccion' | 'contrato' | 'otro'
          - `cantidad` integer
    - `registros_judiciales` object: Lo que contestaron dos registros judiciales públicos consultados a demanda. Pedir la ficha encola la consulta si venció (7 días); la respuesta nunca la espera.
      - `rju_scba` object: Registro de Juicios Universales de la Suprema Corte de Buenos Aires (quiebras y concursos), por CUIT.
        - `consultado_el` string, date-time, nullable: Última consulta buena; null si todavía no se consultó.
        - `inscripciones` object[]
          - `anio` integer, nullable
          - `oficio` string, nullable
      - `ciudad_de_buenos_aires` object: Consulta pública de la Justicia de la Ciudad: las causas del Gobierno de la Ciudad contra la sociedad (ejecuciones fiscales y de multas), atadas por el nombre con candidato único. Hasta las 25 más nuevas.
        - `consultado_el` string, date-time, nullable
        - `monto_total` number, nullable: Suma de los montos reclamados en las causas leídas, en pesos. Con `monto_total_es_piso` es un mínimo, no el total.
        - `monto_total_es_piso` boolean: La búsqueda trajo más expedientes de los que se leen: hay causas sin leer.
        - `resultados_en_la_fuente` integer, nullable: Expedientes que trajo la búsqueda de la Ciudad, incluidos los de otras partes que el match descarta. No es la cantidad de causas de la sociedad.
        - `recortado` boolean: Se leyeron sólo los 25 expedientes más recientes de la búsqueda: `causas` es "al menos".
        - `causas` object[]
          - `fecha_inicio` string, date, nullable
          - `categoria` 'ejecucion_fiscal' | 'ejecucion' | 'infraccion' | 'otro'
          - `materia` string, nullable
          - `objeto` string, nullable: Lo que se ejecuta: radicación de vehículos, antenas, ingresos brutos.
          - `tiene_sentencia` boolean
          - `monto` number, nullable: Monto reclamado, en pesos.
          - `juzgado` string, nullable
          - `cuij` string, nullable
    - `nota` string: El encuadre: qué cubre y qué no.
  - `score` object: Score de riesgo de la empresa. Sólo presente con campos=score. Resumen de hechos de registros públicos convertido en un número de 0 a 100 con criterio explícito; no es una calificación crediticia. Calculado en el momento con los mismos datos que la ficha.
    - `score` integer: De 0 a 100. Arranca en 70 (consultado y sin observaciones): las observaciones restan, las señales positivas suman y nunca restan.
    - `nivel` 'grave' | 'revisar' | 'sin_observaciones' | 'sin_datos': grave (menos de 40 con observaciones) · revisar (40 o más con observaciones) · sin_observaciones (se miró y no hay negativas) · sin_datos (nada evaluable).
    - `nivel_label` string: El nivel, legible.
    - `dimensiones_evaluadas` integer: Cuántas dimensiones se pudieron mirar. "Sin observaciones" no es "sin datos": el número viaja siempre con esto.
    - `desglose` object[]: Qué lo sube y qué lo baja, un renglón por señal encontrada. Sin los puntos: la fórmula no se publica.
      - `clave` string: Identificador estable de la señal (quiebra, concurso, bcra_actual, bcra_historica, cheques_impagos, cheques_pagados, sanciones, repsal, apoc, fiscal, rotacion, patrimonio_neto, contratos, comex, antiguedad, balances, paritarias, empleadora, directorio, …).
      - `etiqueta` string: La señal, legible.
      - `sentido` 'baja' | 'sube': baja = resta puntos · sube = suma puntos.
      - `hecho` string: El hecho de registro público que produjo el renglón, con su fecha o período cuando lo tiene.
      - `seccion` string, nullable: Bloque de la ficha (y de esta misma respuesta) donde está el dato: bcra_deuda, bcra_cheques, historial, sanciones, repsal, contratos, comercio-exterior, estados-contables, paritarias, personas.
    - `calculado_el` string, date-time
    - `nota` string: El encuadre: qué es y qué no es.
  - `consultado_el` string, date-time

## Other responses

- `400`: Parámetro inválido.
- `401`: api_key_faltante, api_key_malformada (la key llegó cortada o con otro formato) o api_key_invalida (no existe o fue revocada).
- `402`: Créditos insuficientes.
- `404`: No encontrado.
- `429`: limite_de_requests_excedido (por minuto), limite_diario_gratuito_excedido (endpoints gratis) o limite_diario_autoservicio_excedido (cupo diario de créditos por cuenta).
- `500`: error_interno. Reintentar; no se cobra.
- `503`: servicio_no_disponible (transitorio, con Retry-After) o padron_no_disponible (el CUIT no está en nuestro padrón y el padrón fiscal no respondió a tiempo). Reintentar; no se cobra.

---

[API](https://skmtc.dev/indicadores/apis/api-de-indicadores-argentina.md) · [All operations](https://skmtc.dev/indicadores/apis/api-de-indicadores-argentina/llms.txt) · [OpenAPI document](https://skmtc.dev/indicadores/apis/api-de-indicadores-argentina/revisions/8bc14951b48d?raw)
