{
  "openapi": "3.0.1",
  "info": {
    "title": "Rappi Scraper | LATAM Restaurants, Menus & Tiendas",
    "description": "Scrape Rappi restaurants, menus, brands, search & tiendas across 9 LATAM countries. Ratings, ETA, fees, menu items. Export CSV/Excel/JSON. Unofficial.",
    "version": "0.1",
    "x-build-id": "EsYFhQze07BySf9H3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~rappi-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-rappi-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/lentic_clockss~rappi-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-rappi-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/lentic_clockss~rappi-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-rappi-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "restaurants",
              "nearMe",
              "category",
              "restaurant",
              "stores",
              "search",
              "home",
              "brand",
              "discoverCountries",
              "discoverCities",
              "discoverCategories",
              "discoverVerticals",
              "startUrls"
            ],
            "type": "string",
            "description": "restaurants | nearMe | category | restaurant | stores | search | home | brand | discoverCountries | discoverCities | discoverCategories | discoverVerticals | startUrls",
            "default": "restaurant"
          },
          "country": {
            "title": "Country",
            "enum": [
              "mx",
              "co",
              "ar",
              "br",
              "cl",
              "pe",
              "ec",
              "uy",
              "cr"
            ],
            "type": "string",
            "description": "ISO2: mx, co, ar, br, cl, pe, ec, uy, cr",
            "default": "mx"
          },
          "citySlug": {
            "title": "City slug",
            "type": "string",
            "description": "Metro seed e.g. guadalajara, medellin, sao-paulo (uses browser geolocation when SSR capital sticks)"
          },
          "lat": {
            "title": "Latitude",
            "type": "number",
            "description": "Delivery latitude (defaults to country capital)"
          },
          "lng": {
            "title": "Longitude",
            "type": "number",
            "description": "Delivery longitude (defaults to country capital)"
          },
          "categorySlug": {
            "title": "Category slug",
            "type": "string",
            "description": "For mode=category, e.g. pizza, sushi"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Required for mode=search",
            "default": "pizza"
          },
          "storeId": {
            "title": "Store ID",
            "type": "string",
            "description": "Numeric store id for mode=restaurant",
            "default": "1923804381"
          },
          "storeSlug": {
            "title": "Store slug",
            "type": "string",
            "description": "Optional store URL slug. Leave empty when you only know storeId: the output uses Rappi's canonical slug."
          },
          "storeUrl": {
            "title": "Store URL",
            "type": "string",
            "description": "Full restaurant or store page URL"
          },
          "brandId": {
            "title": "Brand ID",
            "type": "string",
            "description": "Chain brand id for mode=brand (not a menu page)"
          },
          "brandSlug": {
            "title": "Brand slug",
            "type": "string",
            "description": "Optional brand URL slug"
          },
          "brandUrl": {
            "title": "Brand URL",
            "type": "string",
            "description": "Full brand delivery page URL"
          },
          "vertical": {
            "title": "Tiendas vertical",
            "type": "string",
            "description": "market, farmatodo, express, …",
            "default": "market"
          },
          "includeMenuItems": {
            "title": "Include menu items",
            "type": "boolean",
            "description": "Emit menu products as separate rowType=menuItem Dataset rows. Restaurant and menu rows share maxResults; at most 25 child rows are emitted per store.",
            "default": false
          },
          "includeProducts": {
            "title": "Include tiendas products",
            "type": "boolean",
            "description": "Stores mode: emit products as separate rowType=product Dataset rows for the first few stores.",
            "default": false
          },
          "enrichDetails": {
            "title": "Enrich restaurant details",
            "type": "boolean",
            "description": "Search/list modes follow live restaurant links for address, geo and organization leads",
            "default": true
          },
          "enrichMenus": {
            "title": "Enrich menus on list",
            "type": "boolean",
            "description": "After list/search/home, fetch menus for first maxEnrich stores",
            "default": false
          },
          "maxEnrich": {
            "title": "Max enrich",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Run-wide maximum stores to enrich across continuation units.",
            "default": 5
          },
          "cleanMenu": {
            "title": "Clean menu promo noise",
            "type": "boolean",
            "description": "Drop promo/fee noise rows from menus",
            "default": true
          },
          "freeDelivery": {
            "title": "Free delivery filter",
            "type": "boolean",
            "description": "Keep stores advertising free delivery when possible"
          },
          "minRating": {
            "title": "Min rating",
            "type": "number",
            "description": "Minimum store rating filter"
          },
          "openNow": {
            "title": "Open now",
            "type": "boolean",
            "description": "Prefer currently open stores when flag available"
          },
          "turbo": {
            "title": "Turbo filter flag",
            "type": "boolean",
            "description": "Prefer turbo / fast delivery stores when flagged"
          },
          "filters": {
            "title": "Filter keys",
            "type": "array",
            "description": "free_delivery, discounts, new, pickup, …",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results per input",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum rows for each start URL or scalar restaurant, category, search, brand, tiendas, or discovery target. The default is 70; larger values are collected in parts of 70. Restaurants, stores, menu items, products, and discovery rows all count together. The run stops at your maximum total charge. Free Apify plan users are limited to 200 rows per run and 10 total runs.",
            "default": 70
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Ver más / catalog-paged rounds (storesPerPage≈30).",
            "default": 1
          },
          "cursor": {
            "title": "Continuation cursor",
            "type": "object",
            "description": "Optional nextCursor returned by a previous worker unit. Normally the Actor and control plane continue automatically."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Restaurant / category / search / brand / tiendas URLs",
            "items": {
              "type": "string"
            }
          },
          "proxyCountry": {
            "title": "Proxy country",
            "type": "string",
            "description": "Optional ISO2 override for worker proxy country"
          },
          "workerBaseUrl": {
            "title": "Worker base URL override",
            "type": "string",
            "description": "Optional Cloud Run worker base URL (defaults to Actor env)"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}