Indicadores Argentina Empresas API
The Empresas API from Indicadores Argentina — 1 operation(s) for empresas.
The Empresas API from Indicadores Argentina — 1 operation(s) for empresas.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/indicadores-ar:indicadores-ar-empresas-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Indicadores Ar Empresas API
version: '1.1'
contact:
email: contacto@indicadores.ar
url: https://indicadores.ar/api-empresas
description: 'Operations tagged Empresas across 2 of this provider''s published API definitions: indicadores-ar-openapi.json, openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://indicadores.ar/v1
security:
- apiKey: []
tags:
- name: Empresas
paths:
/empresas:
post:
operationId: fichasDeEmpresasEnLote
summary: La ficha de hasta 100 empresas por pedido
description: 'Hasta 100 CUITs por pedido, en JSON (`cuits`) o en CSV (el archivo tal cual, con `content-type: text/csv`). Cada CUIT recibe la MISMA ficha de `/v1/empresa`, con los mismos `campos` y `directorio_al`, y un estado propio: un CUIT que no existe o que no cierra el verificador no corta el lote. Se cobra por CUIT entregado, como si se hubiera pedido de a uno: la base de la ficha más los campos que volvieron con dato. Lo que no se entrega no se cobra, y una consulta repetida de un CUIT tampoco. Con `formato=csv` vuelve una planilla para Excel o para un ERP. Un lote por cuenta a la vez.
Costo: 1 crédito por CUIT entregado, más los campos adicionales que vuelven con dato (empleados +1, geo +1, beneficiarios +2, estados_contables +2, situacion_historica +1, paritarias +1, score +5, balances_cnv +1, presentaciones_igj +1, registros +1, juicios +1).'
parameters:
- name: campos
in: query
description: 'Los mismos campos adicionales de `/v1/empresa`, separados por coma, para todas las fichas del lote: empleados (+1), geo (+1), beneficiarios (+2), estados_contables (+2), situacion_historica (+1), paritarias (+1), score (+5), balances_cnv (+1), presentaciones_igj (+1), registros (+1), juicios (+1). También pueden ir en el cuerpo JSON.'
schema:
type: string
- name: directorio_al
in: query
description: 'Igual que en `/v1/empresa`: un día AAAA-MM-DD para saber quiénes administraban cada sociedad ese día, sin costo extra. Un día inválido es un 400 que no se cobra.'
schema:
type: string
- name: formato
in: query
description: '`json` (por defecto) o `csv`: una planilla con un renglón por CUIT y las columnas que entran en una celda, lista para Excel o para importar en un ERP. También se pide con el header `accept: text/csv`. En CSV sólo se aceptan los `campos` que tienen columna (empleados, geo, score); otro es un 400 `campo_sin_columna_en_csv`, porque se cobraría sin entregarse.'
schema:
type: string
enum:
- json
- csv
- name: separador
in: query
description: 'Sólo con `formato=csv`: `;` (por defecto, el que Excel abre en castellano con doble click, con coma decimal) o `,` (con punto decimal).'
schema:
type: string
enum:
- ;
- ','
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
cuits:
type: array
items:
type: string
description: Hasta 100 CUITs, con o sin guiones. Los repetidos vuelven una vez.
campos:
type: string
description: Como el parámetro de la URL; si van los dos, manda el del cuerpo.
directorio_al:
type: string
format: date
description: Como el parámetro de la URL.
text/csv:
schema:
type: string
description: 'Hasta 100 CUITs: un CUIT por renglón, o un CSV con una columna `cuit` (separado por coma, punto y coma o tabulador).'
responses:
'200':
description: Un resultado por CUIT. Con formato=csv, la planilla.
headers:
x-creditos-cobrados:
description: Lo que costó el lote (la suma por CUIT).
schema:
type: integer
x-creditos-restantes:
description: El saldo.
schema:
type: integer
content:
application/json:
schema:
type: object
properties:
resumen:
type: object
properties:
pedidos:
type: integer
description: CUITs distintos del pedido.
ok:
type: integer
no_encontrada:
type: integer
cuit_invalido:
type: integer
padron_no_disponible:
type: integer
creditos_insuficientes:
type: integer
sin_procesar:
type: integer
creditos_cobrados:
type: integer
description: La suma de lo cobrado por CUIT.
description: Cuántos CUITs hubo de cada estado y cuánto costó el lote.
resultados:
type: array
items:
type: object
properties:
entrada:
type: string
description: Lo que llegó, tal cual.
cuit:
type:
- string
- 'null'
description: Los 11 dígitos; null si la entrada no es un CUIT.
estado:
type: string
enum:
- ok
- no_encontrada
- cuit_invalido
- padron_no_disponible
- creditos_insuficientes
- sin_procesar
description: '`ok` (la ficha viaja en `ficha`), `no_encontrada`, `cuit_invalido`, `padron_no_disponible` (no está en nuestro padrón y el fiscal no contestó a tiempo: reintentar), `creditos_insuficientes` (el saldo no alcanzó para este CUIT; se lee a lo sumo lo que paga el saldo y las consultas repetidas, que salen gratis) o `sin_procesar` (el lote no llegó a este CUIT: reintentar). Sólo `ok` se cobra.'
motivo:
type:
- string
- 'null'
enum:
- formato_invalido
- digito_verificador
- tiempo_del_lote
- consulta_demorada
- error_interno
- null
description: 'En `cuit_invalido`: `formato_invalido` (no son 11 dígitos) o `digito_verificador` (no cierra: ese CUIT no existe). En `sin_procesar`: `tiempo_del_lote` (el lote usó su tiempo antes de llegar), `consulta_demorada` o `error_interno`. Null en el resto.'
creditos_cobrados:
type: integer
description: 'Lo que costó esa ficha: la base y los campos que volvieron con dato. 0 si no se entregó o si es una consulta repetida.'
campos_sin_cargo:
type: array
items:
type: string
description: Los campos pedidos que volvieron vacíos y no se cobraron.
consulta_repetida:
type: boolean
description: 'true si la misma consulta de ese CUIT (mismos campos y `directorio_al`) ya se cobró hace poco por REST, por el lote o por /v1/empresa: no se vuelve a cobrar.'
ficha:
type:
- object
- 'null'
description: La respuesta de `/v1/empresa` para ese CUIT, idéntica (también la de persona si el CUIT es de una persona). Null salvo en `ok`.
description: Un renglón por CUIT, en el orden del pedido.
creditos_restantes:
type: integer
description: El saldo después del lote.
consultado_el:
type: string
format: date-time
text/csv:
schema:
type: string
'400':
description: cuits_requeridos, demasiados_cuits (con el máximo), campo_invalido, campo_sin_columna_en_csv (un campo que la planilla no trae, con los que sí), directorio_al_invalido, formato_invalido o separador_invalido. No se cobra.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
$ref: '#/components/responses/NoAutorizado'
'402':
description: 'creditos_insuficientes: el saldo no alcanza ni para una ficha y ninguna es una consulta repetida.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: 'pedido_demasiado_grande: el cuerpo pasa el tamaño máximo.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: limite_de_requests_excedido, lote_en_curso (la cuenta ya tiene un lote corriendo) o limite_diario_autoservicio_excedido (con cupo_diario y cuits_que_entran_hoy).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
$ref: '#/components/responses/ErrorInterno'
'503':
$ref: '#/components/responses/NoDisponible'
tags:
- Empresas
servers:
- url: https://indicadores.ar/v1
components:
responses:
ErrorInterno:
description: error_interno. Reintentar; no se cobra.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NoDisponible:
description: 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) o consulta_demorada (la búsqueda superó su tope de tiempo). Reintentar; no se cobra.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NoAutorizado:
description: api_key_faltante, api_key_malformada (la key llegó cortada o con otro formato) o api_key_invalida (no existe o fue revocada).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
error:
type: string
securitySchemes:
apiKey:
type: apiKey
name: api-key
in: header
description: API key creada en https://indicadores.ar/api-empresas
x-refined-from:
- indicadores-ar-openapi.json
- openapi.json