{
  "openapi": "3.0.1",
  "info": {
    "title": "InfoCasas Real Estate Scraper | Property Listings & API",
    "description": "Scrape InfoCasas property listings across Uruguay, Paraguay, Bolivia, Peru and Argentina. Extract price in USD and local currency, area, bedrooms, bathrooms, amenities, agent phone, WhatsApp, GPS and photos for casas and apartamentos en venta o alquiler. Export property data to JSON, CSV or Excel.",
    "version": "0.2",
    "x-build-id": "7bPeuUFWuZjpKhKjs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~infocasas-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-infocasas-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~infocasas-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-infocasas-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~infocasas-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-infocasas-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": {
          "startUrl": {
            "title": "Search URL",
            "type": "string",
            "description": "A full InfoCasas search results URL, e.g. https://www.infocasas.com.uy/venta/casas/montevideo or any filtered search. All filters encoded in the URL (operation, property type, location, price, area, bedrooms) are respected. Works across every InfoCasas country domain (.com.uy, .com.py, .com.bo, .com.pe, .com.ar)."
          },
          "startUrls": {
            "title": "Search URLs (batch)",
            "type": "array",
            "description": "Optional list of InfoCasas search URLs to scrape in one run. Accepts plain strings or {\"url\": \"...\"} objects. Combined with startUrl and the search params below.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country (param search)",
            "enum": [
              "uy",
              "py",
              "bo",
              "pe",
              "ar",
              "co"
            ],
            "type": "string",
            "description": "Optional. Build a search from parameters instead of a URL. Country: uy, py, bo, pe, ar or co. Used only when no startUrl/startUrls is given.",
            "default": "uy"
          },
          "operation": {
            "title": "Operation (param search)",
            "enum": [
              "venta",
              "alquiler",
              "alquiler-temporal",
              "anticretico"
            ],
            "type": "string",
            "description": "Optional. venta (sale), alquiler (rent), alquiler-temporal (temporary rental) or anticretico (Bolivia). Used to build a search when no URL is given."
          },
          "propertyType": {
            "title": "Property type (param search)",
            "type": "string",
            "description": "Optional. Property type for a param-built search, e.g. casas, apartamentos, terrenos, oficinas, locales-comerciales, galpones, campos. English aliases (house, apartment, land, office, commercial, warehouse, farm) are accepted."
          },
          "location": {
            "title": "Location (param search)",
            "type": "string",
            "description": "Optional. City / neighborhood / department name for a param-built search, e.g. montevideo, asuncion, santa-cruz. Accents and spaces are normalized automatically."
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of listings to collect across all URLs. Leave blank for no limit (paid plans). Free Apify plans are always capped at 10 per run."
          },
          "withDetails": {
            "title": "Fetch listing details (paid add-on)",
            "type": "boolean",
            "description": "Paid add-on, on by default for paid plans. Adds the full description, complete image gallery, amenities list, agent phone + WhatsApp link, agency logo/address/profile and branch offices, plus video / 3D tour links. Billed per enriched record. Disabled on free plans.",
            "default": true
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings priced at or above this amount (in the priceCurrency below, else the listing currency)."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings priced at or below this amount."
          },
          "priceCurrency": {
            "title": "Price filter currency",
            "type": "string",
            "description": "Optional. Set to USD to apply the min/max price filter against the USD price instead of the local currency."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings with at least this many bedrooms."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings with at most this many bedrooms."
          },
          "minBathrooms": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings with at least this many bathrooms."
          },
          "minAreaM2": {
            "title": "Min area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings with built (or total) area at or above this many square meters."
          },
          "maxAreaM2": {
            "title": "Max area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only listings with area at or below this many square meters."
          },
          "daysOld": {
            "title": "Max listing age (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Keep only listings published within this many days."
          },
          "withAiListingSummary": {
            "title": "AI listing summary in English (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Writes a concise English summary of each Spanish-language listing. Requires a paid Apify plan. Billed per enriched record.",
            "default": false
          },
          "withAiFeatures": {
            "title": "AI feature extraction (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Extracts condition, standout highlights and nearby points of interest as structured fields. Requires a paid Apify plan. Billed per enriched record.",
            "default": false
          },
          "withAiTranslate": {
            "title": "AI translate to English (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Translates the listing title and description from Spanish to English. Requires a paid Apify plan. Billed per enriched record.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}