stw.berlin APIstw.berlin ↗
Fetch daily and weekly canteen menus from studierendenWERK BERLIN. Get dish names, student/employee/guest prices, dietary labels, and all Mensa locations.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/d62db332-03b4-433e-962c-7796abc79384/list_canteens' \ -H 'X-API-Key: $PARSE_API_KEY'
Get a list of all available canteens (Mensen) from studierendenWERK BERLIN with their names and page URLs. Returns canteens including Mensa, Backshop, and Späti locations across Berlin universities.
No input parameters required.
{
"type": "object",
"fields": {
"canteens": "array of canteen objects, each with 'name' (string) and 'url' (string, full URL of the canteen page)"
},
"sample": {
"data": {
"canteens": [
{
"url": "https://www.stw.berlin/mensen/einrichtungen/freie-universität-berlin/mensa-fu-ii.html",
"name": "Mensa FU II"
},
{
"url": "https://www.stw.berlin/mensen/einrichtungen/technische-universität-berlin/mensa-tu-hardenbergstraße.html",
"name": "Mensa TU / UdK Hardenbergstraße"
}
]
},
"status": "success"
}
}About the stw.berlin API
This API provides access to canteen menu data from studierendenWERK BERLIN across 2 endpoints. Use list_canteens to retrieve all Mensa, Backshop, and Späti locations with their URLs, then call get_menu to pull full weekly or single-day menus per canteen — including dish names, category groupings, three-tier pricing, and dietary labels.
Canteen Locations
The list_canteens endpoint returns an array of canteen objects, each containing a name (string) and a url (full URL to the canteen page on stw.berlin). This covers all studierendenWERK BERLIN locations, including Mensa dining halls, Backshop outlets, and Späti convenience spots at Berlin universities. The endpoint takes no parameters and is the expected first call to discover valid canteen_url values for use in menu requests.
Menu Data
The get_menu endpoint accepts three optional parameters: canteen_url (obtained from list_canteens), date (YYYY-MM-DD format for a single day), and week_offset (integer, 0 for current week, 1 for next week, etc.). By default it returns the full week from Monday to Saturday. The response includes a canteen string (location name), a resources_id (the internal canteen identifier), and a days array. Each element in days contains a date field and a menu array of dish objects.
Dish Details and Dietary Labels
Each dish object within the menu array includes: category (the serving counter or dish type grouping), name (full dish name in German as listed by the canteen), prices with separate values for students, employees, and guests, and labels for dietary and allergen classifications such as vegetarian, vegan, or pork indicators. The price structure reflects studierendenWERK BERLIN's standard three-tier pricing model.
- Build a meal-planning app for Berlin university students that shows the weekly menu for their campus Mensa
- Display today's canteen options on a university intranet or digital notice board using the
dateparameter - Filter dishes by dietary labels (e.g. vegan, vegetarian) to surface suitable options for specific dietary needs
- Compare student vs. guest pricing across all canteen locations to help visitors estimate food costs
- Aggregate next week's menus across multiple canteens using
week_offset: 1to plan group lunches - Index canteen dish names and categories for a searchable campus food database
- Send automated daily lunch notifications to a Slack channel or Telegram bot with that day's menu
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does studierendenWERK BERLIN offer an official developer API?+
What does the `get_menu` endpoint return for a specific day versus a full week?+
date parameter (YYYY-MM-DD), the days array in the response contains only the entry for that date. Without a date, the endpoint returns all days from Monday through Saturday for the current or offset week. In both cases each day entry contains the same structure: a date string and a menu array of dishes with category, name, prices, and labels.Are allergen details or full nutritional information (calories, macros) included in the response?+
Does the API cover canteens outside the studierendenWERK BERLIN network, such as canteens at private universities or other German cities?+
How current is the menu data, and how far in advance are menus available?+
week_offset parameter lets you request future weeks, but results will be empty if the canteen has not yet published that week's menu.