{
  "openapi": "3.0.1",
  "info": {
    "title": "Encuentra24 Scraper - Central America Property Listings",
    "description": "Extrae anuncios de encuentra24.com en Panamá, Costa Rica, Nicaragua, República Dominicana, Guatemala, Honduras, El Salvador y más: precio, área, habitaciones, GPS, fotos, descripción completa y datos del anunciante.",
    "version": "1.0",
    "x-build-id": "CtWDOcTnFJ4qeCDhx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~encuentra24-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-encuentra24-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~encuentra24-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-encuentra24-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~encuentra24-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-encuentra24-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 to do",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Property Search returns 20 listings per page from a country's for-sale or rental market. Listing Lookup takes listing URLs or IDs you already hold and fetches each one on its own. Search is the cheaper path and returns the same fields, so pick Lookup only when you have specific listings to refresh.",
            "default": "search"
          },
          "country": {
            "title": "🌎 Country",
            "enum": [
              "panama-es",
              "costa-rica-es",
              "nicaragua-es",
              "dominicana-es",
              "guatemala-es",
              "honduras-es",
              "el-salvador-es",
              "puerto-rico-es",
              "colombia-es"
            ],
            "type": "string",
            "description": "Which Encuentra24 country section to search. Every option was checked by fetching it on 2026-09-08 and the counts above are what came back. Panama and Costa Rica are the deep markets. Puerto Rico and Colombia are genuine but thin — a few hundred listings each — so expect small result sets there.",
            "default": "panama-es"
          },
          "region": {
            "title": "🗺️ Region (optional)",
            "type": "string",
            "description": "Narrows the search to one province, canton or district. Use the region exactly as it appears in the portal's own URL — Costa Rica writes 'san-jose-provincia-escazu', Panama writes 'prov-chiriqui', Guatemala writes 'escuintla-escuintla'. Naming differs by country, so filter on the site and copy the last path segment. Leave empty for the whole country. An unrecognised region returns nothing and is reported — it never silently falls back to the full country.",
            "default": ""
          },
          "dealType": {
            "title": "🤝 Market",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Which side of the market. Across the nine countries the portal carries roughly 90,000 listings for sale and 25,000 to rent. One market per run — the portal keeps them on separate pages.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏠 Property type",
            "enum": [
              "all",
              "houses",
              "apartments",
              "land",
              "offices",
              "commercial",
              "businesses"
            ],
            "type": "string",
            "description": "All seven values were verified to return listings in BOTH markets and in both of the deep countries on 2026-09-08 — none of them is a dead option. 'All property types' reads the market's top-level page and mixes every category together.",
            "default": "houses"
          },
          "searchUrls": {
            "title": "🔗 Or paste Encuentra24 search URLs",
            "type": "array",
            "description": "Any Encuentra24 listing-search URL, used exactly as you paste it. This is the way to reach filters the pickers above do not cover — beachfront, farms, islands, rooms, furnished apartments, holiday rentals, or a deep region path. Example: https://www.encuentra24.com/costa-rica-es/bienes-raices-venta-de-propiedades-casas/san-jose-provincia-escazu. When this list has entries the country and type pickers are ignored and these URLs are searched instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "🔗 Listing URLs",
            "type": "array",
            "description": "Used by Listing Lookup: full Encuentra24 listing URLs, e.g. https://www.encuentra24.com/costa-rica-es/bienes-raices-venta-de-propiedades-casas/casa-en-venta-escazu/32862276. Each one is fetched on its own.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "🆔 Listing IDs",
            "type": "array",
            "description": "Used by Listing Lookup: the numeric ID at the end of a listing URL, e.g. 32862276. IDs are resolved against the country chosen above, so set the right country when you use this. A listing that no longer exists is reported as unavailable rather than counted as an error.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🔢 Maximum listings",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop the run once this many listings have been delivered. Listings arrive 20 to a page, so 100 reads five pages. The portal itself goes as deep as 436 pages on Costa Rican houses, and pages that deep were verified to still return full rows.",
            "default": 100
          },
          "minPrice": {
            "title": "💵 Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings priced below this. Encuentra24 quotes in several currencies (USD, Costa Rican colón, Panamanian balboa) and this compares the listing's own number in its own currency, so pair it with the currency filter when mixing markets. The portal has no price filter of its own, so this is applied to the listings the run collects — only listings that pass are delivered, and only delivered listings are charged.",
            "default": 0
          },
          "maxPrice": {
            "title": "💵 Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings priced above this. Leave at 0 for no upper limit.",
            "default": 0
          },
          "currency": {
            "title": "💱 Only this currency",
            "enum": [
              "any",
              "USD",
              "CRC",
              "PAB"
            ],
            "type": "string",
            "description": "Keep only listings quoted in one currency. Useful when a price band would otherwise compare colones against dollars. These three are the currencies observed on real rows; a listing in any other currency is dropped when this is set.",
            "default": "any"
          },
          "minBedrooms": {
            "title": "🛏️ Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings with fewer bedrooms than this. Bedroom counts populated on every row of the sample measured, but a listing that omits one is dropped when this is set above 0.",
            "default": 0
          },
          "minBathrooms": {
            "title": "🛁 Minimum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings with fewer bathrooms than this. The portal records halves (1.5, 2.5), which are compared as written.",
            "default": 0
          },
          "minAreaSqm": {
            "title": "📐 Minimum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings smaller than this built area in square metres. Built area was present on 97% of the rows measured; a listing without one is dropped when this is set above 0.",
            "default": 0
          },
          "onlyWithCoordinates": {
            "title": "🗺️ Only listings with GPS",
            "type": "boolean",
            "description": "Keep only listings that carry real map coordinates. Worth knowing before you switch this on: 43% of the rows measured had usable coordinates — the portal stores 0/0 for the rest, which this actor reports as empty rather than as a point off the coast of Africa.",
            "default": false
          },
          "onlyActive": {
            "title": "✅ Only active listings",
            "type": "boolean",
            "description": "Keep only listings the portal still marks as active. On by default; switch it off to include listings that have been taken down but are still served.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}