{
  "openapi": "3.0.1",
  "info": {
    "title": "MercadoLibre Inmuebles Scraper - Mexico & Argentina",
    "description": "Property listings from MercadoLibre Inmuebles (Mexico and Argentina) as clean JSON: price and currency, bedrooms, bathrooms, built and land m², city, state, development ranges, posting date. Monitoring mode returns only new listings, so you never pay twice for the same property. Unofficial.",
    "version": "0.1",
    "x-build-id": "ewUeeMt4sSDPgPAdQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~mercadolibre-real-estate-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-mercadolibre-real-estate-listings",
        "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/neverempty~mercadolibre-real-estate-listings/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-mercadolibre-real-estate-listings",
        "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/neverempty~mercadolibre-real-estate-listings/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-mercadolibre-real-estate-listings",
        "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": {
          "searchUrls": {
            "title": "MercadoLibre search URLs (optional)",
            "type": "array",
            "description": "Paste one or more result pages from inmuebles.mercadolibre.com.mx or inmuebles.mercadolibre.com.ar, e.g. https://inmuebles.mercadolibre.com.mx/casas/venta/jalisco/guadalajara/ . Filters and sort set on the site stay in the address. When this list is filled, the country, operation, property type and location fields below are ignored.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "mx",
              "ar"
            ],
            "type": "string",
            "description": "mx = Mexico (prices in MXN or USD), ar = Argentina (prices in ARS or USD). Used to build the search when no search URL is given."
          },
          "operation": {
            "title": "Operation",
            "enum": [
              "sale",
              "rent",
              "vacation-rent"
            ],
            "type": "string",
            "description": "For sale, for rent, or (Mexico only) vacation rental. Empty means for sale."
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "apartment",
              "house",
              "land",
              "office",
              "commercial",
              "warehouse",
              "building",
              "ph",
              "parking",
              "other"
            ],
            "type": "string",
            "description": "The MercadoLibre category to search. Empty searches every property type. ph (Argentine horizontal property) and parking exist only in Argentina; building exists only in Mexico."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "State, or state/city/neighbourhood as written in MercadoLibre addresses: jalisco, jalisco/guadalajara, nuevo-leon/monterrey, cdmx, capital-federal/palermo, cordoba. Accents and spaces are fine (Querétaro becomes queretaro). One search runs per location. Empty searches the whole country.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "",
              "price-asc",
              "price-desc"
            ],
            "type": "string",
            "description": "Order in which MercadoLibre lists the results. Empty = MercadoLibre's relevance order. Monitoring mode uses lowest price first unless you choose another order."
          },
          "maxListings": {
            "title": "Maximum listings to return",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many listing rows to return across all searches. You are charged only for the listing rows you receive. MercadoLibre shows 48 listings per page.",
            "default": 50
          },
          "maxPages": {
            "title": "Maximum pages per search",
            "minimum": 0,
            "maximum": 42,
            "type": "integer",
            "description": "Cap on result pages read for each search (48 listings per page, up to 42 pages). 0 = read as many pages as needed to reach maxListings. Reading pages is free; only returned listings are charged.",
            "default": 0
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep only listings whose title, headline, property type, address, city, state, agency or possession text contains these words (not case-sensitive). Empty = no keyword filter.",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "any = a listing needs one of the keywords; all = it needs every keyword.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop listings whose text contains any of these words, e.g. preventa or remate. Empty = nothing is excluded.",
            "items": {
              "type": "string"
            }
          },
          "agencyNames": {
            "title": "Agency names",
            "type": "array",
            "description": "Keep only listings published by these agencies or developers (part of the name is enough). Only listings where MercadoLibre shows the seller's name can match. Empty = every seller.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price, in the currency chosen below (MXN for Mexico and ARS for Argentina when it is empty). Sent to MercadoLibre and checked again on every row. Listings priced in another currency are kept. 0 = no minimum.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price, in the same currency as the minimum. 0 = no maximum.",
            "default": 0
          },
          "priceCurrency": {
            "title": "Price currency",
            "enum": [
              "",
              "MXN",
              "ARS",
              "USD"
            ],
            "type": "string",
            "description": "Currency of the price range. Empty = MXN in Mexico, ARS in Argentina. USD matches listings priced in US dollars."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": -1,
            "type": "integer",
            "description": "Keep listings with at least this many bedrooms (recámaras / dormitorios). -1 = no filter. Listings that do not show a bedroom count are kept.",
            "default": -1
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": -1,
            "type": "integer",
            "description": "Keep listings with at most this many bedrooms. -1 = no filter.",
            "default": -1
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at least this many bathrooms. 0 = no filter. Listings that do not show bathrooms are kept.",
            "default": 0
          },
          "minAreaSqm": {
            "title": "Minimum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at least this many square metres (built area, else total area, else land area). 0 = no filter.",
            "default": 0
          },
          "maxAreaSqm": {
            "title": "Maximum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings with at most this many square metres, measured the same way. 0 = no filter.",
            "default": 0
          },
          "excludeDevelopments": {
            "title": "Exclude new developments",
            "type": "boolean",
            "description": "Drop development projects (desarrollos / emprendimientos) and keep single properties only.",
            "default": false
          },
          "onlyDevelopments": {
            "title": "Only new developments",
            "type": "boolean",
            "description": "Keep only development projects, with their price range and unit count.",
            "default": false
          },
          "onlyOfficialStores": {
            "title": "Only official stores",
            "type": "boolean",
            "description": "Keep only listings from sellers MercadoLibre marks as official stores (tienda oficial).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings posted in the last N days, using the posting date MercadoLibre gives for each listing. 0 = any date.",
            "default": 0
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new listings)",
            "type": "boolean",
            "description": "Turn this on and schedule the Actor. The first run remembers every listing the search shows and is free. Each later run returns only listings it has not seen before, so you are never charged twice for the same property. Listings removed by your filters are remembered too; listings that did not fit under maxListings or your spending limit are not, so they come back on the next run.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Reset monitoring memory",
            "type": "boolean",
            "description": "One-shot: forget every listing remembered for this exact input. With monitoring on, this run becomes a new free first run.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}