REST API para investigación


API para investigadores que quieran trabajar con los reportes de inquilinos informados por nuestra comunidad.


Cantidad de registros de inquilinos informados: 3.021
Cantidad de registros de inquilinos informados (de usuarios validados): 2.708

Tu token personal

Necesitás iniciar sesión en acuantoalquilo.com.ar para obtener un token. Creá una cuenta o iniciá sesión y volvé a esta página.

— — —

Ventana de rate limit: 1 h · Máx. 200 requests por ventana.
Regenerar el token no reinicia el límite: las restricciones se aplican por usuario.

Endpoint REST

Hacé un request GET a la siguiente URL, incluyendo tu token como query string o cabecera:

GET https://acuantoalquilo.com.ar/api/v1/inq-data?token=TU_TOKEN&limit=100&offset=0

También podés enviar el token en la cabecera x-aca-data-token.

Parámetros


  • token (string) · Obligatorio. Generalo en esta misma página.

  • limit (int) · Opcional (1–500). Default: 100.

  • offset (int) · Opcional. Default: 0.

¿Qué incluye?


  • Incluye solo registros con validatedUser = true (usuarios que validaron su mail).

  • Incluimos checkedData = true y false (es decir, la consulta también incluye outliers o alquileres fuera de rango lógico).

  • Se excluyen registros cuyo comentario contenga "prueba".

¿Qué significan limit y offset?

Son dos parámetros para paginar las consultas:

Tip: si hacés requests diarios, almacená el último offset descargado y consultá el endpoint de estadísticas para saber si hay más registros antes de volver a pedir datos.

Campos disponibles

  • geoInq (GeoJSON Point): ubicación del inmueble (lon/lat en GeoJSON).
  • montoInq alquiler informado.
  • currency tipo de moneda.
  • expensasInq monto de expensas.
  • tipoHogarInq tipo de vivienda (departamento, casa, PH).
  • cantAmbInq cantidad de ambientes.
  • estadoInq estado del inmueble (nuevo, malo, etc.)
  • cualiInq (array): cualidades del inmueble (baulera, patio, pileta, etc.)
  • renovInq plazo de renovación (ej: 12 meses, 1 año, etc.)
  • renovType tipo de renovación (ej: ICL, Inflación, etc)
  • initInqMes mes de inicio del contrato
  • initInqYear año de inicio del contrato
  • proxInqMes mes de finalización de contrato.
  • proxInqYear año de finalización de contrato.
  • factInq si el alquiler es con factura o no.
  • contratInq si el alquiler es con contrato o no.
  • relacInq si el alquiler es dueño directo o por inmobiliaria.
  • pagoInq método de pago (efectivo, transferencia)
  • updatedRentInARS monto de alquiler actualizado según inflación acumulada.
  • updatedRentLastUpdate fecha de última actualización de alquiler por inflación acumulada.
  • updatedExpensasInARSexpensas actualizadas según inflación acumulada.
  • inqDataDate (fecha en que el usuario cargó este registro)
  • checkedData Si acuantoalquilo lo incluye o no (false si esta excluido por outlier o sospechoso)

Incluimos checkedData: false para que los veas; filtrá con los rangos publicados en estadísticas para excluir valores fuera de lógica.

Respuesta de ejemplo

{
  "meta": {
    "count": 2,
    "limit": 100,
    "offset": 0,
    "rateLimit": {
      "limit": 200,
      "used": 1,
      "remaining": 199
    }
  },
  "data": [
    {
      "geoInq": { "type": "Point", "coordinates": [-58.44, -34.61] },
      "montoInq": 250000,
      "currency": "ARS",
      "expensasInq": 45000,
      "tipoHogarInq": "3 ambientes",
      "cantAmbInq": "3",
      "estadoInq": "Contrato vigente",
      "cualiInq": ["con balcón"],
      "renovInq": "12 meses",
      "renovType": "Inflación",
      "initInqMes": "03",
      "initInqYear": "2023",
      "proxInqMes": "04",
      "proxInqYear": "2024",
      "factInq": "Con factura",
      "contratInq": "Contrato escrito",
      "relacInq": "Dueño directo",
      "pagoInq": "Transferencia",
      "updatedRentInARS": 312000,
      "updatedRentLastUpdate": "2024-05-15T03:00:00.000Z",
      "updatedExpensasInARS": 52000,
      "checkedData": true
    }
  ]
}
      

Endpoint de estadísticas

Consultá cuántos registros cumplen los criterios antes de descargar datos. Ideal para saber si hay novedades y ajustar tu paginación.

GET https://acuantoalquilo.com.ar/api/v1/inq-data/stats?token=TU_TOKEN

Respuesta (esta consulta también cuenta para tu rate limit):

{
  "totalRecords": 12840,
  "availableRecords": 12400,
  "latestInqDataDate": "2024-05-22T18:30:11.000Z",
  "latestUpdatedRentAt": "2024-05-22T18:30:11.000Z",
  "breakdown": {
    "inquilinos": {
      "validatedEmail": 15000,
      "notValidatedEmail": 3200,
      "checkedDataTrue": 12840,
      "checkedDataFalse": 2700
    },
    "propietarios": {
      "validatedEmail": 4200,
      "notValidatedEmail": 1100
    }
  },
  "limits": {
    "rentFromSheet": {
      "sourceLabel": "nov-2024",
      "sourceDate": "2024-11-01T00:00:00.000Z",
      "ranges": {
        "habitacion": { "min": 80000, "max": 160000 },
        "1": { "min": 120000, "max": 240000 },
        "2": { "min": 180000, "max": 320000 },
        "3": { "min": 240000, "max": 420000 }
      }
    },
    "expensas": {
      "allowEmpty": true,
      "min": 0,
      "max": 900000
    }
  },
  "filtersApplied": {
    "validatedUser": true,
    "checkedData": "true/false (se incluyen ambos)",
    "requiredFields": ["tipoHogarInq","cantAmbInq","montoInq","currency","geoInq"],
    "excludeComments": "contiene \"prueba\""
  }
}
      
  • totalRecords: total de reportes de inquilinos cargados (usuarios validados y no validados).
  • availableRecords: registros que se entregan vía API (solo usuarios validados).
  • latestInqDataDate: último registro cargado (fecha de carga original).
  • latestUpdatedRentAt: última fecha en que recalculamos monto/expensas en ARS.
  • limits.rentFromSheet.sourceLabel/sourceDate: etiqueta y fecha de la hoja usada.
  • limits.rentFromSheet.ranges: min/max por tipo (habitacion, 1, 2, 3 ambientes).
  • limits.expensas.allowEmpty/min/max: regla de expensas permitidas.
  • breakdown.inquilinos.validatedEmail/notValidatedEmail: reportes de inquilinos según verificaron mail o no.
  • breakdown.inquilinos.checkedDataTrue/checkedDataFalse: reportes validados vs. aún pendientes de chequeo.
  • breakdown.propietarios.validatedEmail/notValidatedEmail: reportes de propietarios según validación de mail.
  • filtersApplied.validatedUser/checkedData: filtros base de validación y chequeo.
  • filtersApplied.requiredFields: campos mínimos presentes en cada registro.
  • filtersApplied.excludeComments: se filtran reportes cuyo comentario contenga "prueba".

Manejo de errores

  • 401 - Token faltante o inválido: la respuesta aclara si faltó enviarlo o si el token ya no existe. Generá uno nuevo en esta página.
  • 429 - Rate limit excedido: se incluye retryAfterMs para que sepas cuánto esperar antes de reintentar.
  • 400 - Parámetros inválidos: si enviás un limit fuera de rango te respondemos qué valor aceptamos.
  • 500 - Error interno: puede deberse a tareas de mantenimiento. Intentá de nuevo y, si persiste, escribinos con el mensaje recibido.

Recomendaciones

  • Respetá el rate limit. Si recibís un error 429, esperá el tiempo indicado antes de reintentar.
  • Guardá en caché los resultados si necesitás ejecutar análisis repetitivos.
  • Usá offset para paginar y recorrer la base completa sin saltarte registros.
  • No compartas tu token públicamente: identifica toda consulta a tu nombre.