{
  "openapi": "3.0.1",
  "info": {
    "title": "Adondevivir Peru Real Estate Scraper & Monitor",
    "description": "Extract Adondevivir listings in Peru for rent and sale with price in soles and dollars, mantenimiento, monthly cost, price per m², bedrooms, parking, GPS, WhatsApp and photos. Filter by district, pool, pets, condominium or direct owners, and track new listings and price drops.",
    "version": "1.0",
    "x-build-id": "eqixcTS87jzXchuF4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datamole~adondevivir-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datamole-adondevivir-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/datamole~adondevivir-scraper/runs": {
      "post": {
        "operationId": "runs-sync-datamole-adondevivir-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/datamole~adondevivir-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-datamole-adondevivir-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "title": "Ubicaciones",
            "type": "array",
            "description": "Distritos, urbanizaciones, ciudades o departamentos como aparecen en Adondevivir, por ejemplo Miraflores, San Isidro, Santiago de Surco, Arequipa o Trujillo.",
            "items": {
              "type": "string"
            }
          },
          "operation": {
            "title": "Operación",
            "enum": [
              "alquiler",
              "venta",
              "alquiler-temporal",
              "traspaso"
            ],
            "type": "string",
            "description": "Alquiler, Venta, Alquiler temporal, Traspaso.",
            "default": "alquiler"
          },
          "propertyTypes": {
            "title": "Tipo de propiedad",
            "type": "array",
            "description": "Uno o varios tipos.",
            "items": {
              "type": "string",
              "enum": [
                "casa",
                "departamento",
                "terreno-lote",
                "oficina",
                "local-comercial",
                "local-industrial",
                "habitacion",
                "terreno-agricola",
                "casa-de-playa",
                "casa-de-campo",
                "otros",
                "cochera",
                "proyecto-vertical",
                "proyecto-horizontal-vertical",
                "hotel",
                "lote",
                "edificios",
                "condominio-de-casas",
                "condominio-de-edificios",
                "proyecto-de-lotes"
              ],
              "enumTitles": [
                "Casa",
                "Departamento",
                "Terreno / Lote",
                "Oficina",
                "Local comercial",
                "Local industrial",
                "Habitación",
                "Terreno agrícola",
                "Casa de playa",
                "Casa de campo",
                "Otros",
                "Cochera",
                "Proyecto vertical",
                "Proyecto horizontal-vertical",
                "Hotel",
                "Lote",
                "Edificios",
                "Condominio de casas",
                "Condominio de edificios",
                "Proyecto de lotes"
              ]
            },
            "default": [
              "departamento"
            ]
          },
          "searchUrls": {
            "title": "URLs de búsqueda",
            "type": "array",
            "description": "Opcional. Pegá cualquier búsqueda del portal con tus filtros ya aplicados. Se recorren todas sus páginas.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Máximo de avisos",
            "minimum": 1,
            "type": "integer",
            "description": "Tope para toda la corrida. Vacío = sin tope."
          },
          "maxPagesPerSearch": {
            "title": "Máximo de páginas por búsqueda",
            "minimum": 1,
            "type": "integer",
            "description": "Cada página trae 30 avisos. Vacío = todas."
          },
          "minPrice": {
            "title": "Precio mínimo",
            "minimum": 0,
            "type": "integer",
            "description": "Precio mínimo"
          },
          "maxPrice": {
            "title": "Precio máximo",
            "minimum": 0,
            "type": "integer",
            "description": "Precio máximo"
          },
          "priceCurrency": {
            "title": "Moneda del filtro de precio",
            "enum": [
              "USD",
              "PEN"
            ],
            "type": "string",
            "description": "Moneda del filtro de precio.",
            "default": "USD"
          },
          "minMaintenance": {
            "title": "Mantenimiento mínimo (S/)",
            "minimum": 0,
            "type": "integer",
            "description": "Mantenimiento mínimo."
          },
          "maxMaintenance": {
            "title": "Mantenimiento máximo (S/)",
            "minimum": 0,
            "type": "integer",
            "description": "Mantenimiento máximo."
          },
          "minBedrooms": {
            "title": "Dormitorios (mínimo)",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Dormitorios."
          },
          "minBathrooms": {
            "title": "Baños (mínimo)",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Baños (mínimo)"
          },
          "minParking": {
            "title": "Estacionamientos (mínimo)",
            "minimum": 0,
            "maximum": 4,
            "type": "integer",
            "description": "Estacionamientos."
          },
          "minArea": {
            "title": "Superficie mínima (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Superficie techada."
          },
          "maxArea": {
            "title": "Superficie máxima (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Superficie techada."
          },
          "antiquity": {
            "title": "Antigüedad",
            "enum": [
              "en-construccion",
              "a-estrenar",
              "hasta-5",
              "hasta-10",
              "hasta-20",
              "hasta-50",
              "mas-de-50"
            ],
            "type": "string",
            "description": "Antigüedad máxima del inmueble."
          },
          "general": {
            "title": "Generales",
            "type": "array",
            "description": "Piscina, amoblado, ascensor, permite mascotas, en condominio, frente a parque y más. Se exigen todas las elegidas.",
            "items": {
              "type": "string",
              "enum": [
                "amoblado",
                "ascensor",
                "jardin",
                "piscina",
                "terraza",
                "bano-de-servicio",
                "cuartos-de-servicio",
                "jacuzzi",
                "seguridad",
                "centros-comerciales-cercanos",
                "cerca-a-colegios",
                "permite-mascotas",
                "vista-al-mar",
                "reposteros-en-cocina",
                "acceso-para-personas-con-movilidad-reducida",
                "armario",
                "intercomunicador",
                "duplex",
                "closet",
                "en-condominio",
                "triplex",
                "frente-a-parque",
                "balcon-con-verja-de-seguridad"
              ],
              "enumTitles": [
                "Amoblado",
                "Ascensor",
                "Jardín",
                "Piscina",
                "Terraza",
                "Baño de servicio",
                "Cuartos de servicio",
                "Jacuzzi",
                "Seguridad",
                "Centros comerciales cercanos",
                "Cerca a colegios",
                "Permite mascotas",
                "Vista al mar",
                "Reposteros en cocina",
                "Acceso para personas con movilidad reducida",
                "Armario",
                "Intercomunicador",
                "Dúplex",
                "Closet",
                "En condominio",
                "Triplex",
                "Frente a parque",
                "Balcón con verja de seguridad"
              ]
            }
          },
          "outdoor": {
            "title": "Exteriores",
            "type": "array",
            "description": "Área de BBQ, balcón, piscina al aire libre o climatizada, jardín privado, playa. Se exigen todas las elegidas.",
            "items": {
              "type": "string",
              "enum": [
                "area-de-bbq",
                "balcon",
                "cancha",
                "laguna",
                "piscina-al-aire-libre",
                "piscina-climatizada",
                "jardin-privado",
                "playa"
              ],
              "enumTitles": [
                "Área de BBQ",
                "Balcón",
                "Cancha",
                "Laguna",
                "Piscina al aire libre",
                "Piscina climatizada",
                "Jardín privado",
                "Playa"
              ]
            }
          },
          "services": {
            "title": "Servicios",
            "type": "array",
            "description": "Gimnasio, seguridad, video vigilancia, parrilla, áreas verdes, co-working y más. Se exigen todas las elegidas.",
            "items": {
              "type": "string",
              "enum": [
                "area-de-lavanderia",
                "gas-centralizado",
                "gimnasio",
                "internet-wifi",
                "aire-acondicionado",
                "guardiania-seguridad-privada",
                "control-de-accesos",
                "video-vigilancia",
                "television-por-cable",
                "servicios-basicos-agua-luz",
                "juegos-infantiles",
                "valet-parking",
                "calefaccion",
                "parrilla",
                "agua-corriente",
                "areas-verdes",
                "canchas-deportivas",
                "kitchenet",
                "seguridad-externa",
                "posee-luminarias",
                "vestuario",
                "espacio-de-co-working"
              ],
              "enumTitles": [
                "Área de lavandería",
                "Gas centralizado",
                "Gimnasio",
                "Internet/Wifi",
                "Aire acondicionado",
                "Guardianía/Seguridad privada",
                "Control de accesos",
                "Video vigilancia",
                "Televisión por cable",
                "Servicios básicos (agua/luz)",
                "Juegos infantiles",
                "Valet parking",
                "Calefacción",
                "Parrilla",
                "Agua corriente",
                "Áreas verdes",
                "Canchas deportivas",
                "Kitchenet",
                "Seguridad externa",
                "Posee luminarias",
                "Vestuario",
                "Espacio de co-working"
              ]
            }
          },
          "roomTypes": {
            "title": "Ambientes",
            "type": "array",
            "description": "Suite, sala de estar, depósito, hidromasaje, terraza y más. Se exigen todas las elegidas.",
            "items": {
              "type": "string",
              "enum": [
                "area-de-cafeteria",
                "bodega",
                "patio",
                "area-comun",
                "sauna",
                "atico",
                "vestidores",
                "turco",
                "sala-de-estar",
                "cuarto-de-juegos",
                "hidromasaje",
                "salon-de-usos-multiples",
                "piscina-cubierta",
                "deposito",
                "escritorio",
                "sotano",
                "suite",
                "bano-propio",
                "oficina"
              ],
              "enumTitles": [
                "Área de cafetería",
                "Bodega",
                "Patio",
                "Área común",
                "Sauna",
                "Ático",
                "Vestidores",
                "Turco",
                "Sala de estar",
                "Cuarto de juegos",
                "Hidromasaje",
                "Salón de usos múltiples",
                "Piscina cubierta",
                "Depósito",
                "Escritorio",
                "Sótano",
                "Suite",
                "Baño propio",
                "Oficina"
              ]
            }
          },
          "publisherType": {
            "title": "Anunciante",
            "enum": [
              "todos",
              "inmobiliaria",
              "dueno-directo"
            ],
            "type": "string",
            "description": "Todos, inmobiliaria / dueño directo.",
            "default": "todos"
          },
          "publishedWithin": {
            "title": "Publicado",
            "enum": [
              "hoy",
              "desde-ayer",
              "ultima-semana",
              "ultimos-15-dias",
              "ultimos-30-dias",
              "ultimos-45-dias"
            ],
            "type": "string",
            "description": "Solo avisos publicados en este período."
          },
          "multimedia": {
            "title": "Multimedia",
            "type": "array",
            "description": "Solo avisos con video, recorrido 360 o planos.",
            "items": {
              "type": "string",
              "enum": [
                "video",
                "recorrido-360",
                "planos"
              ],
              "enumTitles": [
                "Video",
                "Recorrido 360",
                "Planos"
              ]
            }
          },
          "keyword": {
            "title": "Palabra clave",
            "type": "string",
            "description": "Buscador de palabras del portal. Es estricto y devuelve pocos avisos: para comodidades usá los filtros de comodidades."
          },
          "sort": {
            "title": "Orden",
            "enum": [
              "more_recent",
              "relevance",
              "low_price",
              "high_price",
              "most_lowered_price"
            ],
            "type": "string",
            "description": "Más recientes recorre la búsqueda completa sin repetidos. Bajaron de precio muestra primero las rebajas.",
            "default": "more_recent"
          },
          "includeDetails": {
            "title": "Detalle completo (con costo extra)",
            "type": "boolean",
            "description": "Abre cada aviso para sumar todas las comodidades, antigüedad, teléfono del anunciante, dirección exacta, descripción completa y fecha de publicación. Es más lento y tiene un costo adicional por aviso.",
            "default": false
          },
          "monitorMode": {
            "title": "Modo monitoreo",
            "type": "boolean",
            "description": "Recuerda los avisos entre corridas y devuelve solo los nuevos y los que cambiaron de precio, con el precio anterior y el % de cambio. La primera corrida devuelve todo.",
            "default": false
          },
          "monitorName": {
            "title": "Nombre del monitoreo",
            "type": "string",
            "description": "Opcional. Usá el mismo nombre para compartir la memoria entre configuraciones. Vacío = se identifica por los filtros."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "El portal exige IP residencial del país. Dejalo como está.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "PE"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}