{
  "openapi": "3.0.1",
  "info": {
    "title": "Compreoalquile Scraper | Panama Real Estate Listings & API",
    "description": "Scrape Compreoalquile, Panama's real estate portal. Extract property listings for sale or rent (venta o alquiler): price, USD, maintenance, beds, baths, area, GPS, amenities, photos, agent phone and WhatsApp, agency. Bienes raices, apartamentos y casas en Panama. JSON, CSV, Excel. No API key.",
    "version": "0.1",
    "x-build-id": "RbAT9GipTQph35DjA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~compreoalquile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-compreoalquile-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/scrapers_lat~compreoalquile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-compreoalquile-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/scrapers_lat~compreoalquile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-compreoalquile-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": {
          "startUrl": {
            "title": "Search URL",
            "type": "string",
            "description": "A full Compreoalquile search results URL, for example https://www.compreoalquile.com/apartamentos-en-venta.html or any filtered search. Every filter encoded in the URL is respected automatically: operation (venta or alquiler), property type (apartamentos, casas, oficinas, locales, terrenos), zona, precio, recámaras, amoblado (furnished) and dueño directo (owner only). Paste the URL from your browser after applying filters on the site."
          },
          "startUrls": {
            "title": "Search URLs (batch)",
            "type": "array",
            "description": "Optional list of Compreoalquile search URLs to scrape in one run. Use instead of, or in addition to, startUrl. Accepts plain URL strings or {\"url\": \"...\"} objects.",
            "items": {
              "type": "string"
            }
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of property listings to collect across all search URLs. Leave empty for all. Free Apify plans are capped at 10 per run."
          },
          "withDetails": {
            "title": "Fetch listing details (paid plans)",
            "type": "boolean",
            "description": "When enabled, the actor opens each listing and returns enriched records with the full description, image gallery, amenities, map coordinates, agent phone and WhatsApp, agency logo, maintenance fee, area breakdown, age and advertiser details. When disabled, only the listing-level fields from the search results are returned (much faster). Requires a paid Apify plan; free runs return listing-level fields only.",
            "default": true
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings priced at or above this amount (in the listing currency, usually USD). Optional."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings priced at or below this amount. Optional."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings with at least this many bedrooms. Optional."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings with at most this many bedrooms. Optional."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings with at least this many bathrooms. Optional."
          },
          "minAreaM2": {
            "title": "Minimum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings with at least this built/total area in square meters. Optional."
          },
          "maxAreaM2": {
            "title": "Maximum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings with at most this area in square meters. Optional."
          },
          "withAiSummary": {
            "title": "AI listing summary (paid add-on)",
            "type": "boolean",
            "description": "Add a plain-English AI summary of each listing (property, price, size, standout features). Opt-in, billed per enriched record; requires a paid Apify plan.",
            "default": false
          },
          "withAiFeatures": {
            "title": "AI feature extraction (paid add-on)",
            "type": "boolean",
            "description": "Extract normalized English feature tags, condition and highlights from each listing via AI. Opt-in, billed per enriched record.",
            "default": false
          },
          "withAiTranslate": {
            "title": "AI translate to English (paid add-on)",
            "type": "boolean",
            "description": "Translate the listing title and description from Spanish to English via AI. Opt-in, billed per enriched record.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}