{"ok":true,"site":{"host":"booknbouncestl.com","url":"https://booknbouncestl.com/","type":"live","category":"Travel & Events","desc":"Bounce-house, water-slide and party equipment rentals near St. Charles, Missouri.","tools":[{"name":"get-business","kind":"answer","impl":"imperative","description":"Business profile: locations, currency, hours, booking lead time, delivery methods, setup surfaces, and AI checkout mode.","title":"Get Business Info","annotations":{"title":"Get Business Info","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get-rental","kind":"answer","impl":"imperative","description":"Details for one or more rentals: description, dimensions, images, price estimate, and the options tree (accessories, dropdown choices, separate units). Use option ids from here when adding options to a cart.","title":"Get Rental Details","annotations":{"title":"Get Rental Details","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"rental_ids":{"type":"array","items":{"type":"integer"},"minItems":1,"description":"Rental ids, e.g. from search-rentals."},"event_date":{"type":"string","description":"YYYY-MM-DD; enables dated price estimates."},"start_time":{"type":"string","description":"HH:MM, 24-hour. Optional: defaults to the business's usual start time, reported back as assumed_start_time."},"duration_hours":{"type":"number","minimum":0.5,"maximum":720,"description":"Optional: defaults to the business's usual event duration, reported back as assumed_duration_hours. Omit it (or send null) to ask for that default — 0 is not a way to say 'unset' and is refused."}},"required":["rental_ids"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"check-availability","kind":"answer","impl":"imperative","description":"Check whether rentals are available for an event date, time, and duration. Quantity is required — availability depends on it. If start_time or duration_hours is omitted the business default is used and the response says so; confirm any assumed value with the customer before creating a cart.","title":"Check Availability","annotations":{"title":"Check Availability","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"event_date":{"type":"string","description":"YYYY-MM-DD"},"end_date":{"type":"string","description":"YYYY-MM-DD. Optional: check a whole range in one call — at most 14 days after event_date (wider spans are refused). The response then adds days[], one entry per day from event_date through end_date, each day fully conflict-checked at the same start time and duration. Range rows carry no price_estimate (per-day pricing is skipped for cost); price a chosen day with a single-date check or price-cart."},"start_time":{"type":"string","description":"HH:MM, 24-hour. Optional: defaults to the business's usual start time, reported back as assumed_start_time."},"duration_hours":{"type":"number","minimum":0.5,"maximum":720,"description":"Optional: defaults to the business's usual event duration, reported back as assumed_duration_hours. Omit it (or send null) to ask for that default — 0 is not a way to say 'unset' and is refused."},"items":{"type":"array","items":{"type":"object","properties":{"rental_id":{"type":"integer","description":"Rental id from search-rentals or get-rental."},"quantity":{"type":"integer","minimum":1,"maximum":99}},"required":["rental_id","quantity"]},"minItems":1}},"required":["event_date","items"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"price-cart","kind":"answer","impl":"imperative","description":"Fast discovery pricing for a set of items on a date. Estimate only: excludes tax, delivery, coupons, and conditional pricing. For exact totals, build a cart and set the event address — never create a quote just to see a price.","title":"Price Cart (Estimate)","annotations":{"title":"Price Cart (Estimate)","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"event_date":{"type":"string","description":"YYYY-MM-DD"},"start_time":{"type":"string","description":"HH:MM, 24-hour. Optional: defaults to the business's usual start time, reported back as assumed_start_time."},"duration_hours":{"type":"number","minimum":0.5,"maximum":720,"description":"Optional: defaults to the business's usual event duration, reported back as assumed_duration_hours. Omit it (or send null) to ask for that default — 0 is not a way to say 'unset' and is refused."},"items":{"type":"array","items":{"type":"object","properties":{"rental_id":{"type":"integer","description":"Rental id from search-rentals or get-rental."},"quantity":{"type":"integer","minimum":1,"maximum":99},"options":{"type":"array","items":{"type":"object","properties":{"option_id":{"type":"integer","description":"Option id from the get-rental options tree."},"quantity":{"type":"integer","minimum":1,"maximum":99},"choice_id":{"type":"integer","description":"Chosen dropdown choice id, when the option is a dropdown."}},"required":["option_id"]}}},"required":["rental_id","quantity"]},"minItems":1}},"required":["event_date","items"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get-delivery-options","kind":"answer","impl":"imperative","description":"Valid delivery methods for an address, whether the address is in the service area, and a distance-charge preview.","title":"Get Delivery Options","annotations":{"title":"Get Delivery Options","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"address":{"type":"object","properties":{"street":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"}},"required":["state","zip"]}},"required":["address"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create-cart","kind":"act","impl":"imperative","description":"Start a transaction. The event window is the required first step of any booking flow; the returned cart_id is needed by every later cart call. Unlike the discovery tools, this one does NOT assume a start time or duration — both must come from the customer, because this window is what they get quoted and committed to; confirm them when you create the cart, not as part of an up-front question list. Carts are free and invisible to the business — they hold no inventory and expire on their own, so create several to build alternative packages to compare.","title":"Create Cart","annotations":{"title":"Create Cart","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"event_date":{"type":"string","description":"YYYY-MM-DD"},"start_time":{"type":"string","description":"HH:MM, 24-hour. Required — ask the customer, do not guess."},"duration_hours":{"type":"number","minimum":0.5,"maximum":720,"description":"Required — ask the customer, do not guess."},"event_zip":{"type":"string"}},"required":["event_date","start_time","duration_hours"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add-to-cart","kind":"act","impl":"imperative","description":"Add items to a cart. Returns the full recalculated cart (price and availability per line) — no follow-up call needed.","title":"Add To Cart","annotations":{"title":"Add To Cart","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"rental_id":{"type":"integer","description":"Rental id from search-rentals or get-rental."},"quantity":{"type":"integer","minimum":1,"maximum":99},"options":{"type":"array","items":{"type":"object","properties":{"option_id":{"type":"integer","description":"Option id from the get-rental options tree."},"quantity":{"type":"integer","minimum":1,"maximum":99},"choice_id":{"type":"integer","description":"Chosen dropdown choice id, when the option is a dropdown."}},"required":["option_id"]}}},"required":["rental_id","quantity"]},"minItems":1}},"required":["cart_id","items"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update-cart-item","kind":"act","impl":"imperative","description":"Change quantity or options of items already in the cart. Quantity 0 removes the item. Returns the full recalculated cart.","title":"Update Cart Item","annotations":{"title":"Update Cart Item","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"rental_id":{"type":"integer","description":"Rental id from search-rentals or get-rental."},"quantity":{"type":"integer","minimum":0,"maximum":99},"options":{"type":"array","items":{"type":"object","properties":{"option_id":{"type":"integer","description":"Option id from the get-rental options tree."},"quantity":{"type":"integer","minimum":1,"maximum":99},"choice_id":{"type":"integer","description":"Chosen dropdown choice id, when the option is a dropdown."}},"required":["option_id"]}}},"required":["rental_id","quantity"]},"minItems":1}},"required":["cart_id","items"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get-cart","kind":"answer","impl":"imperative","description":"Current cart contents with prices, availability, fees, totals, and what is still missing before a quote can be created. To weigh several candidate carts against each other, use compare-carts instead of reading them one by one.","title":"Get Cart","annotations":{"title":"Get Cart","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string"}},"required":["cart_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set-cart-details","kind":"answer","impl":"imperative","description":"Set contact info, event address, delivery method, setup surface, a coupon code, or a new event window (event_date + start_time) on the cart. Returns the full cart with final tax and delivery. Moving the date re-prices the cart and re-checks availability — useful for comparing the same package on different dates before quoting.","title":"Set Cart Details","annotations":{"title":"Set Cart Details","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string"},"event_date":{"type":"string","description":"Move the event to a new date (YYYY-MM-DD). The cart re-prices and re-checks availability: items that conflict on the new date stay in the cart flagged has_conflict — only create-quote refuses on conflicts. Requires start_time. Useful for comparing the same package on different dates (weekend pricing can differ)."},"start_time":{"type":"string","description":"Event start time (HH:MM, 24-hour). Required when changing event_date — ask the customer, do not guess."},"duration_hours":{"type":"number","minimum":0.5,"maximum":720,"description":"Event duration in hours. Omit to keep the cart's CURRENT duration — that is state the customer already set, not an assumption made for them. 0 is not a way to say \"unset\" and is refused."},"contact":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"cellphone":{"type":"string"}}},"event_address":{"type":"object","properties":{"street":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"}}},"delivery_method":{"type":"string"},"surface":{"type":"string","description":"Setup surface at the event location — a top-level field, not part of event_address. Valid values are the surfaces list from get-business. Required before create-quote."},"coupon_code":{"type":"string"}},"required":["cart_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create-quote","kind":"act","impl":"imperative","description":"Turn ONE cart — the package the customer explicitly chose — into a real quote with final pricing (tax, delivery, coupons). This notifies the business, enters their sales queue, and holds inventory: never call it to see a price (cart totals are already exact), and never quote more than one cart per event. Returns a quote reference and whether online booking is possible.","title":"Create Quote","annotations":{"title":"Create Quote","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string"}},"required":["cart_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create-checkout-session","kind":"transact","impl":"imperative","description":"Finish the transaction. Returns links for the customer: quote_url to review and book the quote (nothing is signed at the quote step), and — once the event is booked — payment_url to sign and pay, which is the same contract page contract_url points at. Before booking there is no payment link: the customer books from quote_url and pays on the page that follows. Or (when the business allows agent booking) a booked confirmation. Payment is never taken through this tool.","title":"Create Checkout Session","annotations":{"title":"Create Checkout Session","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string"}},"required":["cart_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare-carts","kind":"act","impl":"imperative","description":"Price 2-4 candidate carts side-by-side: per-cart items and exact totals plus computed differences. Read-only — no quote is created, no inventory is held. Use before create-quote so the customer picks one package.","title":"Compare Carts","annotations":{"title":"Compare Carts","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"cart_ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":4,"description":"2-4 distinct cart ids (from create-cart) to compare."}},"required":["cart_ids"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"render-rental-search","kind":"act","impl":"imperative","description":"Render a rental gallery from final search-rentals output. Always call search-rentals first, then pass its complete structured result as data.","title":"Render Rental Search","annotations":{"title":"Render Rental Search","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":"object","description":"The complete structured result returned by the required data/action tool.","additionalProperties":true}},"required":["data"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"render-rental","kind":"act","impl":"imperative","description":"Render rental detail cards from final get-rental output. Always call get-rental first, then pass its complete structured result as data.","title":"Render Rental Details","annotations":{"title":"Render Rental Details","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":"object","description":"The complete structured result returned by the required data/action tool.","additionalProperties":true}},"required":["data"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"render-cart","kind":"act","impl":"imperative","description":"Render a cart from final create-cart, get-cart, add-to-cart, update-cart-item, or set-cart-details output. Call the relevant cart tool first, then pass its complete structured result as data.","title":"Render Cart","annotations":{"title":"Render Cart","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":"object","description":"The complete structured result returned by the required data/action tool.","additionalProperties":true}},"required":["data"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"render-cart-comparison","kind":"act","impl":"imperative","description":"Render a side-by-side comparison from final compare-carts output. Always call compare-carts first, then pass its complete structured result as data.","title":"Render Cart Comparison","annotations":{"title":"Render Cart Comparison","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":"object","description":"The complete structured result returned by the required data/action tool.","additionalProperties":true}},"required":["data"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"render-quote","kind":"act","impl":"imperative","description":"Render a quote receipt from final create-quote output. Always call create-quote first, then pass its complete structured result as data.","title":"Render Quote Receipt","annotations":{"title":"Render Quote Receipt","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":"object","description":"The complete structured result returned by the required data/action tool.","additionalProperties":true}},"required":["data"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search-rentals","kind":"answer","impl":"imperative","description":"Search rental items by name, category or keyword — or call it with NO query to browse the catalogue grouped by category. Use the query-less form for \"what can I rent?\" style questions instead of guessing search terms. One call returns up to 50 items; when more remain the response carries next_cursor — pass it back as cursor to get the next page. Results are limited to items this page can actually rent, verified against the booking system on a best-effort basis.","title":"Search Rentals","annotations":{"title":"Search Rentals","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Optional. Words to match against item names, categories and descriptions. OMIT to browse the catalogue."},"cursor":{"type":"string","description":"Optional. next_cursor from a previous browse response, to fetch the following page. Opaque — pass it back unchanged. Ignored when a query is given."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"apiSurface":"spec","favicon":"/favicons/booknbouncestl.com.png","toolCount":19}}