{
  "version": "1.0",
  "last_updated": "2026-08-13",
  "name": "LocalWheels",
  "site_name": "LocalWheels Albania",
  "description": "Peer-to-peer car rental & transfers in Albania — verified hosts & drivers, EUR prices, Tirana Airport & coast",
  "marketplace_disclosure": "LocalWheels is a peer-to-peer marketplace. Car rental agreements are between the traveller and the host. Private transfer rides are fulfilled by verified independent drivers. LocalWheels is not a traditional rental-counter company.",
  "market": {
    "id": "al",
    "country_code": "AL",
    "area_served": "Albania",
    "currency": "EUR",
    "currency_symbol": "€",
    "timezone": "Europe/Tirane"
  },
  "languages": [
    "en",
    "sq",
    "de",
    "fr",
    "it",
    "es",
    "pl",
    "nl",
    "he",
    "ar"
  ],
  "contact": {
    "email": "info@local-wheels.com",
    "phone_display": "+355 68 332 2261",
    "phone_e164": "+355683322261",
    "url": "https://www.local-wheels.com/contact"
  },
  "organization": {
    "name": "LocalWheels Albania",
    "url": "https://www.local-wheels.com",
    "area_served": "Albania"
  },
  "resources": {
    "ai_hub": "https://www.local-wheels.com/ai",
    "llms_txt": "https://www.local-wheels.com/llms.txt",
    "llms_full_txt": "https://www.local-wheels.com/llms-full.txt",
    "ai_context": "https://www.local-wheels.com/.well-known/ai-context.json",
    "knowledge_index": "https://www.local-wheels.com/knowledge/index.md",
    "knowledge_manifest": "https://www.local-wheels.com/knowledge/manifest.json",
    "ai_data_hub": "https://www.local-wheels.com/ai-data",
    "public_cars_api_docs": "https://www.local-wheels.com/docs/public-cars-api",
    "sitemap": "https://www.local-wheels.com/sitemap.xml",
    "robots": "https://www.local-wheels.com/robots.txt",
    "terms": "https://www.local-wheels.com/terms",
    "privacy": "https://www.local-wheels.com/privacy",
    "faq": "https://www.local-wheels.com/faq",
    "tours": "https://www.local-wheels.com/tours"
  },
  "agent_contract": {
    "summary": "Route travellers to live LocalWheels search, transfer, or Albania /tours planner pages. Never invent prices, availability, car IDs, or location slugs. Prefer public APIs and live pages for totals.",
    "car_rental": [
      "Build a filtered /search URL with real query params (location, dates as ISO, filters).",
      "Prefer GET /api/public/ai/car-recommendations with the same params for trip totals, images, and book links.",
      "Car IDs are opaque Prisma cuids from live inventory — never invent IDs or slugs.",
      "Handoff to booking on /cars/{verified_id} with trip query params (there is no /checkout/start).",
      "Guest checkout is available for cars (no prior account required)."
    ],
    "transfers": [
      "Prefill /transfers with from, to, at, passengers, and optional lat/lng / driverProfileId.",
      "Drivers send offers; travellers accept and pay the offer total online.",
      "Guest checkout is available for transfers."
    ],
    "tours": [
      "Albania trip planner at /tours: pick curated POIs on a map, get an AI itinerary, select a car in a side panel, and complete checkout on the same page.",
      "GET /api/tours/pois for the public POI catalog; POST /api/tours/plan for day-by-day itineraries (includes totalDistanceKm).",
      "With professional driver: rental Vehicles and transfer DriverVehicles with professionalDriverAvailable, toursPricePerDayEur > 0, and fuelConsumptionLPer100Km. Trip total = package × days + fuel (itinerary km × L/100km / 100 × €2/L) − €50 last-day hotel deduct. Average/day = (package×days + fuel) / days. Self-drive uses rental-for-dates only (no fuel, no hotel deduct).",
      "Rental cars: reservation reuses POST /api/bookings and POST /api/bookings/guest with required renterPhone; tours checkout sends tourItinerary + pickup/dropoff labels + tourDistanceKm + tourPassengers (self-drive and with-driver). With-driver also sends professionalDriverSelected. Transfer chauffeur DriverVehicle suggestions hand off to /transfers (not rental booking). After request payment, tour emails attach a branded itinerary PDF."
    ],
    "pricing_rules": [
      "Do not invent daily rates, trip totals, deposits, or fees.",
      "Quote only values returned by live pages or public APIs for the stated filters/dates.",
      "If live data is unavailable, link to /search, /transfers, /tours, or /ai-data instead of guessing."
    ]
  },
  "search_url_builder": {
    "path": "/search",
    "example": "https://www.local-wheels.com/search?location=tirana-airport&pickupAt=2026-07-01T10:00:00.000Z&returnAt=2026-07-08T10:00:00.000Z",
    "params": {
      "location": "Pickup location slug (see location_slugs or GET /api/locations)",
      "dropoffLocation": "Optional dropoff location slug",
      "pickupAt": "ISO-8601 datetime",
      "returnAt": "ISO-8601 datetime",
      "category": "VehicleCategory enum value when filtering",
      "transmission": "manual | automatic",
      "childSeats": "integer 0–12",
      "outsideCountry": "1 when cross-border requested",
      "fullInsurance": "1 when only listings with full insurance",
      "professionalDriver": "1 when only listings offering a professional chauffeur",
      "features": "comma-separated from: ac, cabriolet, fourByFour, bluetooth, bigTrunk, wifi, navigator, childSeat, additionalDriver, roofBox, roadAssistance, hotelAirportDelivery",
      "seatsMin": "minimum seats",
      "fuelType": "FuelType enum value",
      "q": "make/model title search (max 48 chars)",
      "sort": "default price_asc",
      "yearMin": "optional",
      "yearMax": "optional",
      "smallSuitcasesMin": "optional",
      "bigSuitcasesMin": "optional",
      "engineCcMin": "optional",
      "engineCcMax": "optional"
    }
  },
  "car_handoff": {
    "path_template": "/cars/{verified_car_id}",
    "note": "Booking starts on the car page. There is no /checkout/start route. Use only IDs from live search/API responses.",
    "query_params": [
      "pickupAt",
      "returnAt",
      "location",
      "dropoffLocation",
      "childSeats",
      "outsideCountry",
      "fullInsurance",
      "professionalDriver",
      "voucher",
      "paymentMode",
      "payStep1",
      "payStep2",
      "payStep3"
    ],
    "example": "https://www.local-wheels.com/cars/{verified_car_id}?pickupAt=2026-07-01T10:00:00.000Z&returnAt=2026-07-08T10:00:00.000Z&location=tirana-airport"
  },
  "transfer_handoff": {
    "path": "/transfers",
    "example": "https://www.local-wheels.com/transfers?from=Tirana%20Airport&to=Saranda&at=2026-07-01T14:00:00.000Z&passengers=2",
    "params": {
      "from": "Pickup place label",
      "to": "Dropoff place label",
      "at": "ISO-8601 pickup datetime",
      "passengers": "integer passenger count",
      "fromLat": "optional latitude",
      "fromLng": "optional longitude",
      "toLat": "optional latitude",
      "toLng": "optional longitude",
      "driverProfileId": "optional preferred driver profile id (opaque cuid)"
    }
  },
  "tours_handoff": {
    "path": "/tours",
    "note": "Albania-only trip planner → AI itinerary → on-page car select + checkout (Stripe request payment).",
    "apis": {
      "pois": "https://www.local-wheels.com/api/tours/pois",
      "plan": "https://www.local-wheels.com/api/tours/plan",
      "cars": "https://www.local-wheels.com/api/tours/cars"
    },
    "with_driver_pricing": "toursPricePerDayEur × days + fuel at €2/L",
    "self_drive_pricing": "rental for dates only (no fuel)"
  },
  "location_slugs": [
    "tirana-airport",
    "tirana",
    "durres",
    "vlore",
    "saranda",
    "ksamil",
    "shkoder",
    "riviera",
    "himare",
    "berat",
    "gjirokaster",
    "korce",
    "elbasan",
    "fier",
    "kukes"
  ],
  "locations_api": "https://www.local-wheels.com/api/locations",
  "public_apis": {
    "car_recommendations": {
      "method": "GET",
      "path": "/api/public/ai/car-recommendations",
      "url": "https://www.local-wheels.com/api/public/ai/car-recommendations",
      "note": "Same query params as /search. Prefer for trip totals, images, and book links."
    },
    "cars_catalog": {
      "method": "GET",
      "path": "/api/public/cars",
      "url": "https://www.local-wheels.com/api/public/cars",
      "docs": "https://www.local-wheels.com/docs/public-cars-api"
    },
    "stats": {
      "method": "GET",
      "path": "/api/public/stats",
      "url": "https://www.local-wheels.com/api/public/stats"
    },
    "locations": {
      "method": "GET",
      "path": "/api/locations",
      "url": "https://www.local-wheels.com/api/locations"
    }
  },
  "authoritative_pages": [
    {
      "path": "/ai",
      "url": "https://www.local-wheels.com/ai",
      "role": "Human + agent hub"
    },
    {
      "path": "/search",
      "url": "https://www.local-wheels.com/search",
      "role": "Live car inventory search"
    },
    {
      "path": "/transfers",
      "url": "https://www.local-wheels.com/transfers",
      "role": "Private transfer requests"
    },
    {
      "path": "/ai-data",
      "url": "https://www.local-wheels.com/ai-data",
      "role": "Citation-friendly inventory snapshots"
    },
    {
      "path": "/ai-data/car-recommendations",
      "url": "https://www.local-wheels.com/ai-data/car-recommendations",
      "role": "HTML recommendations with trip totals"
    },
    {
      "path": "/knowledge/index.md",
      "url": "https://www.local-wheels.com/knowledge/index.md",
      "role": "Policy & product knowledge pack"
    },
    {
      "path": "/faq",
      "url": "https://www.local-wheels.com/faq",
      "role": "FAQ"
    },
    {
      "path": "/terms",
      "url": "https://www.local-wheels.com/terms",
      "role": "Legal terms"
    },
    {
      "path": "/privacy",
      "url": "https://www.local-wheels.com/privacy",
      "role": "Privacy policy"
    },
    {
      "path": "/contact",
      "url": "https://www.local-wheels.com/contact",
      "role": "Contact"
    },
    {
      "path": "/docs/public-cars-api",
      "url": "https://www.local-wheels.com/docs/public-cars-api",
      "role": "Public cars API docs"
    }
  ]
}
