{
  "openapi": "3.0.1",
  "info": {
    "title": "Fincaraiz Scraper - Colombia Property Listings & Prices",
    "description": "Extrae anuncios de fincaraiz.com.co en toda Colombia: precio COP, área, habitaciones, estrato, GPS, fotos, descripción completa y datos del anunciante.",
    "version": "1.0",
    "x-build-id": "0Z1UqOBckMseRwhuq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~fincaraiz-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-fincaraiz-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~fincaraiz-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-fincaraiz-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~fincaraiz-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-fincaraiz-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": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "agency"
            ],
            "type": "string",
            "description": "Pick one per run. Property Search takes Colombian place names (cities, zones, neighbourhoods) and returns listing rows; Agency Listings takes fincaraiz agency page URLs and returns everything that agency currently has on the market.",
            "default": "search"
          },
          "location": {
            "title": "📍 Place in Colombia",
            "type": "string",
            "description": "A Colombian place name — department, city, zone or neighbourhood. Bogotá, Medellín, Cali, Barranquilla, Chapinero, El Poblado, Chico norte. If a zone name exists in more than one city, name the city after a comma ('Chapinero, Bogotá') — the portal itself sends a bare 'Chapinero' to the one in Bucaramanga. The run log prints exactly which place was matched.",
            "default": "Bogotá"
          },
          "locations": {
            "title": "🗺️ More places",
            "type": "array",
            "description": "Extra places to search in the same run. Each one runs its own search, so three places return roughly three times the rows.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "agencyUrls": {
            "title": "🏢 Agency page URLs",
            "type": "array",
            "description": "Used by the Agency Listings operation: fincaraiz agency pages, e.g. https://www.fincaraiz.com.co/inmobiliarias/inmobiliaria-mduran/174605949 — or just the agency page URL as the portal links it. Every listing that agency currently has in the chosen market comes back. The numeric id in the URL is the agency, so it is what matters.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "transactionType": {
            "title": "🤝 Market",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Which market to search. Nationwide the portal carries about 176,526 listings for sale; Bogotá rent alone is 20,120. One market per run — the portal does not combine them.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏘️ Property type",
            "enum": [
              "all",
              "apartamentos",
              "casas",
              "apartaestudios",
              "habitaciones",
              "edificios",
              "oficinas",
              "locales",
              "bodegas",
              "lotes",
              "fincas",
              "cabanas",
              "casas-campestres",
              "casas-lotes",
              "consultorios",
              "parqueaderos"
            ],
            "type": "string",
            "description": "Narrow to one of the 15 property types the portal runs. 'Everything' returns all of them — on a Bogotá sale search, apartments alone are 19,846 of 39,884 listings.",
            "default": "all"
          },
          "minPrice": {
            "title": "💵 Min price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price to include, in Colombian pesos. For rentals this is the monthly rent. 0 means no lower bound. Verified live: a 50M–200M band takes Bogotá sale from 39,878 listings to 1,692.",
            "default": 0
          },
          "maxPrice": {
            "title": "💰 Max price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price to include, in Colombian pesos. For rentals this is the monthly rent. 0 means no upper bound.",
            "default": 0
          },
          "minArea": {
            "title": "📐 Min area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest built area (área construida) in square metres. 0 means no minimum. Verified live: m² from 200 takes Bogotá sale from 39,878 to 14,195.",
            "default": 0
          },
          "maxArea": {
            "title": "📏 Max area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest built area in square metres. 0 means no maximum. Rows always report private, built, terrain and terrace area separately regardless of this filter.",
            "default": 0
          },
          "stratum": {
            "title": "🏘️ Estrato",
            "enum": [
              "any",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Colombia's socio-economic strata classification, the field every Colombian property buyer filters by. Verified live: estrato 6 alone is 10,746 of Bogotá's 39,878 sale listings.",
            "default": "any"
          },
          "bedrooms": {
            "title": "🛏️ Bedrooms",
            "enum": [
              "any",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Exact bedroom count — the portal matches exactly, not 'or more'. Verified live: 4 bedrooms takes Bogotá sale from 39,878 to 4,961. There is no working 'or more' transport on the portal, so to reach 3+ bedrooms run 3, 4, 5 and 6 in the places list.",
            "default": "any"
          },
          "antiquity": {
            "title": "🏗️ Age",
            "enum": [
              "any",
              "nuevo",
              "en-construccion",
              "menor-a-1-anio"
            ],
            "type": "string",
            "description": "Development age. 'Brand new' isolates new-development stock; 'under construction' is pre-sale inventory. These are the only three age filters the portal actually honours — decade-based age filters are accepted silently and then ignored, so they are not offered here.",
            "default": "any"
          },
          "has3dTour": {
            "title": "🔄 Must have a 3D tour",
            "type": "boolean",
            "description": "Keep only listings that carry a 3D virtual tour. Verified live: 214 of Bogotá's 39,878 sale listings qualify, so this is a strong narrowing filter for premium feed builds.",
            "default": false
          },
          "sortBy": {
            "title": "↕️ Sort by",
            "enum": [
              "popularity",
              "newest",
              "cheapest",
              "smallest-area"
            ],
            "type": "string",
            "description": "Newest first is what you want when running this on a schedule — the new stock lands on page 1. Popularity is the portal's own default order and surfaces new developments heavily.",
            "default": "popularity"
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 4000,
            "type": "integer",
            "description": "Stop after this many listings across every place searched. Each request returns 21 rows, so the run stops at the first request that crosses your limit. A single search can page through its whole result set — Bogotá sale runs 1,899 pages deep — but the portal's count wobbles by a few rows between requests, so treat totals as approximate.",
            "default": 105
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}