{
  "openapi": "3.0.1",
  "info": {
    "title": "InfoCasas Property Scraper — Phase-0 gate",
    "description": "Extrae avisos de InfoCasas en Uruguay, Paraguay, Bolivia y Perú: precio en USD y moneda local, superficie, dormitorios, GPS, fotos, amenities y datos del anunciante.",
    "version": "1.0",
    "x-build-id": "eWx5PzhBMYcDdeBMp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~infocasas-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-infocasas-property-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/sian.agency~infocasas-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-infocasas-property-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/sian.agency~infocasas-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-infocasas-property-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": {
          "operation": {
            "title": "⚙️ Operation",
            "enum": [
              "search",
              "lookup"
            ],
            "type": "string",
            "description": "Pick one per run. Property Search reads a country edition's results pages at 21 adverts per request and is where the value is. Listing Lookup opens adverts you already have links or ids for and returns the same fields, one request each.",
            "default": "search"
          },
          "market": {
            "title": "🌎 Country edition",
            "enum": [
              "uy",
              "py",
              "bo",
              "pe"
            ],
            "type": "string",
            "description": "Which InfoCasas country edition to read. Paraguay carries the largest sale index of the four; Uruguay the largest coastal market. This also decides which property types and currencies exist, because the editions differ: only Bolivia sells under anticrético, and Uruguay says apartamento where the others say departamento. In Listing Lookup it is the edition a bare advert id is resolved against.",
            "default": "uy"
          },
          "place": {
            "title": "📍 Place",
            "enum": [
              "uy:",
              "uy:maldonado",
              "uy:montevideo",
              "uy:canelones",
              "uy:colonia",
              "uy:rocha",
              "uy:lavalleja",
              "uy:paysandu",
              "uy:florida",
              "uy:san-jose",
              "uy:salto",
              "uy:tacuarembo",
              "uy:soriano",
              "uy:rivera",
              "uy:cerro-largo",
              "uy:durazno",
              "uy:artigas",
              "uy:rio-negro",
              "uy:flores",
              "py:",
              "py:asuncion",
              "py:central",
              "py:cordillera",
              "py:alto-parana",
              "py:itapua",
              "py:presidente-hayes",
              "py:paraguari",
              "py:boqueron",
              "py:caaguazu",
              "py:san-pedro",
              "py:misiones",
              "py:alto-paraguay",
              "py:neembucu",
              "py:guaira",
              "py:concepcion",
              "py:caazapa",
              "py:canindeyu",
              "py:amambay",
              "py:internacional",
              "bo:",
              "bo:santa-cruz",
              "bo:la-paz",
              "bo:cochabamba",
              "bo:cotoca",
              "bo:montero",
              "bo:tarija",
              "bo:warnes",
              "bo:el-alto",
              "bo:sucre",
              "bo:porongo",
              "bo:la-guardia",
              "bo:san-ignacio-de-velasco",
              "bo:samaipata",
              "bo:puerto-quijarro",
              "bo:buena-vista",
              "bo:trinidad",
              "bo:san-jose",
              "bo:camiri",
              "bo:portachuelo",
              "bo:robore",
              "bo:guayaramerin",
              "bo:puerto-suarez",
              "bo:copacabana",
              "bo:ascension",
              "bo:santiago-del-torno",
              "bo:punata",
              "bo:rurrenabaque",
              "bo:yapacani",
              "bo:vallegrande",
              "bo:san-joaquin",
              "pe:",
              "pe:lima",
              "pe:arequipa",
              "pe:piura",
              "pe:lambayeque",
              "pe:la-libertad",
              "pe:callao",
              "pe:cuzco",
              "pe:junin",
              "pe:san-martin",
              "pe:tumbes",
              "pe:canete",
              "pe:huancayo",
              "pe:ancash",
              "pe:tacna",
              "pe:loreto",
              "pe:mala",
              "pe:puno",
              "pe:lurin",
              "pe:cajamarca",
              "pe:pasco",
              "pe:trujillo",
              "pe:asia",
              "pe:lambayeque-chiclayo",
              "pe:ucayali",
              "pe:tarapoto",
              "pe:iquitos",
              "pe:huanuco",
              "pe:amazonas",
              "pe:madre-de-dios",
              "pe:huanucho",
              "pe:moquegua",
              "pe:apurimac",
              "pe:ayacucho",
              "pe:ica",
              "pe:pisco",
              "pe:florida-normandy-isla",
              "pe:tambopata",
              "pe:santa-eulalia"
            ],
            "type": "string",
            "description": "Where to search. Every entry is a place this portal actually publishes adverts for - the list was harvested from its own sitemaps and then each one was requested and confirmed to return adverts, so none of them can come back empty. Pick the entry that matches your country edition above. Advert counts in brackets were measured on 2026-09-13 and move daily.",
            "default": "uy:montevideo"
          },
          "operationType": {
            "title": "🤝 Sale or rental",
            "enum": [
              "venta",
              "alquiler",
              "alquiler-temporal",
              "anticretico"
            ],
            "type": "string",
            "description": "Which section of the edition to read. Anticrético is a Bolivian arrangement where the occupant lodges a lump sum instead of paying monthly rent; it exists only on the Bolivian edition and the run stops with a clear message if you ask for it elsewhere.",
            "default": "venta"
          },
          "propertyType": {
            "title": "🏘️ Property type",
            "enum": [
              "inmuebles",
              "casas",
              "apartamentos",
              "departamentos",
              "terrenos",
              "locales-comerciales",
              "oficinas",
              "chacras-o-campos",
              "garaje-o-cocheras",
              "edificios",
              "hoteles",
              "local-industrial-o-galpon",
              "negocio-especial",
              "otros"
            ],
            "type": "string",
            "description": "Keep only this category. The editions do not share one vocabulary: Uruguay files flats under apartamentos and the other three under departamentos, and a type that does not exist on your chosen edition stops the run with the list that does, rather than quietly returning everything.",
            "default": "inmuebles"
          },
          "listingUrls": {
            "title": "🔗 Advert links",
            "type": "array",
            "description": "Used by Listing Lookup: InfoCasas advert links to re-read, e.g. https://www.infocasas.com.py/casa-en-venta-en-asuncion/194243388. The link carries its own country edition, so these work across all four in a single run. The wording of the slug does not matter - the number at the end identifies the advert.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingIds": {
            "title": "🆔 Advert ids",
            "type": "array",
            "description": "Used by Listing Lookup: bare advert ids, e.g. 194243388. Ids are unique across the whole network but are only served by their own edition, so these are resolved against the country edition chosen above. If your ids span more than one country, use the links field instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "💵 Lowest price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price to include, in the currency chosen below. For rentals this is the monthly figure. 0 means no lower bound.",
            "default": 0
          },
          "maxPrice": {
            "title": "💰 Highest price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price to include, in the currency chosen below. 0 means no upper bound.",
            "default": 0
          },
          "priceCurrency": {
            "title": "💱 Price currency",
            "enum": [
              "USD",
              "local"
            ],
            "type": "string",
            "description": "Which currency your price bounds are expressed in. Adverts on this network quote in either dollars or the local currency and both appear side by side in the results, so every row carries both figures regardless of what you pick here. Bolivia quotes in dollars only.",
            "default": "USD"
          },
          "minBedrooms": {
            "title": "🛏️ Fewest bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest bedrooms to include. 0 means no lower bound.",
            "default": 0
          },
          "minBathrooms": {
            "title": "🛁 Fewest bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest bathrooms to include. 0 means no lower bound.",
            "default": 0
          },
          "minArea": {
            "title": "📐 Smallest area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest built area in square metres. 0 means no lower bound.",
            "default": 0
          },
          "maxArea": {
            "title": "📐 Largest area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest built area in square metres. 0 means no upper bound.",
            "default": 0
          },
          "propertyState": {
            "title": "🏗️ Condition",
            "enum": [
              "",
              "en-pozo",
              "en-construccion",
              "a-estrenar",
              "usados"
            ],
            "type": "string",
            "description": "Keep only adverts in this condition. The first three together are how this network marks new-build stock, which is a large share of the Paraguayan and Bolivian indexes.",
            "default": ""
          },
          "publishedWithin": {
            "title": "📅 Published within",
            "enum": [
              "",
              "0",
              "1",
              "7",
              "15",
              "30",
              "40"
            ],
            "type": "string",
            "description": "Keep only adverts published inside this window. Pair it with Most recent first and a daily schedule to collect just the new adverts each day.",
            "default": ""
          },
          "sortBy": {
            "title": "↕️ Sort order",
            "enum": [
              "popularity",
              "newest",
              "price-low",
              "price-high",
              "area-low",
              "area-high"
            ],
            "type": "string",
            "description": "How the portal orders adverts before this actor reads them. Most recent first is the one to schedule against, because new adverts then land on page one. The portal's own default is popularity, which leans towards promoted developments.",
            "default": "newest"
          },
          "maxResults": {
            "title": "🔢 Maximum adverts",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many adverts. Each request returns 21, so the run stops at the first page that crosses your limit. Set it to 0 to take everything the search matches - on a whole-country sweep that can be tens of thousands of adverts, so raise it deliberately.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}