{
  "openapi": "3.0.1",
  "info": {
    "title": "FincaRaíz Scraper",
    "description": "Extract property listings from FincaRaiz.com.co, Colombia's largest real estate platform: price in COP and USD, price per m2, areas, rooms, bathrooms, stratum, amenities, GPS, photos and full descriptions. Filter by price, area, rooms, estrato or map radius. Sale and rent, all cities.",
    "version": "0.0",
    "x-build-id": "cugfLSRtkyynf9NeD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~fincaraiz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-fincaraiz-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/unfenced-group~fincaraiz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-fincaraiz-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/unfenced-group~fincaraiz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-fincaraiz-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": {
          "operationType": {
            "title": "Operation Type",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Whether to search for properties for sale (venta) or for rent (arriendo). Example: 'sale'.",
            "default": "sale"
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "apartment",
              "house",
              "studio_apartment",
              "country_house",
              "ranch",
              "cabin",
              "house_lot",
              "room",
              "land",
              "warehouse",
              "commercial",
              "office",
              "medical_office",
              "parking",
              "building",
              "any"
            ],
            "type": "string",
            "description": "Type of property to search for. Use 'any' to include all types. Example: 'apartment'.",
            "default": "apartment"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, neighbourhood, zone or department to search in, as free text. The scraper resolves it the same way the site's own search box does. Leave empty to search all of Colombia. Examples: 'bogota', 'medellin', 'el poblado', 'chapinero', 'cartagena'.",
            "default": "bogota"
          },
          "maxItems": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of property listings to return. The source caps deep pagination at 10,000 entries per search. Example: 100.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort Order",
            "enum": [
              "popularity",
              "newest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Order in which listings are returned. Example: 'newest'.",
            "default": "popularity"
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text keyword searched in listing titles, descriptions and amenities, server-side. Examples: 'piscina', 'conjunto cerrado', 'penthouse'."
          },
          "minPrice": {
            "title": "Minimum Price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings priced at or above this amount, in Colombian pesos. Leave empty for no lower bound. Example: 200000000."
          },
          "maxPrice": {
            "title": "Maximum Price (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings priced at or below this amount, in Colombian pesos. Leave empty for no upper bound. Example: 800000000."
          },
          "minAreaM2": {
            "title": "Minimum Area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with a total area at or above this many square metres. Example: 60."
          },
          "maxAreaM2": {
            "title": "Maximum Area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with a total area at or below this many square metres. Example: 200."
          },
          "minRooms": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with at least this many bedrooms. Example: 3."
          },
          "minBathrooms": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with at least this many bathrooms. Example: 2."
          },
          "stratum": {
            "title": "Stratum (Estrato)",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Colombian socioeconomic stratum, 1 (lowest) to 6 (highest). Only return listings in exactly this stratum. Leave empty for all strata. Example: 4."
          },
          "constructionState": {
            "title": "Construction State",
            "enum": [
              "any",
              "new",
              "off_plan",
              "under_construction",
              "renovated",
              "excellent",
              "good",
              "needs_maintenance"
            ],
            "type": "string",
            "description": "Condition or construction stage of the property. Example: 'new'.",
            "default": "any"
          },
          "publishedWithinDays": {
            "title": "Published Within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Only return listings first published within this many days. The scraper sorts newest-first and stops as soon as older listings are reached. Example: 7."
          },
          "centerLat": {
            "title": "Map Radius: Center Latitude",
            "type": "number",
            "description": "Latitude of the map-radius search center. Requires centerLng and radiusKm. Example: 4.6669 (Zona T, Bogotá)."
          },
          "centerLng": {
            "title": "Map Radius: Center Longitude",
            "type": "number",
            "description": "Longitude of the map-radius search center. Requires centerLat and radiusKm. Example: -74.0537 (Zona T, Bogotá)."
          },
          "radiusKm": {
            "title": "Map Radius: Distance (km)",
            "type": "number",
            "description": "Radius in kilometres around the center point. Only listings with GPS coordinates inside this circle are returned, each tagged with its distance in km. Example: 2."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Optional FincaRaíz URLs to scrape directly: search URLs (e.g. 'https://www.fincaraiz.com.co/venta/apartamentos/bogota-dc') or individual property URLs (e.g. 'https://www.fincaraiz.com.co/apartamento-en-venta-en-chapinero-bogota/193084937'). Auto-classified. Search URLs override operationType, propertyType and location; property URLs are always returned in full, ignoring filters.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "monitorMode": {
            "title": "Monitor Mode (delta)",
            "type": "boolean",
            "description": "Compare this run against the previous run of the same search and tag every listing NEW, UPDATED, UNCHANGED or REMOVED. Ideal for scheduled runs that track new inventory and price changes.",
            "default": false
          },
          "deltaEmit": {
            "title": "Monitor: What To Return",
            "enum": [
              "changes",
              "all"
            ],
            "type": "string",
            "description": "In monitor mode, return only changed listings (NEW, UPDATED, REMOVED) or the full snapshot with every listing tagged. Example: 'changes'.",
            "default": "changes"
          },
          "deltaStoreId": {
            "title": "Monitor: Snapshot Store Name",
            "type": "string",
            "description": "Optional name of the storage that holds the snapshot between runs. Leave empty and the scraper derives one from your search settings. Set it explicitly to share one snapshot across differently-configured runs. Example: 'my-bogota-watch'."
          },
          "telegramToken": {
            "title": "Telegram Bot Token",
            "type": "string",
            "description": "Optional. Telegram bot token for run-result notifications. Create a bot via @BotFather to get one. Example: '110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw'."
          },
          "telegramChatId": {
            "title": "Telegram Chat ID",
            "type": "string",
            "description": "Optional. Chat ID the Telegram notification is sent to. Example: '123456789'."
          },
          "discordWebhookUrl": {
            "title": "Discord Webhook URL",
            "type": "string",
            "description": "Optional. Discord webhook URL for run-result notifications. Example: 'https://discord.com/api/webhooks/...'."
          },
          "slackWebhookUrl": {
            "title": "Slack Webhook URL",
            "type": "string",
            "description": "Optional. Slack incoming-webhook URL for run-result notifications. Example: 'https://hooks.slack.com/services/...'."
          },
          "whatsappPhoneNumberId": {
            "title": "WhatsApp Phone Number ID",
            "type": "string",
            "description": "Optional. WhatsApp Business API phone number ID used to send notifications. Example: '106540352242922'."
          },
          "whatsappAccessToken": {
            "title": "WhatsApp Access Token",
            "type": "string",
            "description": "Optional. WhatsApp Business API access token. Example: 'EAAGm0PX4ZCps...'."
          },
          "whatsappTo": {
            "title": "WhatsApp Recipient",
            "type": "string",
            "description": "Optional. Recipient phone number for WhatsApp notifications, in international format. Example: '31612345678'."
          },
          "webhookUrl": {
            "title": "Generic Webhook URL",
            "type": "string",
            "description": "Optional. Any HTTPS endpoint to POST the run results to as JSON. Example: 'https://example.com/hooks/fincaraiz'."
          },
          "webhookHeaders": {
            "title": "Webhook Headers",
            "type": "object",
            "description": "Optional. Extra HTTP headers sent with the generic webhook, as a JSON object. Example: {\"Authorization\": \"Bearer abc123\"}."
          },
          "notificationLimit": {
            "title": "Notification Item Limit",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of listings included in each notification message. Example: 10.",
            "default": 10
          },
          "notifyOnlyChanges": {
            "title": "Notify Only On Results",
            "type": "boolean",
            "description": "When true, notifications are only sent if the run saved at least one listing.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}