Create a restaurant reservation
const url = 'https://public.api.barestho.com/api/v1/partnership/restaurants/example/reservations/';const options = { method: 'POST', headers: {Authorization: 'Basic <credentials>', 'Content-Type': 'application/json'}, body: '{"first_name":"example","last_name":"example","email":"hello@example.com","phone":"example","start_time":"2026-04-15T12:00:00Z","adults":1,"children":1,"comment":"example","cancelled":true,"cancelled_at":"2026-04-15T12:00:00Z","confirmed":true,"confirmed_at":"2026-04-15T12:00:00Z","confirmation_mode":"CONFIRMATION_MODE_SYNCHRONOUS","arrived":true,"arrived_at":"2026-04-15T12:00:00Z","no_show":true,"no_show_at":"2026-04-15T12:00:00Z","language":"example","metadata":{"additionalProperty":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://public.api.barestho.com/api/v1/partnership/restaurants/example/reservations/ \ --header 'Authorization: Basic <credentials>' \ --header 'Content-Type: application/json' \ --data '{ "first_name": "example", "last_name": "example", "email": "hello@example.com", "phone": "example", "start_time": "2026-04-15T12:00:00Z", "adults": 1, "children": 1, "comment": "example", "cancelled": true, "cancelled_at": "2026-04-15T12:00:00Z", "confirmed": true, "confirmed_at": "2026-04-15T12:00:00Z", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS", "arrived": true, "arrived_at": "2026-04-15T12:00:00Z", "no_show": true, "no_show_at": "2026-04-15T12:00:00Z", "language": "example", "metadata": { "additionalProperty": "example" } }'Creates a new reservation for a guest at the specified restaurant if there is availability. At minimum you must provide start_time and adults. The confirmation_mode field determines whether the reservation is confirmed immediately (CONFIRMATION_MODE_SYNCHRONOUS) or requires an asynchronous approval step (CONFIRMATION_MODE_ASYNCHRONOUS).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The unique identifier of the restaurant where the reservation is to be created.
Request Body
Section titled “Request Body ”Represents a dining reservation at a restaurant. The lifecycle of a reservation progresses through several states: created → confirmed → arrived (or no-show), and may be cancelled at any point before arrival.
object
Unique numeric identifier for the reservation, assigned by the server.
First name of the guest holding the reservation. Maximum 255 characters.
Last name of the guest holding the reservation. Maximum 255 characters.
Email address of the guest. Used for booking confirmations and reminders.
Phone number of the guest. Maximum 128 characters.
ISO 8601 date-time indicating when the reservation begins. Should be expressed in the restaurant’s local timezone (see PartnerRestaurant.timezone). Required.
Duration of the reservation slot as an ISO 8601 duration string (e.g. PT2H). Calculated and set by the server based on the restaurant’s slot configuration.
Number of adult guests in the party. Must be between 1 and 50 (inclusive). Required.
Number of child guests in the party. Defaults to 0 if omitted. Must be between 0 and 50 (inclusive).
Optional free-text comment from the guest or partner (e.g. dietary requirements, special occasion notes). Visible to the restaurant.
true if the reservation has been cancelled. Set this to true via PATCH to cancel a reservation. The cancelled_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was cancelled. Set automatically by the server when cancelled transitions to true.
true if the reservation has been confirmed by the restaurant. For synchronous confirmation mode, this is set to true immediately upon creation.
ISO 8601 timestamp of when the reservation was confirmed. Set automatically by the server when confirmed transitions to true.
Defines how the reservation is confirmed: - CONFIRMATION_MODE_SYNCHRONOUS: The reservation is confirmed immediately
upon creation. confirmed will be true in the creation response.
CONFIRMATION_MODE_ASYNCHRONOUS: The reservation requires explicit confirmation by the restaurant. Poll the reservation or listen to webhooks to detect whenconfirmedbecomestrue.
true if the guest has checked in at the restaurant. Set this to true via PATCH when the guest arrives. The arrived_at timestamp is set automatically.
ISO 8601 timestamp of when the guest was marked as arrived. Set automatically by the server when arrived transitions to true.
true if the guest did not show up for the reservation. Set this to true via PATCH to record a no-show. The no_show_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was marked as a no-show. Set automatically by the server when no_show transitions to true.
BCP 47 language tag representing the guest’s preferred language (e.g. en, fr, nl). Used to localise guest-facing communications.
Arbitrary key-value pairs that the partner can attach to a reservation for their own tracking purposes (e.g. internal booking reference, campaign ID). The platform stores this data as-is and does not interpret it.
object
Represents a dining reservation at a restaurant. The lifecycle of a reservation progresses through several states: created → confirmed → arrived (or no-show), and may be cancelled at any point before arrival.
object
Unique numeric identifier for the reservation, assigned by the server.
First name of the guest holding the reservation. Maximum 255 characters.
Last name of the guest holding the reservation. Maximum 255 characters.
Email address of the guest. Used for booking confirmations and reminders.
Phone number of the guest. Maximum 128 characters.
ISO 8601 date-time indicating when the reservation begins. Should be expressed in the restaurant’s local timezone (see PartnerRestaurant.timezone). Required.
Duration of the reservation slot as an ISO 8601 duration string (e.g. PT2H). Calculated and set by the server based on the restaurant’s slot configuration.
Number of adult guests in the party. Must be between 1 and 50 (inclusive). Required.
Number of child guests in the party. Defaults to 0 if omitted. Must be between 0 and 50 (inclusive).
Optional free-text comment from the guest or partner (e.g. dietary requirements, special occasion notes). Visible to the restaurant.
true if the reservation has been cancelled. Set this to true via PATCH to cancel a reservation. The cancelled_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was cancelled. Set automatically by the server when cancelled transitions to true.
true if the reservation has been confirmed by the restaurant. For synchronous confirmation mode, this is set to true immediately upon creation.
ISO 8601 timestamp of when the reservation was confirmed. Set automatically by the server when confirmed transitions to true.
Defines how the reservation is confirmed: - CONFIRMATION_MODE_SYNCHRONOUS: The reservation is confirmed immediately
upon creation. confirmed will be true in the creation response.
CONFIRMATION_MODE_ASYNCHRONOUS: The reservation requires explicit confirmation by the restaurant. Poll the reservation or listen to webhooks to detect whenconfirmedbecomestrue.
true if the guest has checked in at the restaurant. Set this to true via PATCH when the guest arrives. The arrived_at timestamp is set automatically.
ISO 8601 timestamp of when the guest was marked as arrived. Set automatically by the server when arrived transitions to true.
true if the guest did not show up for the reservation. Set this to true via PATCH to record a no-show. The no_show_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was marked as a no-show. Set automatically by the server when no_show transitions to true.
BCP 47 language tag representing the guest’s preferred language (e.g. en, fr, nl). Used to localise guest-facing communications.
Arbitrary key-value pairs that the partner can attach to a reservation for their own tracking purposes (e.g. internal booking reference, campaign ID). The platform stores this data as-is and does not interpret it.
object
Represents a dining reservation at a restaurant. The lifecycle of a reservation progresses through several states: created → confirmed → arrived (or no-show), and may be cancelled at any point before arrival.
object
Unique numeric identifier for the reservation, assigned by the server.
First name of the guest holding the reservation. Maximum 255 characters.
Last name of the guest holding the reservation. Maximum 255 characters.
Email address of the guest. Used for booking confirmations and reminders.
Phone number of the guest. Maximum 128 characters.
ISO 8601 date-time indicating when the reservation begins. Should be expressed in the restaurant’s local timezone (see PartnerRestaurant.timezone). Required.
Duration of the reservation slot as an ISO 8601 duration string (e.g. PT2H). Calculated and set by the server based on the restaurant’s slot configuration.
Number of adult guests in the party. Must be between 1 and 50 (inclusive). Required.
Number of child guests in the party. Defaults to 0 if omitted. Must be between 0 and 50 (inclusive).
Optional free-text comment from the guest or partner (e.g. dietary requirements, special occasion notes). Visible to the restaurant.
true if the reservation has been cancelled. Set this to true via PATCH to cancel a reservation. The cancelled_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was cancelled. Set automatically by the server when cancelled transitions to true.
true if the reservation has been confirmed by the restaurant. For synchronous confirmation mode, this is set to true immediately upon creation.
ISO 8601 timestamp of when the reservation was confirmed. Set automatically by the server when confirmed transitions to true.
Defines how the reservation is confirmed: - CONFIRMATION_MODE_SYNCHRONOUS: The reservation is confirmed immediately
upon creation. confirmed will be true in the creation response.
CONFIRMATION_MODE_ASYNCHRONOUS: The reservation requires explicit confirmation by the restaurant. Poll the reservation or listen to webhooks to detect whenconfirmedbecomestrue.
true if the guest has checked in at the restaurant. Set this to true via PATCH when the guest arrives. The arrived_at timestamp is set automatically.
ISO 8601 timestamp of when the guest was marked as arrived. Set automatically by the server when arrived transitions to true.
true if the guest did not show up for the reservation. Set this to true via PATCH to record a no-show. The no_show_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was marked as a no-show. Set automatically by the server when no_show transitions to true.
BCP 47 language tag representing the guest’s preferred language (e.g. en, fr, nl). Used to localise guest-facing communications.
Arbitrary key-value pairs that the partner can attach to a reservation for their own tracking purposes (e.g. internal booking reference, campaign ID). The platform stores this data as-is and does not interpret it.
object
Responses
Section titled “ Responses ”The newly created reservation object.
Represents a dining reservation at a restaurant. The lifecycle of a reservation progresses through several states: created → confirmed → arrived (or no-show), and may be cancelled at any point before arrival.
object
Unique numeric identifier for the reservation, assigned by the server.
First name of the guest holding the reservation. Maximum 255 characters.
Last name of the guest holding the reservation. Maximum 255 characters.
Email address of the guest. Used for booking confirmations and reminders.
Phone number of the guest. Maximum 128 characters.
ISO 8601 date-time indicating when the reservation begins. Should be expressed in the restaurant’s local timezone (see PartnerRestaurant.timezone). Required.
Duration of the reservation slot as an ISO 8601 duration string (e.g. PT2H). Calculated and set by the server based on the restaurant’s slot configuration.
Number of adult guests in the party. Must be between 1 and 50 (inclusive). Required.
Number of child guests in the party. Defaults to 0 if omitted. Must be between 0 and 50 (inclusive).
Optional free-text comment from the guest or partner (e.g. dietary requirements, special occasion notes). Visible to the restaurant.
true if the reservation has been cancelled. Set this to true via PATCH to cancel a reservation. The cancelled_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was cancelled. Set automatically by the server when cancelled transitions to true.
true if the reservation has been confirmed by the restaurant. For synchronous confirmation mode, this is set to true immediately upon creation.
ISO 8601 timestamp of when the reservation was confirmed. Set automatically by the server when confirmed transitions to true.
Defines how the reservation is confirmed: - CONFIRMATION_MODE_SYNCHRONOUS: The reservation is confirmed immediately
upon creation. confirmed will be true in the creation response.
CONFIRMATION_MODE_ASYNCHRONOUS: The reservation requires explicit confirmation by the restaurant. Poll the reservation or listen to webhooks to detect whenconfirmedbecomestrue.
true if the guest has checked in at the restaurant. Set this to true via PATCH when the guest arrives. The arrived_at timestamp is set automatically.
ISO 8601 timestamp of when the guest was marked as arrived. Set automatically by the server when arrived transitions to true.
true if the guest did not show up for the reservation. Set this to true via PATCH to record a no-show. The no_show_at timestamp is set automatically.
ISO 8601 timestamp of when the reservation was marked as a no-show. Set automatically by the server when no_show transitions to true.
BCP 47 language tag representing the guest’s preferred language (e.g. en, fr, nl). Used to localise guest-facing communications.
Arbitrary key-value pairs that the partner can attach to a reservation for their own tracking purposes (e.g. internal booking reference, campaign ID). The platform stores this data as-is and does not interpret it.
object
Example
{ "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"}