# Just Eat Restaurants Search Scraper (`stealth_mode/just-eat-restaurants-search-scraper`) Actor

Scrape Just-Eat.ch restaurant search results by location or cuisine. Collect names, ratings, delivery fees, ETA, opening hours, cuisines, and 25+ fields per restaurant — perfect for market research, food delivery analytics, and competitor tracking.

- **URL**: https://apify.com/stealth\_mode/just-eat-restaurants-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Just-Eat.ch Search Scraper: Extract Restaurant Listings & Delivery Data

---

### What Is Just-Eat.ch?

Just-Eat.ch is Switzerland's major online food delivery platform, aggregating hundreds of local restaurants across Swiss cities and postal areas. Each search page surfaces rich restaurant metadata — ratings, delivery conditions, cuisine types, and promotional status — that would take hours to collect manually. The **Just-Eat.ch Search Scraper** automates this, turning search result pages into clean, structured datasets.

---

### Overview

This scraper targets Just-Eat.ch restaurant listing pages (search results by city/postal code) and extracts every visible restaurant card along with its metadata. It is suited for:

- **Market researchers** mapping food delivery competition by area
- **Restaurant owners** benchmarking their positioning against competitors
- **Data analysts** studying delivery pricing and ETA patterns across regions
- **Aggregator developers** building food discovery or price comparison tools

---

### Input Format

```json
{
  "urls": [
    "https://www.just-eat.ch/en/delivery/food/zuerich-8004"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | `array` | One or more Just-Eat.ch restaurant search/listing URLs (by city, postal code, or cuisine filter). Add URLs one by one or via bulk edit. Example: `https://www.just-eat.ch/en/delivery/food/zuerich-8004` |
| `max_items_per_url` | `integer` | Maximum number of restaurant records to collect per URL. Default prefill: `20`. Set higher (e.g., `200`) to capture full listing pages. |
| `ignore_url_failures` | `boolean` | If `true`, the scraper continues running when a URL fails instead of stopping the entire run. Recommended for bulk inputs. Default: `true`. |

> **Tip:** To scrape multiple neighborhoods or cities, add one URL per area. Use the postal code variant (e.g., `zuerich-8001`, `zuerich-8005`) to compare delivery availability across districts.

***

### Output Format

**Sample output**

```json
{
  "id": "7940",
  "name": "Delhi House of Best Curry",
  "unique_name": "mister-food",
  "address": {
    "city": "Zürich",
    "first_line": "Zypressenstrasse 52",
    "postal_code": "8004",
    "location": {
      "type": "Point",
      "coordinates": [
        8.513175,
        47.37744
      ]
    }
  },
  "rating": {
    "count": 2376,
    "star_rating": 4.7
  },
  "is_new": false,
  "drive_distance_meters": 464,
  "opening_time_local": "2026-05-29T17:00:00",
  "delivery_opening_time_local": "2026-05-29T17:00:00",
  "delivery_eta_minutes": {
    "range_lower": 35,
    "range_upper": 50
  },
  "is_collection": true,
  "is_delivery": true,
  "is_open_now_for_collection": false,
  "is_open_now_for_delivery": false,
  "is_open_now_for_preorder": true,
  "is_temporarily_offline": false,
  "default_display_rank": 265,
  "is_temporary_boost": false,
  "is_premier": false,
  "logo_url": "https://res.cloudinary.com/tkwy-prod-eu/image/upload/c_pad,h_100,w_100/f_auto/q_auto/v1/static-takeaway-com/images/restaurants/ch/0NQ3N/logo_465x320.png",
  "banner_url": "https://res.cloudinary.com/tkwy-prod-eu/image/upload/{transformations}/v1/static-takeaway-com/images/restaurants/ch/0NQ3N/headers/header",
  "partner_header_info": {
    "header_images": [
      {
        "url_template": "https://res.cloudinary.com/tkwy-prod-eu/image/upload/{transformations}/v1/static-takeaway-com/images/restaurants/ch/0NQ3N/headers/header"
      }
    ]
  },
  "is_test_restaurant": false,
  "deals": [
    {
      "description": "",
      "offer_type": "StampCard"
    },
    {
      "description": "Save 15% • Spend CHF 50",
      "offer_type": "Percent"
    }
  ],
  "tags": [],
  "cuisines": [
    {
      "name": "Vegan",
      "unique_name": "vegan"
    },
    {
      "name": "Indian",
      "unique_name": "indian-food"
    },
    {
      "name": "Halal",
      "unique_name": "halal-food"
    },
    {
      "name": "Offers",
      "unique_name": "offers"
    }
  ],
  "availability": {
    "delivery": {
      "is_open": false,
      "can_pre_order": true,
      "is_temporarily_offline": false,
      "next_availability": {
        "from": "2026-05-29T17:00:00"
      },
      "eta_minutes": {
        "range_lower": 35,
        "range_upper": 50
      }
    },
    "collection": {
      "is_open": false,
      "can_pre_order": true,
      "is_temporarily_offline": false,
      "next_availability": {
        "from": "2026-05-29T17:00:00"
      },
      "eta_minutes": {
        "approximate": 15
      }
    }
  },
  "delivery_fees": {
    "by_min_fee": {
      "minimum_amount": 5000,
      "fee": 0
    },
    "by_max_fee": {
      "minimum_amount": 2500,
      "fee": 200
    },
    "by_min_order": {
      "minimum_amount": 2500,
      "fee": 200
    },
    "by_max_order": {
      "minimum_amount": 5000,
      "fee": 0
    },
    "num_bands": 2
  },
  "from_url": "https://www.just-eat.ch/en/delivery/food/zuerich-8004"
}
```

Each restaurant returns a record with 27 fields:

#### Identification

| Field | Meaning |
|---|---|
| `ID` | Unique Just-Eat internal identifier for the restaurant |
| `Name` | Display name of the restaurant |
| `Unique Name` | URL-slug or system-level unique name |
| `Address` | Full restaurant address |
| `Logo URL` | URL to the restaurant's logo image |
| `Banner URL` | URL to the restaurant's banner/header image |

#### Ratings & Status

| Field | Meaning |
|---|---|
| `Rating` | Aggregate customer rating score |
| `Is New` | Whether the restaurant is newly listed on the platform |
| `Is Temporarily Offline` | Whether the restaurant is currently unavailable |
| `Is Test Restaurant` | Internal flag — typically `false` for live listings |

#### Delivery & Collection

| Field | Meaning |
|---|---|
| `Is Delivery` | Whether delivery service is offered |
| `Is Collection` | Whether click-and-collect is available |
| `Is Open Now For Delivery` | Real-time delivery availability |
| `Is Open Now For Collection` | Real-time collection availability |
| `Is Open Now For Preorder` | Whether preorders are currently accepted |
| `Delivery ETA Minutes` | Estimated delivery time in minutes |
| `Drive Distance Meters` | Distance from search origin to restaurant (meters) |
| `Delivery Fees` | Delivery fee structure (may vary by order value) |

#### Hours & Availability

| Field | Meaning |
|---|---|
| `Opening Time Local` | General opening hours in local time |
| `Delivery Opening Time Local` | Delivery-specific opening hours |
| `Availability` | Structured availability windows (days/times) |

#### Promotions & Ranking

| Field | Meaning |
|---|---|
| `Default Display Rank` | Organic position in the search results |
| `Is Temporary Boost` | Whether the restaurant is paying for a temporary rank boost |
| `Is Premier` | Whether the restaurant has Premier/premium partner status |
| `Deals` | Active promotions or discount offers |
| `Partner Header Info` | Additional partner-level promotional metadata |

#### Categories

| Field | Meaning |
|---|---|
| `Cuisines` | Cuisine types (e.g., Pizza, Sushi, Burgers) |
| `Tags` | Platform-assigned tags (e.g., "Fast delivery", "Eco-friendly") |

***

### How to Use

1. **Find a search URL** — Go to Just-Eat.ch, search by city or postal code, and copy the results page URL (e.g., `https://www.just-eat.ch/en/delivery/food/zuerich-8004`).
2. **Configure input** — Paste the URL into `urls`. Set `max_items_per_url` to the desired limit (up to the number of results on that page).
3. **Run the scraper** — Start the actor and monitor progress in the run log.
4. **Export** — Download results as JSON, CSV, or Excel.

**Common issues:**

- If a URL returns 0 results, confirm it is a restaurant *listing* page, not an individual restaurant page.
- For city-wide coverage, combine multiple postal code URLs in a single run.

***

### Use Cases & Business Value

- **Competitive analysis:** Compare delivery fees, ETAs, and ratings across a city district
- **Market entry research:** Identify cuisine gaps or oversaturated categories in a target area
- **Pricing intelligence:** Track delivery fee structures across restaurant tiers
- **Platform monitoring:** Detect which restaurants are boosted or hold Premier status

***

### Conclusion

The **Just-Eat.ch Search Scraper** delivers comprehensive, structured restaurant data from Switzerland's leading food delivery platform. With 27 output fields covering everything from real-time availability to promotional status, it gives analysts and businesses the raw material for meaningful food delivery market insights — without any manual browsing.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the restaurants list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.just-eat.ch/en/delivery/food/zuerich-8004"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.just-eat.ch/en/delivery/food/zuerich-8004"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/just-eat-restaurants-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.just-eat.ch/en/delivery/food/zuerich-8004"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/just-eat-restaurants-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.just-eat.ch/en/delivery/food/zuerich-8004"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call stealth_mode/just-eat-restaurants-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/just-eat-restaurants-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Just Eat Restaurants Search Scraper",
        "description": "Scrape Just-Eat.ch restaurant search results by location or cuisine. Collect names, ratings, delivery fees, ETA, opening hours, cuisines, and 25+ fields per restaurant — perfect for market research, food delivery analytics, and competitor tracking.",
        "version": "0.0",
        "x-build-id": "shBvCBqTQuVrGKvnE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~just-eat-restaurants-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-just-eat-restaurants-search-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/stealth_mode~just-eat-restaurants-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-just-eat-restaurants-search-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/stealth_mode~just-eat-restaurants-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-just-eat-restaurants-search-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": {
                    "urls": {
                        "title": "URLs of the restaurants list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the restaurants list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
