Ozvermont booking API A public API for AI assistants. One API serves every property of the business. Prices and availability are live. An assistant finds a property, its open dates, and a quote. The API signs a guest in with a code that goes to their email. A signed-in guest can book an approved quote, send a request, or cancel a booking. The guest pays by card on a Stripe page or by bank transfer. A quote returns an itemized price, or a refusal with no total. Nearest dates name other check-ins. Open dates list each open check-in and its total. Discover, dates, and quotes are Read tools. Register, verify, starting a booking, sending a request, opening a card payment page, and reporting a bank transfer are Write tools. Reading the guest, a booking, a request, or the bank details is a Read tool. A cancel is a Sensitive write. Changes inside /v1/ only add endpoints, optional parameters, or response fields. Anything else will be a new version. Partner keys Send Authorization: Bearer when you were given a key. Your allowance is then yours, not your address's. With no Authorization header the call is anonymous: 10 requests a minute for that address. A wrong or malformed key is HTTP 401 invalid_api_key. It is not treated as anonymous. HTTP 429 means wait the seconds in Retry-After. retryable is true only for 429 and 5xx. Every response has X-Request-ID; error bodies repeat it as request_id. Money Amounts are integer US cents in fields ending in _cents, with currency USD. Open dates GET /v1/open-dates?accommodation_id=deluxe-fireplace&from=2026-10-26&to=2026-11-02&nights=2&payment_method=bank to must be on or after from and at most 92 days later. Each open check-in includes its quote total. Then ask /v1/quote for the date the client picks. accommodation_id is a room type or a specific room from that property's accommodations. GET /v1/discover/properties Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn/location Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn/accommodations Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn/stay-rules Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn/policies Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn/breakfast Tool class: Read. Side effects: none. GET /v1/discover/properties/deerfield-valley-inn/questions Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont/location Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont/accommodations Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont/stay-rules Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont/policies Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont/breakfast Tool class: Read. Side effects: none. GET /v1/discover/properties/paradise-vermont/questions Tool class: Read. Side effects: none. GET /v1/availability Tool class: Read. Side effects: none. GET /v1/nearest-dates Tool class: Read. Side effects: none. GET /v1/open-dates Tool class: Read. Side effects: none. GET /v1/quote Tool class: Read. Side effects: none. Guest sign-in Browsing, dates, and prices need no registration. Register a guest only when they want to book or to be contacted. Show this notice and register only after they agree: Registering keeps the client's name, email address and phone number with Ozvermont LLC (Deerfield Valley Inn and Paradise Vermont), to contact them about their requests and bookings and to send other information relevant to their stay. It is never used for marketing. Ozvermont's privacy policy: https://www.deerfieldvalleyinn.com/privacy. Tell the client this, and get their agreement, before registering them. POST /v1/clients with first_name, last_name, email, phone, and client_agreed true. A code goes to that email. POST /v1/clients/verify with the client_id and the code. The session lasts 24 hours and is shown once. POST /v1/clients and POST /v1/clients/verify need Idempotency-Key. Send a new Idempotency-Key for each change, and the same key when you retry that change. Send X-Client-Session with the same partner key that opened the session, or with no key when there was none. GET /v1/clients/me reads the guest behind that session. Email is the identity. A new name or phone for a returning guest applies only after a correct code. POST /v1/clients and POST /v1/clients/verify say Write. GET /v1/clients/me says Read. A guest who wants their details deleted asks the business. The notice above is the text to show. Booking A guest with a session turns an approved quote into an unpaid booking. Ask the guest every question in a quote's questions_for_guest, in one message. Breakfast is optional. If the guest wants it, ask which dishes and what time for each morning, from breakfast_offer. Then quote again with breakfast entries. In a query string, send each + in an entry as %2B. Start the booking with the same entries, or with an empty breakfast list for none. POST /v1/bookings needs X-Client-Session and Idempotency-Key. The body is that quote, plus approved_total_cents. POST /v1/bookings stores an unpaid booking. It does not hold dates or take payment. A bank booking queues one email with the bank details. GET /v1/bookings lists this guest's bookings. GET /v1/bookings/{booking_id} reads one. POST /v1/bookings says Write. GET /v1/bookings and GET /v1/bookings/{booking_id} say Read. A recorded payment holds the room. POST /v1/bookings/{booking_id}/card-payment needs X-Client-Session and Idempotency-Key. It opens a card payment page. It says Write. It takes no payment by itself. GET /v1/bookings/{booking_id}/bank-transfer gives the domestic bank details. It says Read. It holds nothing. POST /v1/bookings/{booking_id}/bank-transfer-sent needs X-Client-Session and Idempotency-Key. It records that the guest sent the transfer. It says Write. It holds no room. Requests and cancels POST /v1/bookings/{booking_id}/requests needs X-Client-Session and Idempotency-Key. It records the guest's request. The body has kind and text. kind is change or other. The booking stays as it is. It says Write. GET /v1/bookings/{booking_id}/requests/{request_id} reads one request, its state, and the answer. It says Read. POST /v1/bookings/{booking_id}/cancel needs X-Client-Session and Idempotency-Key. It cancels before check-in. The booking's rate decides the refund. It says Sensitive write. Ask the guest to confirm each cancel, every time. At a refundable rate between its two refund days, a cancel records a cancellation request for the owner and keeps the booking. A refund of a card payment comes back less the payment processor's fees. A bank transfer comes back in full. GET /health reports whether the process is up. It is not rate limited. The interactive description is at /docs.