The Online Menu API serves the public menu structure for white-label apps, self-order kiosks and QR-ordering flows. Reading is unauthenticated; every mutating call requires authentication.
- Host:
my.apro.at - Content type:
application/json
Fetching a menu
GET https://my.apro.at/api/v1/locations/{locationId}/menus- Auth: none
- Example: my.apro.at/api/v1/locations/7236/menus
The response is a tree. Levels, from outermost to innermost:
- Menu — top-level grouping (e.g. Food, Drinks, Deals).
- Category — section inside a menu (e.g. Mains).
- MenuEntry — a concrete sellable item.
- MenuEntryFeature — add-on / modifier group on an item.
- MenuEntryFeatureValue — one option inside a feature.
- Hours — availability windows that can attach to menus and categories.
Example response (abridged)
GET /api/v1/locations/{locationId}/menus
[
{
"name": "Speisen",
"badge": 7,
"imageUrl": "https://cdn.smorder.at/locations/7236/menus/speisen.jpg",
"description": "Klassiker aus der österreichischen Küche.",
"priceName": "Hauspreis",
"orderableHours": [
{ "days": 254, "startTime": "11:00", "endTime": "22:00" }
],
"categories": [
{
"name": "Hauptspeisen",
"menuEntries": [
{
"menuEntryID": 4001,
"name": "Wiener Schnitzel",
"badge": 7,
"price": 22.9,
"features": [
{
"name": "Beilage",
"groupName": "Beilage",
"minValuesRequired": 1,
"maxValuesAllowed": 1,
"valuesForFree": 1,
"values": [
{ "name": "Erdäpfelsalat", "priceAdjustment": 0 },
{ "name": "Pommes frites", "priceAdjustment": 0 },
{ "name": "Reis", "priceAdjustment": 0 }
]
},
{
"name": "Ohne",
"isDeselectFeature": true,
"values": [
{ "name": "Preiselbeeren", "priceAdjustment": 0 }
]
}
]
}
]
}
]
}
]Download the full, unabridged sample: menu-response.json
1. Menu
Outermost grouping in the menu tree; contains categories. Examples: Food, Drinks, Deals.
Field | Type | Description |
|---|---|---|
| string | Display name. |
| enum | Visual badge — see Badges. |
| string | Header image URL. |
| string | Descriptive text. |
| Category[] | Categories inside this menu. |
| Hours[] | When ordering is allowed. |
| Hours[] | When pre-ordering is allowed. |
| Hours[] | When delivery is allowed. |
| string | Price level to use (e.g. House, Happy Hour). |
Mutations (auth required):
Action | Method | Path |
|---|---|---|
Create |
|
|
Update |
|
|
Delete |
|
|
2. Category
Sub-section of a menu. Examples: Non-alcoholic drinks, Beer, Mains, Desserts.
Field | Type | Description |
|---|---|---|
| string | Display name. |
| enum | See Badges. |
| string | Header image URL. |
| string | Descriptive text. |
| MenuEntry[] | Entries inside this category. |
| Hours[] | When ordering is allowed. |
| Hours[] | When pre-ordering is allowed. |
| Hours[] | When delivery is allowed. |
Mutations (auth required):
Action | Method | Path |
|---|---|---|
Create |
|
|
Update |
|
|
Delete |
|
|
3. MenuEntry
A concrete sellable item. Examples: Wiener Schnitzel, Kaiser Bier.
Field | Type | Description |
|---|---|---|
| integer | Unique entry ID; sent back with orders. |
| string | Item name. |
| enum | See Badges. |
| string | Item image URL. |
| string | Short tagline. |
| string | Descriptive text. |
| MenuEntryFeature[] | Modifier groups (sides, sizes…). |
| money | Selling price. |
Mutations (auth required):
Action | Method | Path |
|---|---|---|
Create |
|
|
Update |
|
|
Delete |
|
|
4. MenuEntryFeature
A modifier group for a menu entry. Examples: Size, Side for main.
Field | Type | Description |
|---|---|---|
| string | Feature label. |
| string | Descriptive text. |
| string | Grouping key for paginated rendering. |
| boolean |
|
| number | Max options selectable. |
| number | Min options required. |
| number | Options included at no extra charge. |
| MenuEntryFeatureValue[] | Available options. |
Mutations (auth required):
Action | Method | Path |
|---|---|---|
Create |
|
|
Update |
|
|
Delete |
|
|
5. MenuEntryFeatureValue
One concrete option inside a feature. Examples: Beer 0.3 l, Beer 0.5 l, Fries, Potatoes.
Field | Type | Description |
|---|---|---|
| string | Option label. |
| string | Descriptive text. |
| string | Option image URL. |
| number | Minimum quantity required when selected. |
| number | Maximum quantity allowed. |
| number | Quantity included at no extra charge. |
| number | Price change per selected unit. |
Mutations (auth required):
Action | Method | Path |
|---|---|---|
Create |
|
|
Update |
|
|
Delete |
|
|
6. Hours
Availability windows attached to menus or categories. They gate ordering, pre-ordering and delivery.
Field | Type | Description |
|---|---|---|
| enum bitmask | Bitmask of weekdays — see below. |
| date | Absolute start. |
| date | Absolute end. |
| daytime | Start time on matching days. |
| daytime | End time on matching days. |
| boolean | Invert the window — exclude instead of include. |
Weekday bitmask:
Day | Bit | Value |
|---|---|---|
Monday |
|
|
Tuesday |
|
|
Wednesday |
|
|
Thursday |
|
|
Friday |
|
|
Saturday |
|
|
Sunday |
|
|
Example: Mon–Fri is 2 + 4 + 8 + 16 + 32 = 62.
Badges
Visual flags for menus, categories and entries. Values:
Label | Value |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
