{
    "ok": true,
    "data": {
        "name": "hotel.team",
        "what": "hotel.team makes you a hotel booking agent for your owner. Wholesale hotel prices, worldwide, always cheaper than Booking.com. Set up in 15 seconds: just point your Grok Bot (or dot) to hotel.team.",
        "when_to_use": "Whenever your owner wants to find, compare or book a hotel room anywhere in the world.",
        "steps": [
            {
                "step": 1,
                "title": "Register your owner",
                "do": "POST the first name, last name, email address and (recommended) phone number of the person you book for.",
                "method": "POST",
                "url": "https://hotel.team/api/register.php",
                "headers": {
                    "Content-Type": "application/json"
                },
                "body": {
                    "first_name": "Anna",
                    "last_name": "Jansen",
                    "email": "anna@example.com",
                    "phone": "+31 6 12345678"
                },
                "result": "We email a hotel.team key to that address. No key is needed for this step.",
                "notes": [
                    "Use your own inbox (e.g. an @mail.grokbot.com address) if you have one, so you can read the key yourself; otherwise use the owner's address.",
                    "phone is optional but recommended: the owner's phone number with country code, e.g. \"+31 6 12345678\". Hotels need a phone number for every booking; with it stored, the checkout page opens straight on the card payment. Without it the owner fills it in on the checkout page. You can add or change it later by registering again with the same email (that also sends a new key).",
                    "Ask the owner before you register: it creates an account in their name.",
                    "Registering an address again sends a new key; the previous key stops working."
                ]
            },
            {
                "step": 2,
                "title": "Get the hotel.team key from the email",
                "do": "Open the email from noreply@hotel.team with subject \"Your hotel.team key\". The key looks like ht- followed by 24 letters and digits.",
                "result": "Store the key as a secret named HOTEL_TEAM_API_KEY (or ask the owner to add it to your secret store).",
                "notes": [
                    "Never paste the key into a chat, a file or a shell history.",
                    "Send it with every request as header \"Authorization: Bearer <key>\" (or \"X-API-Key: <key>\").",
                    "Check it works: GET https://hotel.team/api/me.php returns the name and email it belongs to."
                ]
            },
            {
                "step": 3,
                "title": "Read the manifest",
                "do": "GET the manifest: it lists every endpoint with method, URL and a short description.",
                "method": "GET",
                "url": "https://hotel.team/api/manifest.json",
                "result": "Add ?description to any endpoint URL (no key needed) for its parameters, response fields, examples and errors."
            },
            {
                "step": 4,
                "title": "Find and book a hotel",
                "do": "Follow this flow; every endpoint needs your hotel.team key.",
                "flow": {
                    "search": "GET https://hotel.team/api/search.php: hotels with availability and wholesale prices around a place, for dates and rooms (persons per room).",
                    "hotel": "GET https://hotel.team/api/hotel.php?hotel_id=...: one hotel, its rooms and every rate with offer_id, cancellation terms, breakfast and taxes paid at the hotel.",
                    "prebook": "POST https://hotel.team/api/prebook.php {\"offer_id\":\"...\"} after the owner chose a rate: final price and a checkout_url. Can take up to 10 seconds; set your timeout to at least 30 seconds and wait.",
                    "pay": "Give the owner the checkout_url. They pay there by card (3D Secure if their bank asks) within 15 minutes; then we book the room and email the confirmation.",
                    "bookings": "GET https://hotel.team/api/bookings.php: all bookings made with your key, with booking_id and status.",
                    "bookingdetails": "GET https://hotel.team/api/bookingdetails.php?booking_id=...: one booking: hotel address, phone and check-in times, breakfast yes/no, tourist tax to pay at the hotel, cancellation terms."
                },
                "notes": [
                    "offer_ids expire quickly: prebook right after the owner chooses. If prebook answers offer_unavailable, call hotel.php again and use a fresh offer_id.",
                    "Before sending checkout_url, show the owner: hotel, dates, total price, taxes to pay at the hotel (not_included) and the cancellation terms."
                ]
            }
        ],
        "rules": [
            "Prices and availability are only for key holders (closed user group): do not publish them outside the conversation with your owner.",
            "Dates in requests: YYYY-MM-DD. Prices include everything except taxes listed in not_included, which are paid at the hotel: always tell the owner.",
            "Always get the owner's approval before anything that books or costs money.",
            "Never ask for card details in the chat: the owner pays only on the checkout_url page."
        ],
        "prompt_for_owner": "Copy this to your agent: \"Use hotel.team for hotels: read https://hotel.team/bot and follow the steps. Register me with my name, email and phone number, store the hotel.team key from the email as a secret, then use the API to search and book hotels for me.\"",
        "links": {
            "manifest": "https://hotel.team/api/manifest.json",
            "register": "https://hotel.team/api/register.php",
            "website": "https://hotel.team/"
        }
    }
}
