{
  "version": "1.4",
  "origin": "agent.jmpr.world",
  "payout_address": "0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F",
  "display_name": "JMPR — Luxury Hotel API",
  "description": "Luxury hotel booking API for AI agents. Curated 5-star, ultra-luxury, and boutique hotels worldwide with live rates, real availability, and end-to-end booking via wallet-keyed pay-per-call — no API keys, no accounts.",
  "payments": {
    "x402": {
      "networks": [
        {
          "network": "tempo",
          "asset": "USDC",
          "contract": "0x20C000000000000000000000b9537d11c60E8b50"
        }
      ],
      "recipient": "0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F"
    }
  },
  "intents": [
    {
      "name": "search_hotels",
      "description": "Search the JMPR luxury catalog by city + dates. Returns curated 5-star, ultra-luxury, and boutique properties with name, address, lowest visible price, and image. Use for queries like 'best hotel in Paris', 'luxury resort in Bali', '5-star Manhattan'.",
      "endpoint": "/v1/hotels/search",
      "method": "POST",
      "parameters": {
        "city": {"type": "string", "required": true, "description": "City name (e.g. 'Paris', 'Tokyo')"},
        "checkin_date": {"type": "string", "required": true, "description": "YYYY-MM-DD"},
        "checkout_date": {"type": "string", "required": true, "description": "YYYY-MM-DD"},
        "rooms": {"type": "integer", "required": false, "description": "Default 1"},
        "adults": {"type": "integer", "required": false, "description": "Default 2"},
        "user_requirements": {"type": "string", "required": false, "description": "Free-form preferences (pool, view, family-friendly, etc.)"}
      },
      "price": {"amount": 0.02, "currency": "USD", "model": "per_call"}
    },
    {
      "name": "get_hotel_details",
      "description": "Get full property record for one hotel. With check_in + check_out: also returns the bookable per-(room_code, rate_code) rate ladder for that window.",
      "endpoint": "/v1/hotels/detail",
      "method": "POST",
      "parameters": {
        "hotel_id": {"type": "string", "required": true, "description": "From search_hotels results"},
        "check_in": {"type": "string", "required": false, "description": "YYYY-MM-DD (must pair with check_out)"},
        "check_out": {"type": "string", "required": false, "description": "YYYY-MM-DD (must pair with check_in)"}
      },
      "price": {"amount": 0.02, "currency": "USD", "model": "per_call"}
    },
    {
      "name": "reserve_booking",
      "description": "Reserve a specific rate. Returns a JMPR-hosted checkout_url for the end-user to complete payment (card via Stripe, or USDC on Tempo via MPP). Use the (room_code, rate_code) verbatim from get_hotel_details.",
      "endpoint": "/v1/bookings/reserve",
      "method": "POST",
      "parameters": {
        "hotel_id": {"type": "string", "required": true, "description": "From get_hotel_details"},
        "room_code": {"type": "string", "required": true, "description": "From rate ladder"},
        "rate_code": {"type": "string", "required": true, "description": "From rate ladder"},
        "checkin_date": {"type": "string", "required": true, "description": "YYYY-MM-DD"},
        "checkout_date": {"type": "string", "required": true, "description": "YYYY-MM-DD"},
        "rooms": {"type": "integer", "required": false, "description": "Default 1"},
        "adults": {"type": "integer", "required": false, "description": "Default 2"},
        "guest": {"type": "object", "required": true, "description": "Hotel check-in guest: {first_name, last_name, email}"},
        "contact": {"type": "object", "required": false, "description": "Agent's user (for card receipt); may differ from guest"}
      },
      "price": {"amount": 0.05, "currency": "USD", "model": "per_call"}
    }
  ],
  "extensions": {
    "mpp": {
      "version": "1.0",
      "method": "tempo",
      "discovery": "https://agent.jmpr.world/openapi.json",
      "challenge_header": "WWW-Authenticate: Payment",
      "network": {
        "name": "tempo",
        "chain_id": 4217,
        "rpc": "https://rpc.tempo.xyz",
        "currency": "USDC",
        "currency_contract": "0x20C000000000000000000000b9537d11c60E8b50"
      },
      "recipient": "0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F",
      "registries": ["https://mppscan.dev"]
    }
  }
}
