{
  "openapi": "3.0.1",
  "info": {
    "title": "Mercado Libre Scraper — LATAM Prices, Listings & Specs",
    "description": "Scrape Mercado Libre across 18 Latin American sites. Extract product listings, prices, discounts, installments, seller info, shipping, and ratings. Optional PDP mode for specs, stock, descriptions, and variations. Keyword search, category URLs.",
    "version": "0.13",
    "x-build-id": "mJz9WHcZJHxgMqep3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawloop~mercado-libre-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawloop-mercado-libre-listings-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/crawloop~mercado-libre-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawloop-mercado-libre-listings-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/crawloop~mercado-libre-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawloop-mercado-libre-listings-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",
        "required": [
          "siteId"
        ],
        "properties": {
          "siteId": {
            "title": "Country / Site ID",
            "enum": [
              "MLA",
              "MLB",
              "MLM",
              "MCO",
              "MLC",
              "MPE",
              "MLU",
              "MLV",
              "MEC",
              "MBO",
              "MPA",
              "MPY",
              "MRD",
              "MCR",
              "MNI",
              "MGT",
              "MHN",
              "MSV"
            ],
            "type": "string",
            "description": "Select the target Mercado Libre country site.",
            "default": "MLA"
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Free-text keywords to search (one query per line).",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "Category URLs",
            "type": "array",
            "description": "Category or filtered listado URLs to crawl.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Search, category, seller storefront, or product detail URLs. Accepts official stores (/tienda/, /loja/), independent shops (/pagina/), profiles (perfil.mercadolibre…), and _CustId_ catalogs.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "sellerUrls": {
            "title": "Seller / storefront URLs",
            "type": "array",
            "description": "Official stores (/tienda/ or Brazil /loja/), independent shops (/pagina/), seller profiles, or listado _CustId_ catalog URLs. Same crawl path as Start URLs; kept separate so you can mix keyword search with a store dump.",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Minimum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound of the price filter (in site's local currency)."
          },
          "priceMax": {
            "title": "Maximum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound of the price filter (in site's local currency)."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "used",
              "refurbished"
            ],
            "type": "string",
            "description": "Filter by item condition.",
            "default": "any"
          },
          "officialStoresOnly": {
            "title": "Official Stores Only",
            "type": "boolean",
            "description": "Restrict results to Mercado Libre official stores only.",
            "default": false
          },
          "sort": {
            "title": "Sort Order",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "sold_desc",
              "newest"
            ],
            "type": "string",
            "description": "Define the sorting order of results.",
            "default": "relevance"
          },
          "includeProductDetail": {
            "title": "Include Product Detail",
            "type": "boolean",
            "description": "Fetch each product's full detail page (description, full specs, stock, variations). Adds 1 extra request per item.",
            "default": false
          },
          "strictTitleMatch": {
            "title": "Strict title match",
            "type": "boolean",
            "description": "Drop search cards whose title does not contain the query words. Off by default so you get the same SERP the site shows (you can filter later). Always on for Ofertas fallback because deals mix unrelated SKUs.",
            "default": false
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 0,
            "type": "integer",
            "description": "Stop collecting after N items (0 = unlimited).",
            "default": 100
          },
          "maxPagesPerQuery": {
            "title": "Max Pages per Query",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum pages to paginate per query/category.",
            "default": 42
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum concurrent search/category crawl jobs in parallel. Keep low (2–3) to reduce captcha walls.",
            "default": 2
          },
          "pdpConcurrency": {
            "title": "PDP Concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum product detail pages fetched in parallel when includeProductDetail is enabled. Defaults to maxConcurrency.",
            "default": 5
          },
          "sessionPoolSize": {
            "title": "Proxy Session Pool Size",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of independent residential proxy sessions (IPs) used in parallel. More sessions spread the load and reduce anti-bot timeouts.",
            "default": 4
          },
          "cookies": {
            "title": "Session cookies",
            "type": "array",
            "description": "Optional Mercado Libre cookies from a logged-in browser (Playwright cookie objects or paste a Cookie header string into sessionCookies). Needed when search pages show a login or captcha wall."
          },
          "sessionCookies": {
            "title": "Cookie header",
            "type": "string",
            "description": "Optional raw Cookie header (name=value; name2=value2) from a logged-in Mercado Libre session. Use this if you do not have a JSON cookie array."
          },
          "blockAdsTrackers": {
            "title": "Block Ads & Trackers",
            "type": "boolean",
            "description": "Abort tracker domains plus fonts/media to cut proxy bandwidth. Leave off by default — Mercado Libre captcha/Akamai challenges need their scripts and images.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify proxy configuration. Uses residential proxies in the target country automatically if empty."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}