{
  "openapi": "3.0.1",
  "info": {
    "title": "Talabat Scraper",
    "description": "[💰 $1.0 / 1K] Extract restaurants and full menus from Talabat across 9 MENA markets (UAE, Saudi, Kuwait, Qatar, Bahrain, Oman, Egypt, Jordan, Iraq). Get name, cuisine, rating, coordinates, and menu items with price, image and customization options.",
    "version": "1.0",
    "x-build-id": "WQe8LTpWp2jU2lJcZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~talabat-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-talabat-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/solidcode~talabat-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-talabat-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/solidcode~talabat-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-talabat-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": {
          "startUrls": {
            "title": "Talabat URLs",
            "type": "array",
            "description": "Paste one or more Talabat restaurant or area URLs (e.g. https://www.talabat.com/uae/restaurant/12345/example), or bare restaurant slugs. Whatever you paste is used as-is, so the Search Filters below are ignored for these entries. Use this when you already found the restaurants on the site.",
            "items": {
              "type": "string"
            }
          },
          "search": {
            "title": "Search Terms",
            "type": "array",
            "description": "What to look for, one term per line (e.g. 'burgers', 'pizza', 'sushi', 'mcdonalds'). Each term is searched separately in the chosen country. Leave empty when you are pasting URLs above.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country / Market",
            "enum": [
              "uae",
              "sa",
              "kw",
              "qa",
              "bh",
              "om",
              "eg",
              "jo",
              "iq"
            ],
            "type": "string",
            "description": "Which Talabat market to search in.",
            "default": "uae"
          },
          "cuisine": {
            "title": "Cuisine",
            "enum": [
              "any",
              "burgers",
              "pizza",
              "arabic",
              "shawarma",
              "chicken",
              "indian",
              "italian",
              "chinese",
              "japanese",
              "sushi",
              "healthy",
              "desserts",
              "breakfast",
              "grocery"
            ],
            "type": "string",
            "description": "Only include restaurants serving this cuisine. Choose 'Any' to include every cuisine found.",
            "default": "any"
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only include restaurants with an average rating at or above this value (1-5). Leave empty for no minimum."
          },
          "includeMenu": {
            "title": "Include Menu Items",
            "type": "boolean",
            "description": "Visit each restaurant to collect its full menu and return every item as its own result row (category, name, description, price, old price, image). A restaurant typically has 30-150 items; a large or grocery vendor can have 300+ items, and each item collected is returned and billed as a separate result. Turn off to keep only the restaurant summary rows (name, cuisine, rating, coordinates, payment options).",
            "default": true
          },
          "includeMenuChoices": {
            "title": "Include Customization Options",
            "type": "boolean",
            "description": "For each menu item, also collect its customization options (sizes, add-ons, toppings) with prices and whether a choice is mandatory. Adds a choice-sections list inside each menu-item row. Only applies when 'Include Menu Items' is on.",
            "default": false
          },
          "maxMenuItemsPerRestaurant": {
            "title": "Max Menu Items Per Restaurant",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on how many menu items to collect per restaurant. Set to 0 to collect every item (up to a built-in safety cap). Useful to keep costs predictable on large menus. Ignored when 'Include Menu Items' is off.",
            "default": 0
          },
          "maxResults": {
            "title": "Max Restaurants",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of restaurants to collect across all searches and URLs. Set to 0 for as many as possible (up to a built-in safety cap). Menu items are additional to this count. The box starts at 10 so a first test run finishes quickly — raise it to collect hundreds.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}