{
  "openapi": "3.0.1",
  "info": {
    "title": "Metrocuadrado Scraper - Colombia Real Estate",
    "description": "Scrape sale and rental listings from Metrocuadrado.com (Colombia): price, price per m², area, rooms, estrato, neighborhood, GPS, photos, admin fee and agency. Paste a search URL or use filters.",
    "version": "0.0",
    "x-build-id": "wGiMTeZ1ZhkHXTQwp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapedo~metrocuadrado-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapedo-metrocuadrado-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/scrapedo~metrocuadrado-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapedo-metrocuadrado-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/scrapedo~metrocuadrado-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapedo-metrocuadrado-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": {
          "scrapeDoToken": {
            "title": "Scrape.do API token",
            "type": "string",
            "description": "Optional for your first run: without a token you get one free trial run of up to 50 listings (listing details off). After that a token is required. Add your own Scrape.do token for unlimited listings and listing details; requests then use your Scrape.do credits (about 1 credit per 50 listings, plus 1 per listing with details). Get a free token at https://scrape.do/?utm_source=apify&utm_medium=actor&utm_campaign=metrocuadrado-scraper"
          },
          "startUrls": {
            "title": "Metrocuadrado URLs",
            "type": "array",
            "description": "Search result pages (for example https://www.metrocuadrado.com/apartamentos/venta/bogota/ or https://www.metrocuadrado.com/casas/arriendo/medellin/) and/or single listing pages (/inmueble/... or /proyecto/...). When you add URLs, the search filters below are ignored.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "operation": {
            "title": "Operation",
            "enum": [
              "venta",
              "arriendo"
            ],
            "type": "string",
            "description": "Sale (venta) or rent (arriendo).",
            "default": "venta"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "One or more property types.",
            "items": {
              "type": "string",
              "enum": [
                "apartamento",
                "casa",
                "apartaestudio",
                "oficina",
                "local",
                "bodega",
                "lote",
                "finca",
                "consultorio",
                "casalote",
                "edificio-de-oficinas",
                "edificio-de-apartamentos"
              ],
              "enumTitles": [
                "Apartment (apartamento)",
                "House (casa)",
                "Studio (apartaestudio)",
                "Office (oficina)",
                "Retail space (local)",
                "Warehouse (bodega)",
                "Land (lote)",
                "Farm / country house (finca)",
                "Medical office (consultorio)",
                "House with land (casa lote)",
                "Office building",
                "Apartment building"
              ]
            },
            "default": [
              "apartamento"
            ]
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name as it appears in Metrocuadrado URLs, for example bogota, medellin, cali, barranquilla, cartagena, envigado, santa-marta. Leave empty to search all of Colombia."
          },
          "minPrice": {
            "title": "Minimum price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Sale price for 'venta', monthly rent for 'arriendo'."
          },
          "maxPrice": {
            "title": "Maximum price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Sale price for 'venta', monthly rent for 'arriendo'."
          },
          "minArea": {
            "title": "Minimum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Built area in square meters."
          },
          "maxArea": {
            "title": "Maximum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Built area in square meters."
          },
          "bedrooms": {
            "title": "Bedrooms",
            "type": "array",
            "description": "Exact number of bedrooms (habitaciones). Pick several to combine.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ]
            }
          },
          "bathrooms": {
            "title": "Bathrooms",
            "type": "array",
            "description": "Exact number of bathrooms (baños).",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ]
            }
          },
          "parkingSpots": {
            "title": "Parking spots",
            "type": "array",
            "description": "Exact number of parking spots (garajes).",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4"
              ],
              "enumTitles": [
                "1",
                "2",
                "3",
                "4"
              ]
            }
          },
          "stratum": {
            "title": "Estrato",
            "type": "array",
            "description": "Socio-economic stratum (estrato) 1 to 6.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6"
              ],
              "enumTitles": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6"
              ]
            }
          },
          "condition": {
            "title": "New or used",
            "enum": [
              "any",
              "nuevo",
              "usado"
            ],
            "type": "string",
            "description": "New projects (nuevo), used properties (usado) or both.",
            "default": "any"
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Free-text search, for example 'piscina' or 'terraza'."
          },
          "maxItems": {
            "title": "Maximum listings",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many listings. Set 0 for no limit (searches above 10,000 results are split automatically by price). Without a Scrape.do token the limit is 50.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Also open each listing page to add the admin fee (administración), building age, full amenity list, all photos, video and agency details. Uses one extra request per listing. Requires your own Scrape.do token.",
            "default": false
          },
          "useResidentialProxy": {
            "title": "Use residential proxies",
            "type": "boolean",
            "description": "Route requests through Scrape.do residential & mobile proxies (super=true). Normally not needed for Metrocuadrado and costs more credits.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many requests run at the same time. Keep it at or below your Scrape.do plan's concurrency.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}