API Reference

Multi-Location

Manage multiple restaurant locations under a single account. View aggregate statistics, compare performance, and oversee all locations from one dashboard.

List Locations

Retrieve all restaurant locations associated with the current account.

GET/api/account/locationsAdmin Only

Returns 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)

NameTypeRequiredDescription
idstring (UUID)RequiredUnique identifier of the location.
namestringRequiredDisplay name of the restaurant location.
addressstringRequiredFull street address of the location.
phonestringRequiredContact phone number.
statusstringRequiredLocation status. Values: "active", "inactive", "suspended".
tse_statusstringRequiredTSE health status for this location. Values: "healthy", "warning", "error".
created_atstring (ISO 8601)RequiredTimestamp when the location was created.

Aggregate Statistics

Get combined statistics across all locations for a given date.

GET/api/account/statsAdmin Only

Returns aggregated revenue, order count, and key metrics across all active locations for the specified date.

Query Parameters

NameTypeRequiredDescription
datestring (YYYY-MM-DD)RequiredThe 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

NameTypeRequiredDescription
datestringRequiredThe date these statistics cover.
total_revenuenumberRequiredCombined gross revenue across all locations, in EUR.
total_ordersintegerRequiredTotal number of completed orders.
average_order_valuenumberRequiredMean order value across all locations.
total_guestsintegerRequiredTotal guest count (covers) across all locations.
locations_reportingintegerRequiredNumber of locations that had activity on this date.
vat_breakdownobjectRequiredRevenue 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 Only

Returns per-location performance metrics for side-by-side comparison.

Query Parameters

NameTypeRequiredDescription
datestring (YYYY-MM-DD)RequiredThe 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)

NameTypeRequiredDescription
idstring (UUID)RequiredLocation identifier.
namestringRequiredLocation display name.
revenuenumberRequiredGross revenue for this location on the date.
ordersintegerRequiredNumber of completed orders.
average_order_valuenumberRequiredMean order value for this location.
guestsintegerRequiredGuest count (covers) at this location.
top_itemstringRequiredBest-selling menu item by quantity.
busiest_hourstringRequiredHour with the highest order volume.