Restaurant table reservations
Finds a restaurant by name and reads its real-time open reservation slots for a date and party size, plus a direct link to book one.
Finds a restaurant by name and reads its real-time open reservation slots for a date and party size, plus a direct link to book one. Resy today; no login, no booking (that needs a signed-in platform account).
Also known as: restaurant reservation, restaurant reservations, book a restaurant, restaurant, book a table, table reservation, table availability, reserve a table, dinner reservation, resy, opentable
Call it
bowmark.restaurant_booking.findAvailability(name: string | { name: string; location?: string; day?: string; partySize?: number }, options?: CallOptions): Promise<RestaurantAvailabilityResult>Functions
| Function | What it does |
|---|---|
findAvailability | Finds a restaurant by name — bowmark.restaurant_booking.findAvailability("Paco Meralgo") — on whichever booking platform it runs on, and reads its real open reservation slots for day… |
Types
type RestaurantSlot = {
startsAt: string // local start time, "YYYY-MM-DD HH:mm:ss"
seatingType: string | null // section/seating label the platform reports, e.g. "Dining Room"
}
type RestaurantVenue = {
platform: string // which booking platform this venue runs on, e.g. "resy"
name: string
locality: string
region: string
country: string
cuisine: string[]
bookingUrl: string // the platform's own page, pre-filled with date/party size
}
type RestaurantAvailabilityResult = {
venue: RestaurantVenue | null // null when no platform has a matching venue
day: string // the date actually queried, "YYYY-MM-DD"
partySize: number
slots: RestaurantSlot[] // [] when the venue is fully booked — a real answer
warnings: string[] // always present; empty when nothing was dropped
}
type CallOptions = {
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
// A provider slower than this is DROPPED from the results and
// NAMED in warnings — never silently absent
}Examples
// is there a table for two at Paco Meralgo tomorrow?
const { venue, slots, warnings } = await bowmark.restaurant_booking.findAvailability("Paco Meralgo");
for (const w of warnings) log(w);
if (!venue) {
log("no restaurant matched that name");
} else if (slots.length === 0) {
log(`${venue.name} has nothing open — try ${venue.bookingUrl}`);
} else {
log(`${venue.name}: ${slots.length} open slots, e.g. ${slots[0].startsAt}`);
}
return { venue, slots };// a specific date and a party of 4
const result = await bowmark.restaurant_booking.findAvailability({
name: "Paco Meralgo",
day: "2026-09-15",
partySize: 4,
});
return result;Providers behind it
| Provider | |
|---|---|
resy | Resy |