{
  "openapi": "3.0.1",
  "info": {
    "title": "AdondeVivir Peru Real Estate Scraper | Property Listings API",
    "description": "Scrape AdondeVivir property listings for sale and rent in Peru: apartments, houses, offices and land in Lima and nationwide. Extract price in USD and PEN, bedrooms, bathrooms, area, price per m2, location, amenities, images, agent phone and WhatsApp. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "P5U4uJiyUAZFeYziV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~adondevivir-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-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/scrapers_lat~adondevivir-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-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/scrapers_lat~adondevivir-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-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": {
          "maxListings": {
            "title": "Max Listings",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of real estate listings to collect. Optional."
          },
          "withDetails": {
            "title": "Scrape detail pages",
            "type": "boolean",
            "description": "When enabled, each listing's detail page is fetched to add description, amenities, full image gallery, exact dual-currency price, structured address, publisher/agent contacts and coordinates. Paid Apify plans only; billed per listing enriched (details event).",
            "default": true
          },
          "startUrl": {
            "title": "Search URL",
            "type": "string",
            "description": "An Adondevivir.com search results URL. Apply any filters on adondevivir.com and paste the resulting URL, for example https://www.adondevivir.com/departamentos-en-venta.html"
          },
          "startUrls": {
            "title": "Search URLs (batch)",
            "type": "array",
            "description": "Optional list of Adondevivir.com search URLs to scrape in one run. Accepts plain strings or {\"url\": \"...\"} objects. Combine with or use instead of startUrl.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Min price",
            "type": "integer",
            "description": "Only keep listings priced at or above this amount, in the currency set by Price currency (default USD). Optional."
          },
          "maxPrice": {
            "title": "Max price",
            "type": "integer",
            "description": "Only keep listings priced at or below this amount, in the currency set by Price currency (default USD). Optional."
          },
          "priceCurrency": {
            "title": "Price currency",
            "enum": [
              "USD",
              "PEN"
            ],
            "type": "string",
            "description": "Currency used for Min/Max price filtering.",
            "default": "USD"
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "type": "integer",
            "description": "Only keep listings with at least this many bedrooms. Optional."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "type": "integer",
            "description": "Only keep listings with at most this many bedrooms. Optional."
          },
          "minBathrooms": {
            "title": "Min bathrooms",
            "type": "integer",
            "description": "Only keep listings with at least this many bathrooms. Optional."
          },
          "minAreaM2": {
            "title": "Min area (m2)",
            "type": "integer",
            "description": "Only keep listings with total area at or above this many square meters. Optional."
          },
          "maxAreaM2": {
            "title": "Max area (m2)",
            "type": "integer",
            "description": "Only keep listings with total area at or below this many square meters. Optional."
          },
          "withAiListingSummary": {
            "title": "AI listing summary (paid add-on)",
            "type": "boolean",
            "description": "Off by default. When on, writes a concise English summary of each listing. Requires a paid Apify plan. Billed only when a summary is produced.",
            "default": false
          },
          "withAiFeatures": {
            "title": "AI features extraction (paid add-on)",
            "type": "boolean",
            "description": "Off by default. When on, extracts structured condition, highlights and nearby points of interest from each listing. Requires a paid Apify plan. Billed only when features are produced.",
            "default": false
          },
          "withAiTranslate": {
            "title": "AI translate to English (paid add-on)",
            "type": "boolean",
            "description": "Off by default. When on, translates each listing title and description from Spanish to English. Requires a paid Apify plan. Billed only when a translation is produced.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}