Restaurant Info
Reading the restaurant profile via the API: operating hours, areas and floors, online booking settings.
Endpoints for reading the restaurant profile, operating hours, areas/floors and online booking settings. A partner needs them to sync the venue card, understand the time zone and schedule, and learn the constraints that affect reservation creation (minimum party size, available areas, booking window, etc.).
All requests use a Bearer token (see Authentication).
Base path: /api/core/admin/restaurants/{restaurantId}.
| Method | Path | Purpose |
|---|---|---|
GET | /restaurants | List of available restaurants |
GET | /restaurants/{restaurantId} | Restaurant profile |
GET | /restaurants/{restaurantId}/settings | Basic settings (hours, areas, modules) |
GET | /restaurants/{restaurantId}/config | Extended configuration (reservations, waitlist) |
The
Restauranttag contains 38 operations, most of which are internal/administrative (onboarding, audit, search, creating/deleting a restaurant). Below are the ones useful to partners for reading. The full list is in Swagger UI.
Restaurant list
GET /restaurants
Returns an array of RestaurantContract — every restaurant available to the current token. Handy for
the initial sync: get each venue’s id, time zone and address.
curl https://api.hostmeapp.com/api/core/admin/restaurants \ -H "Authorization: Bearer $TOKEN"To find out the
restaurantIdandpartnerIdtied to your access, it is easier to useGET /api/core/admin/account/me.
Restaurant profile
GET /restaurants/{restaurantId}
Returns a RestaurantContract object with the venue’s public information.
| Parameter | In | Type | Description |
|---|---|---|---|
restaurantId * | path | integer | Restaurant identifier |
Key response fields (RestaurantContract)
| Field | Type | Description |
|---|---|---|
id | integer | Restaurant identifier |
name | string | Name |
address | string | Address (full string) |
lat / lon | number | Coordinates |
phone | string | Phone |
timeZone | string | Time zone (important for reservation times) |
city, state, street, zip, country, countryShort | string | Parsed address |
neighborhoods | array | Neighborhoods |
imageUrl | string | Logo/image |
websiteUrl, facebookId, twitterAccount | string | Website and social media |
communicationChannel | string | Guest communication channel |
smsDisabled | boolean | SMS disabled |
isVerified | boolean | Venue is verified |
isPayAccount | boolean | Paid account |
subscriptionTier | string | Subscription plan |
stripeAccountId | string | Linked Stripe account |
type | string | Venue type |
parentRestaurantId | integer? | Parent restaurant (for chains) |
settings | object | Nested settings (RestaurantSettingsContract, see below) |
curl https://api.hostmeapp.com/api/core/admin/restaurants/123 \ -H "Authorization: Bearer $TOKEN"Basic settings
GET /restaurants/{restaurantId}/settings
Returns RestaurantSettingsContract — operating hours, areas/floors, module visibility and general
flags. The same object comes nested in the profile (RestaurantContract.settings).
| Parameter | In | Type |
|---|---|---|
restaurantId * | path | integer |
Top-level fields (RestaurantSettingsContract)
| Field | Type | Description |
|---|---|---|
openingHours | array | Operating hours by day of the week (WeekDayOpenHoursContract, see below) |
openingHoursTemplates | array | Interval templates (HourlyIntervalContract: name, open, close) |
specialPeriods | array | Special periods/holidays (SpecialPeriodContract) |
enableHoursTemplates | boolean | Whether hour templates are enabled |
areas | array | Restaurant areas/floors (names) |
tableSizes | array | Allowed table sizes |
time24HourFormat | boolean | 24-hour time format |
language | string | Interface language |
moduleVisibility | object | Module visibility (ModulesVisibility, see below) |
skipGroupSizeStep | integer | Skip the party size step |
skipBookWizard | boolean | Quick walk-in seating: seat a walk-in guest in one click (despite the field name, this is about seating, not booking) |
deliveryMode | boolean | Delivery mode |
autocloseSeated | boolean | Close the reservation as soon as guests are seated |
disableGuestbook | boolean | Guest book disabled |
notifyGuestsOnBlacklistAddition | boolean | Notify guests when added to the blacklist |
Operating hours (WeekDayOpenHoursContract)
| Field | Type | Description |
|---|---|---|
weekDay | integer | Day of the week |
time | array | Intervals of the day (HourlyIntervalContract) |
Each HourlyIntervalContract interval: name (interval name, e.g. “Lunch”),
open and close (start and end time, date-span format).
Areas and module visibility
areas— an array of strings with area/floor names.moduleVisibility(ModulesVisibility) — which modules are hidden:tablesHidden,reserveHidden,waitlistHidden,timelineHidden,serversHidden,guestBookHidden.
curl https://api.hostmeapp.com/api/core/admin/restaurants/123/settings \ -H "Authorization: Bearer $TOKEN"Changing settings (
PUT /settings) is an administrative operation. Partners are advised to read settings rather than overwrite them, so as not to wipe the venue’s configuration.
Extended configuration
GET /restaurants/{restaurantId}/config
Returns RestaurantConfigurationContract — besides settings it includes the reservation,
waitlist and payment blocks. For a partner this provides the constraints under which online booking operates.
| Parameter | In | Type |
|---|---|---|
restaurantId * | path | integer |
Online booking settings (reservationSettings)
The fields of ReservationSettingsContract most useful to a partner:
| Field | Type | Description |
|---|---|---|
isEnabled | boolean | Online booking is enabled |
maxAdvanceBookingDays | integer | How many days ahead a booking can be made |
bookingMinimumNoticeMinutes | integer | Minimum lead time before the reservation |
bookingCutOffTime | date-span | Cutoff time for accepting reservations |
minPartySize / maxPartySize | integer | Min/max party size |
minGuestsPerReservation / maxGuestsPerReservation | integer? | Guest limits per reservation |
maxBookingsPerSlot / hardMaxBookingsPerSlot | integer? | Reservation limit per slot |
defaultMaxCoversPerSlot | integer? | Cover limit per slot |
reservationHours | array | Reservation hours by day (WeekDayOpenHoursContract) |
reservationHoursStep | integer | Slot step, minutes |
approvalRequired | boolean | Reservation approval required |
approvalSize | integer | Party size from which approval is required |
allowGuestSelectTables | boolean | Guest can choose a table |
availableOnlineAreas | boolean | Area selection is available online |
currency | string | Currency (for deposits/prepayments) |
cancellationOptions | array | Cancellation reasons (CancellationOptionContract: name, note, isDefault) |
additionalInfo | object | Available requests/attributes (AdditionalInfoContract: highChair, vip, allergy, vegetarian, etc.) |
noShowFeeEnabled | boolean | No-show fee enabled |
creditCardChargeEnabled | boolean | Card charging enabled |
onlinePaymentMethod | object | Payment methods (PaymentMethodContract: card/cash/invoice for reservations and delivery) |
The
reservationSettingsobject is very large (deposits, slot exceptions, table states, online ordering, UI customization). Only the fields that matter for a reservation integration are listed here. See the full structure in Swagger UI.
Other configuration blocks
| Block | What it contains |
|---|---|
waitingSettings | Waitlist settings: enabled, autoCall, maximumHoldTime, position/status messages |
paymentSettings | SMS limits, subscription plans (plans) |
guestTags | Guest tags (id, name, color) |
curl https://api.hostmeapp.com/api/core/admin/restaurants/123/config \ -H "Authorization: Bearer $TOKEN"Other endpoints of the Restaurant tag
The remaining operations are mostly administrative and are not required in a typical partner integration. A brief overview:
| Purpose | Endpoint |
|---|---|
| Reservation change audit | GET /restaurants/{restaurantId}/bookings/{bookingId} |
| Restaurant activity log | GET /restaurants/{restaurantId}/audit |
| Onboarding status | GET /restaurants/{restaurantId}/onboarding/status |
| Company / related venues | GET /restaurants/{restaurantId}/company |
| Restaurant search | GET /restaurants/{restaurantId}/search |
| Create restaurant | POST /restaurants (multipart/form-data) |
| Update profile | PUT /restaurants/{restaurantId} |
| Delete | DELETE /restaurants/{restaurantId} |
These endpoints are documented in Swagger UI. For creating a venue through partner onboarding there is a separate
VendorSignupflow — see App Registration.
Possible errors — ProblemDetails, codes 400/401/403/404. For the general rules see
Conventions and the Errors section.