{
  "openapi": "3.0.1",
  "info": {
    "title": "Ciencuadras Scraper: Colombia Property Listings",
    "description": "Scrape Ciencuadras listings in Colombia: sale, rent, auctions, new projects, agencies and builders. Price, area, rooms, GPS, photos, amenities, stratum. Export CSV, Excel, JSON.",
    "version": "0.1",
    "x-build-id": "8GMxxeS58KPgcFX32"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~ciencuadras-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-ciencuadras-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/recordsdata~ciencuadras-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-ciencuadras-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/recordsdata~ciencuadras-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-ciencuadras-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": {
          "section": {
            "title": "Section",
            "enum": [
              "venta",
              "arriendo",
              "inmuebles-en-remate",
              "proyectos-vivienda-nueva",
              "proyectos-sobre-planos",
              "proyectos-entrega-inmediata",
              "proyectos-en-construccion",
              "vivienda-interes-social",
              "inmobiliarias",
              "constructoras"
            ],
            "type": "string",
            "description": "Which part of ciencuadras.com to read. Sale, rent, auctions and bank-owned offers, the four new-project sections and social housing return property rows; real estate agencies and builders return company rows. Ignored when you paste Start URLs.",
            "default": "venta"
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities to cover, one per line, as \"city\", \"city/locality\" or \"city/locality/neighborhood\", for example \"medellin\", \"bogota/usaquen\" or \"bogota/usaquen/cedritos\". Names without accents are fine. Leave empty to read the whole country. A place the site does not recognise gives one free error row instead of national results.",
            "items": {
              "type": "string"
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Keep only these property types. Leave empty for every type. Each type is searched separately so a run can mix, for example, apartments and houses.",
            "items": {
              "type": "string",
              "enum": [
                "apartamento",
                "casa",
                "apartaestudio",
                "casa-campestre",
                "finca",
                "lote",
                "local",
                "oficina",
                "bodega",
                "edificio",
                "consultorio",
                "suite",
                "parqueadero"
              ],
              "enumTitles": [
                "Apartment",
                "House",
                "Studio apartment",
                "Country house",
                "Farm",
                "Lot",
                "Commercial space",
                "Office",
                "Warehouse",
                "Building",
                "Medical office",
                "Suite",
                "Parking"
              ]
            },
            "default": []
          },
          "searchMode": {
            "title": "Search depth",
            "enum": [
              "search",
              "deep",
              "catalog"
            ],
            "type": "string",
            "description": "Search page reads only the first page of each search (up to 28 listings). Deep also slices the search by locality, neighborhood and type using the site map, so one city yields many more listings. Full catalog reads every listing URL of the site map, newest first, and always opens the listing page.",
            "default": "deep"
          },
          "minPrice": {
            "title": "Minimum price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings priced at or above this amount in Colombian pesos (monthly rent for rentals). 0 means no minimum.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings priced at or below this amount in Colombian pesos (monthly rent for rentals). 0 means no maximum.",
            "default": 0
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at least this many bedrooms. 0 means any.",
            "default": 0
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at least this many bathrooms. 0 means any.",
            "default": 0
          },
          "minArea": {
            "title": "Minimum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at least this built area in square meters. 0 means any.",
            "default": 0
          },
          "maxArea": {
            "title": "Maximum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at most this built area in square meters. 0 means any.",
            "default": 0
          },
          "minParking": {
            "title": "Minimum parking spaces",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at least this many parking spaces. 0 means any.",
            "default": 0
          },
          "stratum": {
            "title": "Socioeconomic stratum",
            "type": "array",
            "description": "Keep only listings in these Colombian strata (1 is lowest, 6 is highest). Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6"
              ],
              "enumTitles": [
                "Stratum 1",
                "Stratum 2",
                "Stratum 3",
                "Stratum 4",
                "Stratum 5",
                "Stratum 6"
              ]
            },
            "default": []
          },
          "publishedWithinDays": {
            "title": "Published within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only listings published in the last N days. 0 means any age.",
            "default": 0
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Keep listings whose title, description, address, neighborhood or amenities contain all of these words, for example \"terraza piscina\". Accents and case are ignored. Leave empty for no keyword filter.",
            "default": ""
          },
          "sellerTypes": {
            "title": "Seller types",
            "type": "array",
            "description": "Keep only listings from these kinds of seller. Real estate agencies and builders are businesses; independent agents and private owners are individuals, and their names and contact details are never output. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "agency",
                "independent-agent",
                "private",
                "builder"
              ],
              "enumTitles": [
                "Real estate agency",
                "Independent agent",
                "Private owner",
                "Builder"
              ]
            },
            "default": []
          },
          "scrapeDetails": {
            "title": "Open each listing page",
            "type": "boolean",
            "description": "When on, each listing page is opened to add the full description, every photo, amenities, nearby places, similar listings and the agency address (billed as a separate listing-detail-record event). Turn off for the fast card-level row only. Project sections always open the project page.",
            "default": true
          },
          "includeAgencyProfiles": {
            "title": "Add agency profiles",
            "type": "boolean",
            "description": "When on, each real estate agency behind a delivered listing also gets its own agency-record row (offices, specialty, description), once per agency per run. These rows count toward Max items.",
            "default": false
          },
          "includeBuilderProfiles": {
            "title": "Add builder profiles",
            "type": "boolean",
            "description": "When on, each builder behind a delivered project also gets its own builder-record row, once per builder per run. These rows count toward Max items.",
            "default": false
          },
          "includeContactDetails": {
            "title": "Include business contact details",
            "type": "boolean",
            "description": "When on, agency and builder business phones, emails and WhatsApp numbers published on the site are added. Contact data of private owners and independent agents is never output. Off by default.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new results (monitor mode)",
            "type": "boolean",
            "description": "When on, records delivered by an earlier run of the same search are skipped and not charged, so a scheduled run returns only new listings. The memory lives in your own account.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor label",
            "type": "string",
            "description": "Optional label that keeps the memory of this search apart from others with identical settings, for example \"bogota-weekly\".",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget earlier results",
            "type": "boolean",
            "description": "When on, the monitor memory of this search is cleared before the run starts.",
            "default": false
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Paste ciencuadras.com pages instead of using the section and locations: listing pages (/inmueble/...), project pages (/proyecto-de-vivienda/...), agency pages (/inmobiliaria/...), builder pages (/constructora/...) or search pages such as /venta/apartamento/medellin. When filled, it replaces Section and Locations.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of rows to deliver in total (listings, projects, agencies and builders). 0 means no limit; the Apify max charge per run still applies. Free plan runs are limited to 10 rows.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The site answers plain requests from Apify servers, so no proxy is needed by default. Switch on Apify Proxy only if you see blocked requests.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}