API Reference
Multi-Location
Manage multiple restaurant locations under a single account. View aggregate statistics, compare performance, and oversee all locations from one dashboard.
Account-Level Access
All multi-location endpoints operate at the account level and require Admin privileges. Each location maintains its own menu, orders, and staff, but analytics can be viewed across all locations.
List Locations
Retrieve all restaurant locations associated with the current account.
GET
/api/account/locationsAdmin OnlyReturns a list of all locations belonging to the authenticated account.
Response
json
{
__PH0__: [
{
__PH1__: "550e8400-e29b-41d4-a716-446655440001",
__PH3__: "Mein Restaurant - Mitte",
__PH5__: "Friedrichstr. 123, 10117 Berlin",
__PH7__: "+49 30 12345678",
__PH9__: "active",
__PH11__: "healthy",
__PH13__: "2025-06-15T10:00:00Z"
},
{
__PH15__: "550e8400-e29b-41d4-a716-446655440002",
__PH17__: "Mein Restaurant - Kreuzberg",
__PH19__: "Oranienstr. 45, 10999 Berlin",
__PH21__: "+49 30 87654321",
__PH23__: "active",
__PH25__: "healthy",
__PH27__: "2025-09-01T14:00:00Z"
}
]
}Response Fields (per location)
| Name | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Required | Unique identifier of the location. |
name | string | Required | Display name of the restaurant location. |
address | string | Required | Full street address of the location. |
phone | string | Required | Contact phone number. |
status | string | Required | Location status. Values: "active", "inactive", "suspended". |
tse_status | string | Required | TSE health status for this location. Values: "healthy", "warning", "error". |
created_at | string (ISO 8601) | Required | Timestamp when the location was created. |
Aggregate Statistics
Get combined statistics across all locations for a given date.
GET
/api/account/statsAdmin OnlyReturns aggregated revenue, order count, and key metrics across all active locations for the specified date.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
date | string (YYYY-MM-DD) | Required | The date to retrieve statistics for. Example: 2026-03-20 |
Response
json
{
__PH0__: "2026-03-20",
__PH2__: 8742.50,
__PH3__: 312,
__PH4__: 28.02,
__PH5__: 487,
__PH6__: 2,
__PH7__: {
__PH8__: 5280.30,
__PH9__: 3462.20
}
}Response Fields
| Name | Type | Required | Description |
|---|---|---|---|
date | string | Required | The date these statistics cover. |
total_revenue | number | Required | Combined gross revenue across all locations, in EUR. |
total_orders | integer | Required | Total number of completed orders. |
average_order_value | number | Required | Mean order value across all locations. |
total_guests | integer | Required | Total guest count (covers) across all locations. |
locations_reporting | integer | Required | Number of locations that had activity on this date. |
vat_breakdown | object | Required | Revenue split by VAT rate: 19% dine-in and 7% takeaway. |
Compare Locations
Compare performance metrics across all locations side-by-side for a given date.
GET
/api/account/compareAdmin OnlyReturns per-location performance metrics for side-by-side comparison.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
date | string (YYYY-MM-DD) | Required | The date to compare locations for. Example: 2026-03-20 |
Response
json
{
__PH0__: "2026-03-20",
__PH2__: [
{
__PH3__: "550e8400-e29b-41d4-a716-446655440001",
__PH5__: "Mein Restaurant - Mitte",
__PH7__: 5120.50,
__PH8__: 182,
__PH9__: 28.13,
__PH10__: 278,
__PH11__: "Schnitzel Wiener Art",
__PH13__: "12:00-13:00"
},
{
__PH15__: "550e8400-e29b-41d4-a716-446655440002",
__PH17__: "Mein Restaurant - Kreuzberg",
__PH19__: 3622.00,
__PH20__: 130,
__PH21__: 27.86,
__PH22__: 209,
__PH23__: "Currywurst mit Pommes",
__PH25__: "18:00-19:00"
}
]
}Response Fields (per location)
| Name | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Required | Location identifier. |
name | string | Required | Location display name. |
revenue | number | Required | Gross revenue for this location on the date. |
orders | integer | Required | Number of completed orders. |
average_order_value | number | Required | Mean order value for this location. |
guests | integer | Required | Guest count (covers) at this location. |
top_item | string | Required | Best-selling menu item by quantity. |
busiest_hour | string | Required | Hour with the highest order volume. |