Quub for AI agents
Last updated 18 October 2026
AI agents and programs can search hotels anywhere in the world on Quub, read the destination guides as data, and prebook a room for a person. The person then pays on the payment page of Nuitee, the booking partner and merchant of record. Nothing is charged by the API, and no agent ever handles a card.
Two ways in, with the same operations, limits and prices:
- A JSON API under
https://quub.rent/api/v1/, described in /openapi.json (OpenAPI 3.1). - An MCP server at
https://quub.rent/mcp(streamable HTTP, stateless), with the tools search_hotels, get_hotel, list_destinations, get_destination_guide, prebook, get_booking, cancel_booking and request_api_key.
Prices and the margin
Prices are the total for the whole stay for one room, as Nuitee charges it, with the taxes Nuitee collects included. Taxes and fees paid at the property, often a city or tourist tax, are listed apart and are not in the total. Agent bookings carry an 8 percent margin: searches and prebooks made with an API key are priced at that margin. Without a key the prices are the ones on quub.rent.
Search and read without a key
GET https://quub.rent/api/v1/search?place=Lisbon&checkin=2026-11-26&checkout=2026-11-29&adults=2
GET https://quub.rent/api/v1/hotels/{id}?checkin=2026-11-26&checkout=2026-11-29&adults=2
GET https://quub.rent/api/v1/destinations
GET https://quub.rent/api/v1/destinations/lisbonplace is a city, region, island, airport or landmark name, a destination slug or a Google place id. Optional: children (ages, comma separated), currency (ISO 4217, default EUR), nationality (ISO 3166 alpha-2), limit (1 to 60) and sort (price or rating). Each hotel comes with its cheapest room, the total, the board, the refund rule and the free cancellation deadline, an offer_id for prebook, and the hotel page and booking page a person can open. The guides answer with every fact and its source: tourist tax, short-term rental rules, parking with a rental car, monthly stays, areas and distances.
An API key
A key is free. It is needed for prebook, reading a booking back and cancelling, and it raises the limits. Send an email address below, with POST /api/v1/keys or with the request_api_key tool; the owner of the address gets a link that shows the key once.
Send the key as Authorization: Bearer quub_.... MCP clients that cannot set a header can add ?key=quub_... to the server URL.
The pay link flow
- Search, then pick a room and its offer_id (from the search or from GET /api/v1/hotels/{id}).
- POST /api/v1/prebook with the offer_id, the hotel id, the dates, the adults and the guest: first and last name as on the ID shown at check-in, email and phone with the country code. Send an Idempotency-Key header so a retry never makes a second booking.
- The answer holds booking_id, booking_secret (shown once), the confirmed total, price_changed and the earlier total when the hotel repriced the room, the cancellation terms and pay_url. Give pay_url to the guest with the total and the terms.
- The guest opens pay_url, sees the price and the rate terms (and confirms a changed price first) and pays on Nuitee's form. The booking is made after that payment, and Quub emails the confirmation to the guest.
- GET /api/v1/bookings/{id} with the X-Booking-Secret header (or ?email= with the guest email) answers the status: awaiting_payment, confirming, confirmed with the confirmation number and the voucher, outcome_pending, failed or cancelled. POST /api/v1/bookings/{id}/cancel with the guest email cancels a refundable rate.
curl -X POST https://quub.rent/api/v1/prebook \
-H "Authorization: Bearer quub_..." -H "Idempotency-Key: 6f1c..." \
-H "Content-Type: application/json" \
-d '{"offer_id":"...","hotel_id":"lp2d220","checkin":"2026-11-26","checkout":"2026-11-29","adults":2,
"guest":{"first_name":"Ana","last_name":"Silva","email":"ana@example.com","phone":"+351 912 345 678"}}'The partner does not publish how long a prebook holds, so the answer gives an advisory expires_at 30 minutes out. Send the link at once; after that the pay page may refuse and a new prebook is needed.
Connecting an MCP client
Claude (claude.ai custom connector, Claude Desktop) and ChatGPT (developer mode connector) take the server URL; without a key the read tools work.
Server URL: https://quub.rent/mcp
Authentication: none (or https://quub.rent/mcp?key=quub_... for prebook and bookings)
Claude Desktop, claude_desktop_config.json:
{
"mcpServers": {
"quub": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://quub.rent/mcp", "--header", "Authorization: Bearer quub_..."]
}
}
}OAuth sign-in is not offered in this test; the key is the only credential.
Limits
- Searches and hotel lookups: 30 per 10 minutes per address without a key, 120 per 10 minutes with one.
- Live price lookups a day: 300 per key, fewer per address without one, and a shared daily cap for all agent traffic. Over a cap the answer is 429 with the reason.
- Prebooks: 10 per key per 10 minutes. Key requests: 5 per address per hour and 3 per email a day.
- Errors always have the shape {"error":{"code":"...","message":"..."}}.
Terms
A booking made through an AI agent or another program that uses the Quub API is made by the person named as the guest. That person pays, on the payment page of Nuitee, the booking partner, and is bound by the terms of the rate, which are shown before payment. The operator of the agent or program is not a party to the booking and has no rights under it. Quub sends the confirmation to the guest email given in the booking.
The full terms are at quub.rent/terms. Questions about the API: hello@quub.rent.