Vecchio Mulino Beach APIvecchiomulinobeach.com ↗
Fetch the current dinner menu of Vecchio Mulino Beach (Peschiera del Garda): dishes, EUR prices, EU allergen codes, and frozen-product markers.
What is the Vecchio Mulino Beach API?
The Vecchio Mulino Beach API exposes one endpoint, get_dinner_menu, returning the restaurant's full current food menu across three menu pages and every priced dish — with EUR prices, EU 14-allergen codes, frozen-product markers, and per-section notes. The response includes 11 top-level and item-level fields covering everything from section ordering and dish names to the menu's publication month and a built-in allergen code legend.
curl -X GET 'https://api.parse.bot/scraper/a690a9e4-9162-48d6-8766-bf294eddd9f4/get_dinner_menu?exclude_allergen_codes=2%2C14' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns the restaurant's current food menu as published on its site: every priced dish grouped by menu section (e.g. antipasti sub-courses, primi, secondi di carne, secondi di pesce, contorni, salads, kids dishes), in menu order across the three menu pages. Each dish carries its full printed text (Italian), its EUR price, whether the price is per portion or per hectogram (per_hg, used for the Fiorentina steak), the numeric allergen codes printed beside it, their names under the standard EU 14-allergen numbering (the menu prints only the numbers), a contains_crustaceans_or_molluscs flag (codes 2 or 14), and whether the dish carries the menu's frozen-product asterisk. Section notes hold un-priced text such as the children's promotion terms and frying-oil disclaimer. Menu date is reported as the publication month of the menu document plus the document's last-modified date; the menu itself does not print a date. The optional section filter keeps only sections whose title contains the given text (case-insensitive substring, e.g. 'carne' or 'pesce'); exclude_allergen_codes removes dishes carrying any of the listed codes (dishes without printed codes are kept). total_items_on_menu always counts the full menu; returned_items counts dishes after filtering. One call fetches the whole menu; there is no pagination. The only failure for caller input is a malformed exclude_allergen_codes value (422).
| Param | Type | Description |
|---|---|---|
| section | string | Case-insensitive substring matched against section titles; only matching sections are returned. Omitted = all sections. Section titles observed on the current menu include 'Antipasti', 'dall'orto', 'carne', 'pesce', 'fritture', 'Primi', 'Insalatone', 'Secondi di Carne', 'Secondi di Pesce', 'Contorni'. A value matching no section yields an empty sections list. |
| exclude_allergen_codes | string | Comma-separated EU allergen code numbers (1-14), e.g. 2,14 to drop every dish marked with crustaceans or molluscs. The scraper splits on commas - do NOT pass an array. Non-numeric values are rejected with a 422. |
{
"type": "object",
"fields": {
"currency": "ISO currency code for all prices (EUR)",
"sections": "array of menu sections in menu order, each {title, page (1-based menu page), items, notes}",
"menu_title": "label of the menu document as linked from the site's food page",
"returned_items": "integer count of dishes in the returned sections after filtering",
"sections[].items": "array of dishes: {name (full printed Italian text), price_eur (number), price_unit ('per_portion' or 'per_hg'), frozen_product_marker (boolean, menu asterisk), allergen_codes (array of integers as printed), allergens (array of names), contains_crustaceans_or_molluscs (boolean)}",
"sections[].notes": "array of un-priced text lines printed in the section (promotion terms, disclaimers); may be empty",
"total_items_on_menu": "integer count of priced dishes on the full menu, before any filtering",
"allergen_code_legend": "object mapping allergen code (string '1'..'14') to allergen name under the standard EU 14-allergen numbering",
"allergen_legend_note": "provenance note: codes are printed on the menu, names are the EU standard, not printed by the menu",
"menu_published_month": "YYYY-MM month in which the menu document was published on the site",
"menu_file_last_modified": "ISO date the menu document was last modified on the site, or null if the site does not report it",
"shellfish_allergen_codes": "array of the codes treated as shellfish: 2 (crustaceans) and 14 (molluscs)"
},
"sample": {
"data": {
"currency": "EUR",
"sections": [
{
"page": 1,
"items": [
{
"name": "Alici cantabriche Gold Codesa, olive affumicate, pomodorini semi secchi, burrata, pan brioche tostato",
"allergens": [
"cereals containing gluten",
"fish",
"milk"
],
"price_eur": 15,
"price_unit": "per_portion",
"allergen_codes": [
1,
4,
7
],
"frozen_product_marker": false,
"contains_crustaceans_or_molluscs": false
},
{
"name": "sautee di cozze al pomodoro con crostone di pane fatto in casa",
"allergens": [
"cereals containing gluten",
"molluscs (e.g. mussels, squid, octopus)"
],
"price_eur": 15,
"price_unit": "per_portion",
"allergen_codes": [
1,
14
],
"frozen_product_marker": false,
"contains_crustaceans_or_molluscs": true
}
],
"notes": [
"Alici cantabriche pescate nelle notti di primavera, la",
"qualità che ha reso la Cantabria famosa in tutto il mondo"
],
"title": "pesce"
},
{
"page": 3,
"items": [
{
"name": "Fritto di mare: calamari, gamberi, triglia*, verdure pastellate, cetrioli sottaceto fritti e alghe pastellate",
"allergens": [
"cereals containing gluten",
"crustaceans (e.g. shrimp, prawns)",
"fish",
"peanuts"
],
"price_eur": 22,
"price_unit": "per_portion",
"allergen_codes": [
1,
2,
4,
5
],
"frozen_product_marker": true,
"contains_crustaceans_or_molluscs": true
}
],
"notes": [],
"title": "Secondi di Pesce"
}
],
"menu_title": "menu con le tue ricette favorite",
"returned_items": 16,
"total_items_on_menu": 49,
"allergen_code_legend": {
"1": "cereals containing gluten",
"2": "crustaceans (e.g. shrimp, prawns)",
"3": "eggs",
"4": "fish",
"5": "peanuts",
"6": "soybeans",
"7": "milk",
"8": "tree nuts",
"9": "celery",
"10": "mustard",
"11": "sesame",
"12": "sulphites",
"13": "lupin",
"14": "molluscs (e.g. mussels, squid, octopus)"
},
"allergen_legend_note": "Numeric codes are printed on the menu next to each dish; names follow the standard EU 14-allergen numbering, which the menu does not print itself. Shellfish are codes 2 (crustaceans) and 14 (molluscs).",
"menu_published_month": "2026-02",
"menu_file_last_modified": "2026-02-26",
"shellfish_allergen_codes": [
2,
14
]
},
"status": "success"
}
}About the Vecchio Mulino Beach API
What the API returns
The single get_dinner_menu endpoint returns the complete current food menu of Vecchio Mulino Beach, a restaurant on Lake Garda in Peschiera del Garda, Italy. Dishes are grouped into menu sections — antipasti, primi, secondi di carne, secondi di pesce, contorni, salads, and kids dishes — in the printed order across the menu's three pages. Each dish carries its full Italian name, price in EUR, a price_unit indicating whether the price is per portion or per 100 g, a boolean frozen_product_marker, and an array of EU allergen codes (1–14).
Filtering parameters
Two optional query parameters let you narrow results. Pass a section string for case-insensitive substring matching against section titles; only sections whose titles contain the substring are returned. Pass exclude_allergen_codes as a comma-separated list of EU allergen code numbers — for example 2,14 to remove every dish containing crustaceans or molluscs — and the endpoint drops those dishes before counting returned_items. Both filters can be combined.
Allergen and metadata fields
The response includes allergen_code_legend, an object mapping each code string ('1'–'14') to its standard EU allergen name, and allergen_legend_note, which clarifies that the numeric codes are printed on the menu while the allergen names come from the EU standard. menu_published_month gives the YYYY-MM publication month of the current menu document. total_items_on_menu reflects the unfiltered dish count; returned_items reflects what was actually returned after any filtering.
The Vecchio Mulino Beach API is a managed, monitored endpoint for vecchiomulinobeach.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vecchiomulinobeach.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official vecchiomulinobeach.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build an allergen-aware dish finder by filtering on
exclude_allergen_codesto surface shellfish-free or gluten-free options. - Display a live menu widget for a travel or lake-destination guide using
sectionsanditemsin menu order. - Track menu and price changes over time by recording
menu_published_monthalongside each response. - Surface kids-menu options by filtering
sectionfor the children's section title. - Flag frozen versus fresh dishes in a food-comparison tool using the
frozen_product_markerboolean. - Aggregate Italian lakeside restaurant menus and normalize EUR pricing using the
price_eurandprice_unitfields.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Vecchio Mulino Beach have an official developer API?+
What allergen information does the API expose, and how are the codes interpreted?+
items array includes an allergen_codes array of EU standard code numbers (1–14). The response also provides allergen_code_legend, mapping each code to its allergen name (e.g. '2' to crustaceans, '14' to molluscs). The allergen_legend_note field clarifies that the numeric codes appear on the printed menu, while the human-readable names are derived from the EU 14-allergen standard. You can filter dishes at request time by passing exclude_allergen_codes.Does the API cover drinks, cocktails, or the wine list?+
How current is the menu data, and is there historical menu data available?+
menu_published_month field shows its YYYY-MM publication date. The API does not store or return historical menus. If you need a changelog, you can record each response alongside its menu_published_month in your own datastore, or fork the API on Parse and revise it to persist prior versions.Can I retrieve only a single menu section, such as secondi di pesce?+
section string — for example pesce — and the endpoint returns only sections whose titles contain that substring (case-insensitive). returned_items will reflect the filtered count, while total_items_on_menu still shows the full menu count.