{
  "openapi": "3.0.1",
  "info": {
    "title": "MercadoLibre Property Scraper - LatAm Real Estate Listings",
    "description": "Property listings from MercadoLibre in Venezuela, Uruguay, Paraguay and Guatemala. Asking price in the currency the seller quoted, dormitorios, baños, m² cubiertos, property type, venta or alquiler, departamento and ciudad, photos and a direct link. No code.",
    "version": "1.0",
    "x-build-id": "rdParrtI7VOwpgIau"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~mercadolibre-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-mercadolibre-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~mercadolibre-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-mercadolibre-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~mercadolibre-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-mercadolibre-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": "🎯 **PICK ONE PER RUN.**\n\n🔍 **Property Search** walks MercadoLibre's own place index and brings back 48 listings per request, each already carrying price, currency, dormitorios, baños, area and place.\n\n📄 **Property Detail** takes listing addresses you already have and opens each one for the full seller description, the whole attribute table and every photo.\n\n💡 **TIP:** start with Property Search. The fields below that do not apply to the operation you pick are ignored.",
            "default": "search"
          },
          "market": {
            "title": "🌎 MercadoLibre market",
            "enum": [
              "ve",
              "uy",
              "py",
              "gt"
            ],
            "type": "string",
            "description": "🌎 **ONE MARKET PER RUN.** Each MercadoLibre country site is its own marketplace, with its own listings, place names and currency.\n\n📊 **The counts beside each name** were read from the portal's own result counter on 2026-09-13. Venezuela and Uruguay are deep; Guatemala and Paraguay are small enough to sweep whole in a few hundred rows.\n\n⚠️ **Bolivia is not offered** — its entire property section holds 62 listings.",
            "default": "ve"
          },
          "propertyType": {
            "title": "🏠 Property type",
            "enum": [
              "all",
              "houses",
              "apartments",
              "land",
              "offices",
              "warehouses",
              "farms",
              "commercial-premises",
              "rooms",
              "buildings",
              "townhouses",
              "hotels",
              "businesses",
              "annexes",
              "club-shares",
              "garages",
              "country-houses",
              "other"
            ],
            "type": "string",
            "description": "🏠 **READ FROM EACH MARKET'S OWN INDEX**, which is why the list is not identical in every country. Venezuela publishes townhouses, whole buildings, hotels and club memberships that Guatemala does not; Uruguay publishes cocheras and quintas.\n\n🌍 **The country names after each type say where it exists.**\n\n⚠️ **Pick a type a market does not publish** and the run says so plainly instead of quietly handing back the unfiltered market.",
            "default": "all"
          },
          "listingOperation": {
            "title": "🤝 For sale or for rent",
            "enum": [
              "all",
              "venta",
              "alquiler",
              "alquiler-temporada"
            ],
            "type": "string",
            "description": "🤝 **SALE, RENT, OR BOTH IN ONE DATASET.** Venta listings carry an asking price, alquiler listings a monthly rent, and every row is labelled either way — so both can sit side by side for a yield calculation.\n\n🏖️ **Alquiler temporada** (seasonal and holiday rent) is a separate operation in Uruguay only, where it runs to roughly 15,000 listings along the coast.",
            "default": "venta"
          },
          "places": {
            "title": "📍 Departments to sweep",
            "uniqueItems": true,
            "type": "array",
            "description": "📍 **DEPARTMENTS AND STATES**, each prefixed with its market and carrying the listings it held on 2026-09-13, from the portal's own place index.\n\n🌎 **Leave it on \"The whole market\"** to sweep everything, or pick only the places you want — they run one after another.\n\n⚠️ **A place from another market is skipped and reported**, never swapped for one of this market's.\n\n🔎 **A department too big for one request** is walked down into its own cities until your result budget is met.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "ve-amazonas",
                "ve-anzoategui",
                "ve-apure",
                "ve-aragua",
                "ve-barinas",
                "ve-bolivar",
                "ve-carabobo",
                "ve-cojedes",
                "ve-distrito-capital",
                "ve-falcon",
                "ve-guarico",
                "ve-lara",
                "ve-miranda",
                "ve-monagas",
                "ve-merida",
                "ve-nueva-esparta",
                "ve-portuguesa",
                "ve-sucre",
                "ve-trujillo",
                "ve-tachira",
                "ve-vargas",
                "ve-yaracuy",
                "ve-zulia",
                "uy-artigas",
                "uy-canelones",
                "uy-cerro-largo",
                "uy-colonia",
                "uy-durazno",
                "uy-flores",
                "uy-florida",
                "uy-lavalleja",
                "uy-maldonado",
                "uy-montevideo",
                "uy-paysandu",
                "uy-rivera",
                "uy-rocha",
                "uy-rio-negro",
                "uy-salto",
                "uy-san-jose",
                "uy-soriano",
                "uy-tacuarembo",
                "uy-treinta-y-tres",
                "py-alto-parana",
                "py-asuncion-dc",
                "py-caaguazu",
                "py-caazapa",
                "py-central",
                "py-cordillera",
                "py-itapua",
                "py-paraguari",
                "py-presidente-hayes",
                "py-san-pedro",
                "gt-alta-verapaz",
                "gt-chimaltenango",
                "gt-chiquimula",
                "gt-el-progreso",
                "gt-escuintla",
                "gt-guatemala",
                "gt-huehuetenango",
                "gt-izabal",
                "gt-jutiapa",
                "gt-quetzaltenango",
                "gt-sacatepequez",
                "gt-santa-rosa",
                "gt-solola",
                "gt-suchitepequez"
              ],
              "enumTitles": [
                "🌎 The whole market",
                "🇻🇪 Amazonas (6)",
                "🇻🇪 Anzoátegui (2,657)",
                "🇻🇪 Apure (10)",
                "🇻🇪 Aragua (7,448)",
                "🇻🇪 Barinas (58)",
                "🇻🇪 Bolívar (453)",
                "🇻🇪 Carabobo (29,699)",
                "🇻🇪 Cojedes (174)",
                "🇻🇪 Distrito Capital (87,791)",
                "🇻🇪 Falcón (2,037)",
                "🇻🇪 Guárico (121)",
                "🇻🇪 Lara (7,906)",
                "🇻🇪 Miranda (6,196)",
                "🇻🇪 Monagas (519)",
                "🇻🇪 Mérida (400)",
                "🇻🇪 Nueva Esparta (2,229)",
                "🇻🇪 Portuguesa (200)",
                "🇻🇪 Sucre (84)",
                "🇻🇪 Trujillo (126)",
                "🇻🇪 Táchira (652)",
                "🇻🇪 Vargas (340)",
                "🇻🇪 Yaracuy (158)",
                "🇻🇪 Zulia (1,410)",
                "🇺🇾 Artigas (36)",
                "🇺🇾 Canelones (14,232)",
                "🇺🇾 Cerro Largo (80)",
                "🇺🇾 Colonia (4,823)",
                "🇺🇾 Durazno (262)",
                "🇺🇾 Flores (32)",
                "🇺🇾 Florida (240)",
                "🇺🇾 Lavalleja (756)",
                "🇺🇾 Maldonado (89,481)",
                "🇺🇾 Montevideo (68,908)",
                "🇺🇾 Paysandú (428)",
                "🇺🇾 Rivera (148)",
                "🇺🇾 Rocha (3,210)",
                "🇺🇾 Río Negro (82)",
                "🇺🇾 Salto (198)",
                "🇺🇾 San José (1,046)",
                "🇺🇾 Soriano (202)",
                "🇺🇾 Tacuarembó (110)",
                "🇺🇾 Treinta y Tres (144)",
                "🇵🇾 Alto Paraná (14)",
                "🇵🇾 Asunción D.C. (117)",
                "🇵🇾 Caaguazú (15)",
                "🇵🇾 Caazapá (5)",
                "🇵🇾 Central (50)",
                "🇵🇾 Cordillera (18)",
                "🇵🇾 Itapúa (362)",
                "🇵🇾 Paraguarí (5)",
                "🇵🇾 Presidente Hayes (3)",
                "🇵🇾 San Pedro (3)",
                "🇬🇹 Alta Verapaz (8)",
                "🇬🇹 Chimaltenango (6)",
                "🇬🇹 Chiquimula (12)",
                "🇬🇹 El Progreso (5)",
                "🇬🇹 Escuintla (30)",
                "🇬🇹 Guatemala (479)",
                "🇬🇹 Huehuetenango (4)",
                "🇬🇹 Izabal (13)",
                "🇬🇹 Jutiapa (5)",
                "🇬🇹 Quetzaltenango (10)",
                "🇬🇹 Sacatepéquez (111)",
                "🇬🇹 Santa Rosa (11)",
                "🇬🇹 Sololá (4)",
                "🇬🇹 Suchitepéquez (8)"
              ]
            },
            "default": [
              "all"
            ]
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "🔢 **STOPS THE RUN** once this many listings have been returned. Each request brings back 48, so 100 is roughly two requests.\n\n🆓 **Free Apify accounts** are capped at 25 rows per run whatever this says. Paid accounts run to the number you set, or to the size of the market you chose.",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Also open each listing's own page",
            "type": "boolean",
            "description": "📄 **OFF BY DEFAULT.** Switch it on and every search row is completed by opening the listing's own page: the full seller description, the complete attribute table, every photo and the map coordinates.\n\n💰 **It costs one extra request per listing** and bills the Property Detail event once per listing. Turn it on when you need the description; leave it off when price, rooms, area and place are enough.",
            "default": false
          },
          "searchUrls": {
            "title": "🌐 MercadoLibre search addresses",
            "uniqueItems": true,
            "type": "array",
            "description": "🌐 **OPTIONAL SHORTCUT.** Paste MercadoLibre property search addresses exactly as they appear in your browser and the Actor reads those instead of composing its own. Any of the four markets is accepted.\n\n📋 **BULK EDIT:** click \"Bulk edit\" to paste one address per line, or upload a .txt file.\n\n🚫 **NOT accepted:** addresses carrying the portal's pagination or price-range tokens. Those are refused with an explanation, because MercadoLibre's robots.txt asks general crawlers not to request them.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🔗 Listing addresses",
            "uniqueItems": true,
            "type": "array",
            "description": "🔗 **USED BY PROPERTY DETAIL.** One full MercadoLibre listing address per line, exactly as it appears in your browser — for example https://casa.mercadolibre.com.uy/MLU-700095975-casa-en-venta-_JM\n\n📋 **BULK EDIT:** click \"Bulk edit\" to paste many at once, or upload a .txt file.\n\n💰 **Duplicates are removed** before anything is charged.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}