Molzait API (1)

Download OpenAPI specification:Download

Floor plan

Interfaces for creating, updating and deleting floor plans

List floor plans

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new floor plans

Request Body schema: application/json
required
name
required
string
sortIndex
required
number
required
object

A map of available tables in this floor plan. The keys of the map are the ids of the table

required
object

A map of available table combinations in this floor plan. The keys of the map are the ids of the table combination

required
object

A map of visible elements in this floor plan

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Response samples

Content type
application/json
{
  • "id": "b95cbb67a911-4ba2-b0f0-d2fe81aeac36",
  • "name": "string",
  • "restaurantId": "fa2e93a19137-40e2-a157-0960f8782084",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Update a floor plans

path Parameters
floorPlanId
required
string
Request Body schema: application/json
required
name
required
string
sortIndex
required
number
required
object

A map of available tables in this floor plan. The keys of the map are the ids of the table

required
object

A map of available table combinations in this floor plan. The keys of the map are the ids of the table combination

required
object

A map of visible elements in this floor plan

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Response samples

Content type
application/json
{
  • "id": "b95cbb67a911-4ba2-b0f0-d2fe81aeac36",
  • "name": "string",
  • "restaurantId": "fa2e93a19137-40e2-a157-0960f8782084",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Delete a floor plans

path Parameters
floorPlanId
required
string

Responses

Availability

Interfaces for requesting currently available slots

Listing experiences

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Listing available slots

query Parameters
attendees
required
number
Example: attendees=2

Number of attendees

day
required
string
Example: day=2024-06-10

The day to query time slots

experienceId
required
string
Example: experienceId=54c364bbced0-4367-b7fc-039547cb8d03
reservationId
string
Example: reservationId=e188403efc46-420d-948e-0d3159b85012

When updating a reservation send the id of the reservation to exclude it from the availability calculation

Responses

Response samples

Content type
application/json
{
  • "slots": [
    ]
}

Reservations

Interfaces for interacting with restaurant reservations

List reservations

query Parameters
from
required
string
Example: from=2023-01-01
to
required
string
Example: to=2023-01-31
status
Array of any
Example: status=seated&status=booked

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a reservation

Request Body schema: application/json
required
attendees
required
number

The number of attendees for this reservation

day
required
string <yyyy-mm-dd>

The day of the reservation

email
string
experienceId
required
string
firstName
string
lastName
required
string
locale
required
string
Enum: "en" "de"
minutes
required
number

Minutes since the start of the day based in the restaurants configured timezone. 600 = 10:00

notes
string or null
phone
string
pinnedTableIds
Array of strings

Set the table ids of this reservation. When omitted, the tables will be selected automatically.

Responses

Request samples

Content type
application/json
{
  • "attendees": 2,
  • "day": "2024-01-02",
  • "email": "john.doe@example.com",
  • "experienceId": "54c364bbced0-4367-b7fc-039547cb8d03",
  • "firstName": "John",
  • "lastName": "Doe",
  • "locale": "en",
  • "minutes": 600,
  • "notes": "Comes with a dog",
  • "phone": "+436605512234",
  • "pinnedTableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Load a reservation

path Parameters
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Update reservation

Currently only status updates are allowed

path Parameters
reservationId
required
string
Request Body schema: application/json
required
status
string
Enum: "requested" "unconfirmed" "payment_pending" "booked" "reconfirmed" "arrived" "seated" "ordered" "paid" "declined" "finished" "cancelled" "no_show" "voided"
day
string
minutes
number
attendees
number
tableIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "status": "requested",
  • "day": "string",
  • "minutes": 0,
  • "attendees": 0,
  • "tableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Check-In

Searches a booked reservation currently starting (+/- 15 minutes) for the given table. If one is found the reservation will be checked in. If no reservation is found a new Walk-In will be created

Request Body schema: application/json
required
tableName
string
tableIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tableName": "102",
  • "tableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Check-Out

Searches an active reservation on the current day for the given table. If one is found, the reservation will be set to paid and automatically finished after a few minutes.

Request Body schema: application/json
required
tableName
string
tableIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tableName": "102",
  • "tableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Phone calls

Interfaces for reporting incoming calls

Incoming call

Report an status update regarding an incoming call

Request Body schema: application/json
required
id
required
string

An unique UUID that identifies the call in the external phone system

phoneNumber
required
string

An E.164 formatted phone number

status
required
string
Enum: "ringing" "picked_up" "hung_up" "abandoned"

The current status of the call

Responses

Request samples

Content type
application/json
{
  • "id": "90e4020a-a9d1-4a06-8906-fec2126cc007",
  • "phoneNumber": "+436601123345",
  • "status": "ringing"
}

Widget

Widget bootstrap data

path Parameters
restaurantId
required
string
query Parameters
experienceId
any

Responses

Response samples

Content type
application/json
{
  • "restaurantId": "string",
  • "experiences": [
    ],
  • "experienceGroups": [
    ],
  • "minPartySize": 0,
  • "maxPartySize": 0,
  • "formalLanguage": true,
  • "newsletterSignupEnabled": true,
  • "address": [
    ],
  • "tableCategories": [
    ],
  • "branding": { },
  • "email": "string",
  • "restaurantName": "string",
  • "countryCode": "string",
  • "phone": "string",
  • "restaurantTimezone": "string",
  • "products": [
    ],
  • "description": {
    },
  • "websiteUrl": "string",
  • "stepOrder": "partysize_experience_date",
  • "buttonLabel": "reserve"
}

Listing availability

path Parameters
restaurantId
required
string
query Parameters
experienceId
required
any
day
required
any
attendees
required
any

Responses

Response samples

Content type
application/json
{
  • "slots": [
    ]
}

Creating a reservation

path Parameters
restaurantId
required
string
Request Body schema: application/json
required
experienceId
required
string
attendees
required
number
day
required
string
minutes
required
number
firstName
required
string
lastName
required
string
phone
required
string
email
required
string
notes
required
object
locale
required
string
Enum: "en" "de"
newsletterSignup
required
boolean
tableCategoryId
string
originUrl
required
string

Responses

Request samples

Content type
application/json
{
  • "experienceId": "string",
  • "attendees": 0,
  • "day": "string",
  • "minutes": 0,
  • "firstName": "string",
  • "lastName": "string",
  • "phone": "string",
  • "email": "string",
  • "notes": { },
  • "locale": "en",
  • "newsletterSignup": true,
  • "tableCategoryId": "string",
  • "originUrl": "string"
}

Response samples

Content type
application/json
{
  • "type": "success",
  • "redirectUrl": "string",
  • "reservation": {
    }
}

Update a reservation

path Parameters
restaurantId
required
string
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experienceId": "string",
  • "startTime": "string",
  • "endTime": "string",
  • "status": "requested",
  • "needsSpecialRequestConfirmation": true
}

Reconfirm a reservation

path Parameters
restaurantId
required
string
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experienceId": "string",
  • "startTime": "string",
  • "endTime": "string",
  • "status": "requested",
  • "needsSpecialRequestConfirmation": true
}

Cancel a reservation

path Parameters
restaurantId
required
string
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experienceId": "string",
  • "startTime": "string",
  • "endTime": "string",
  • "status": "requested",
  • "needsSpecialRequestConfirmation": true
}