{"openapi":"3.1.0","info":{"title":"Lumo Rentals for Orchet — REST tool surface (Phase 0)","version":"0.1.0","description":"Discovery-only tools for finding rental vehicles in Lumo's South India service area (Vijayawada, Visakhapatnam, Nellore, Anantapur). All Phase-0 endpoints are anonymous — Phase 1 will add authenticated booking + payment."},"servers":[{"url":"https://lumo-rentals.orchet.ai"}],"paths":{"/tools/lumo_get_available_cities":{"post":{"operationId":"lumo_get_available_cities","summary":"List Lumo Rentals' service cities (Andhra Pradesh)","description":"Returns the cities where Lumo Rentals operates rentals today. Currently four cities in Andhra Pradesh: Vijayawada, Visakhapatnam, Nellore, Anantapur. Each city carries a lat/lng centroid (useful as a default search location), a `rentals` flag (always true), and a `rides` flag (currently false everywhere — point-to-point ride-hailing ships next month). Call this first when the user mentions a city you're unsure about; if the city isn't in the list, tell them honestly which cities ARE available rather than searching anyway.","x-lumo-tool":true,"x-lumo-cost-tier":"free","x-lumo-requires-confirmation":false,"x-lumo-pii-required":[],"x-lumo-intent-tags":["lumo_rentals","service_area"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitiesResponse"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"502":{"$ref":"#/components/responses/VendorError"}}}},"/tools/lumo_search_vehicles":{"post":{"operationId":"lumo_search_vehicles","summary":"Search rental vehicles by city, dates, and type","description":"Returns vehicles available for the requested city + date range + vehicle type. BEFORE calling this tool, gather the following from the user through conversation (do NOT default-guess and then search):\\n  • City (must be one of the four Lumo service cities — call lumo_get_available_cities if unsure)\\n  • Pickup date + time\\n  • Drop-off date + time\\n  • Vehicle type: 'Car', 'Bike', or 'All'\\n  • Number of passengers (informs which results to prefer when summarizing)\\n  • Driver needed (yes/no)\\n\\nDates use ISO format `YYYY-MM-DDTHH:mm:ss`. If the user says 'tomorrow' or 'this weekend,' resolve to concrete dates explicitly and confirm with them before searching. Returns an array of vehicle objects with hashCode, model, manufacturer, fuelType, transmissionType, seats, hourly/daily rates, and pickup address. Tell the user which results best match their passenger count and budget rather than dumping the whole list.","x-lumo-tool":true,"x-lumo-cost-tier":"free","x-lumo-requires-confirmation":false,"x-lumo-pii-required":[],"x-lumo-intent-tags":["lumo_rentals","search_vehicles","rent_vehicle"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchVehiclesRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchVehiclesResponse"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"502":{"$ref":"#/components/responses/VendorError"}}}},"/tools/lumo_get_vehicle_details":{"post":{"operationId":"lumo_get_vehicle_details","summary":"Get full details for a single vehicle","description":"Returns rich detail on a specific vehicle by its vehicleHashCode (from lumo_search_vehicles results). Use when the user picks a specific vehicle and wants more info: full feature list, host details, exact pickup location with coordinates, mileage, color, insurance, late-night booking policy, minimum/maximum booking duration. Call this before checking availability if the user is comparing two vehicles.","x-lumo-tool":true,"x-lumo-cost-tier":"free","x-lumo-requires-confirmation":false,"x-lumo-pii-required":[],"x-lumo-intent-tags":["lumo_rentals","vehicle_details"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVehicleDetailsRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleDetailsResponse"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"502":{"$ref":"#/components/responses/VendorError"}}}}},"components":{"schemas":{"EmptyRequest":{"type":"object","properties":{},"additionalProperties":false},"SearchVehiclesRequest":{"type":"object","required":["city","fromDate","toDate"],"properties":{"city":{"type":"string","description":"City name as returned by lumo_get_available_cities (e.g., 'Vijayawada'). Case-sensitive on the Lumo backend."},"vehicleType":{"type":"string","enum":["All","Car","Bike"],"default":"All","description":"'All', 'Car', or 'Bike'. Default 'All' returns every vehicle type."},"fromDate":{"type":"string","description":"Trip start in ISO format `YYYY-MM-DDTHH:mm:ss` (e.g., '2026-05-20T10:00:00'). Local time, no offset."},"toDate":{"type":"string","description":"Trip end in ISO format `YYYY-MM-DDTHH:mm:ss`. Must be after fromDate."},"lat":{"type":"number","description":"Optional pickup latitude for proximity ranking. Defaults to the city centroid when omitted."},"lng":{"type":"number","description":"Optional pickup longitude — paired with lat."},"maxResults":{"type":"integer","minimum":1,"maximum":50,"default":10,"description":"Cap on results returned to Claude (raw upstream may return many more — we truncate to keep responses focused)."}},"additionalProperties":false},"GetVehicleDetailsRequest":{"type":"object","required":["vehicleHashCode"],"properties":{"vehicleHashCode":{"type":"string","description":"Stable opaque vehicle identifier returned by lumo_search_vehicles (e.g., '553220329')."}},"additionalProperties":false},"CheckAvailabilityRequest":{"type":"object","required":["vehicleHashCode","fromDate","toDate"],"properties":{"vehicleHashCode":{"type":"string"},"fromDate":{"type":"string","description":"ISO `YYYY-MM-DDTHH:mm:ss` trip start."},"toDate":{"type":"string","description":"ISO `YYYY-MM-DDTHH:mm:ss` trip end."}},"additionalProperties":false},"CitiesResponse":{"type":"object","properties":{"cities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"rentals":{"type":"boolean"},"rides":{"type":"boolean"},"distanceLimitApplicable":{"type":"string"}}}},"count":{"type":"integer"}}},"SearchVehiclesResponse":{"type":"object","properties":{"vehicles":{"type":"array","items":{"type":"object","properties":{"vehicleHashCode":{"type":"string"},"manufacturer":{"type":"string"},"model":{"type":"string"},"vehicleType":{"type":"string"},"fuelType":{"type":"string"},"transmissionType":{"type":"string"},"numberOfSeats":{"type":["integer","null"]},"streetAddress":{"type":"string"},"city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"minBookingDuration":{"type":["string","null"]},"maxBookingDuration":{"type":["string","null"]},"driverAvailability":{"type":["string","null"]},"lateNightBooking":{"type":["string","null"]},"imageUrl":{"type":["string","null"]}}}},"count":{"type":"integer"},"truncated":{"type":"boolean"}}},"VehicleDetailsResponse":{"type":"object","properties":{"vehicle":{"type":"object"}}},"CheckAvailabilityResponse":{"type":"object","properties":{"available":{"type":"boolean"},"reason":{"type":["string","null"]},"vehicleHashCode":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Request validation failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"}}}}}},"VendorError":{"description":"Upstream Lumo Rentals API returned an error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}}}}}