{
  "version": "1.3",
  "last_updated": "2026-08-07",
  "name": "Cria.al",
  "description": "Car-rental marketplace connecting travelers with verified, active local providers in Albania, with 17 configured pickup and return service-area codes. Live availability depends on current provider coverage.",
  "url": "https://cria.al",
  "type": "marketplace",
  "industry": "car_rental",
  "marketplace_disclosure": {
    "role": "Cria.al operates the marketplace, facilitates bookings, and processes the online payment. It is not the rental provider.",
    "rental_agreement": "The rental agreement is concluded directly between the traveler and the rental provider (lessor); Cria.al is not a party to it.",
    "provider_responsibilities": [
      "Delivering the agreed vehicle at the agreed date, time, and location",
      "Vehicle condition, roadworthiness, and legal compliance",
      "Insurance coverage offered with the rental",
      "Fulfilment of the rental agreement"
    ],
    "platform_remedy": "If a provider cancels an accepted reservation or provides no vehicle at all, Cria.al refunds the refundable amounts paid online through the platform for that reservation. The payment-processing transaction fee is non-refundable under the Cancellation and Refund Policy. If the provider supplies a different or substitute vehicle, that counts as the service being provided and no refund is owed by Cria.al.",
    "liability_limit": "Cria.al does not pay compensation, damages, or replacement, transport, or accommodation costs beyond the applicable refund. Further claims must be directed to the provider."
  },
  "languages": ["en", "sq", "de", "fr", "it", "es", "pl"],
  "default_language": "en",
  "currency": "EUR",
  "contact": {
    "page": "https://cria.al/contact-us",
    "email": "info@cria.al"
  },
  "organization": {
    "location": {
      "city": "Tirana",
      "country": "AL"
    },
    "social": [
      "https://www.facebook.com/crialbania",
      "https://www.instagram.com/crialbania",
      "https://www.tiktok.com/@crialbania",
      "https://www.x.com/crialbania",
      "https://www.youtube.com/@crialbania",
      "https://www.linkedin.com/company/cria-al/",
      "https://www.pinterest.com/crialbania/",
      "https://www.threads.net/@crialbania"
    ]
  },
  "service_areas": {
    "count": 17,
    "availability_note": "These are the platform's configured service-area codes. The locations currently offered in search depend on active providers and may be fewer than 17.",
    "codes": {
      "tia": "Tirana International Airport",
      "kf": "Kukës International Airport",
      "tirana": "Tirana",
      "durres": "Durrës",
      "vlore": "Vlorë",
      "sarande": "Sarandë",
      "fier": "Fier",
      "lushnje": "Lushnje",
      "shkoder": "Shkodër",
      "lezhe": "Lezhë",
      "berat": "Berat",
      "diber": "Dibër",
      "elbasan": "Elbasan",
      "gjirokaster": "Gjirokastër",
      "korce": "Korçë",
      "pogradec": "Pogradec",
      "kukes": "Kukës"
    }
  },
  "resources": {
    "ai_hub": "https://cria.al/ai",
    "llms_txt": "https://cria.al/llms.txt",
    "llms_full_txt": "https://cria.al/llms-full.txt",
    "ai_context_json": "https://cria.al/.well-known/ai-context.json",
    "public_knowledge_index": "https://cria.al/knowledge/index.md",
    "public_knowledge_manifest": "https://cria.al/knowledge/manifest.json",
    "sitemap_index": "https://cria.al/sitemap.xml",
    "english_car_sitemap": "https://cria.al/sitemaps/en/sitemap_cars.xml",
    "blog_feed": "https://cria.al/blog/feed",
    "robots": "https://cria.al/robots.txt"
  },
  "agent_contract": {
    "purpose": "Navigate the traveler to a live Cria.al car list, verified car profile, or supported checkout handoff. Do not replace those pages with an agent-generated quote.",
    "workflow": {
      "no_selected_car": "Send the traveler to a filtered car list.",
      "specific_car": "Send the traveler to the verified live car profile.",
      "ready_to_book": "When a verified car, both locations, and exact future pickup and return datetimes are known, send the traveler to /checkout/start."
    },
    "price_rule": "Never calculate, estimate, mark up, or reconstruct a price or fee. Only repeat a value just read from a live Cria.al page, link to its source, and treat checkout as final.",
    "availability_rule": "Never promise availability. The live booking flow validates it.",
    "options_rule": "Never independently choose or manually price insurance or add-ons. Availability, mandatory state, quantity, daily or total charge type, and price vary by car and provider. When the traveler explicitly requests full or partial insurance, border crossing, a child seat, or unlimited kilometres, those search filters are stateful: the site includes one unit in the displayed trip total and carries it selected into checkout. Never synthesize a direct checkout addons parameter.",
    "responsibility_rule": "Never promise that Cria.al will pay compensation, damages, or costs beyond the applicable refund of refundable online amounts. The payment-processing transaction fee is non-refundable. Vehicle delivery and rental fulfilment are the provider's responsibility; see marketplace_disclosure and the terms and cancellation policy pages.",
    "driver_age_rule": "Separate platform eligibility from driver eligibility. Platform users must be at least 18. Each provider sets the selected vehicle's minimum driver age, and the live booking requirements are final. The new_driver=1 filter tests only a 21-year-old reference scenario; it is not a platform-wide minimum.",
    "advance_notice_rule": "A pickup dated in August must be requested at least 24 hours before pickup, so the pickup datetime must be at least 24 hours after the moment the request is made. This is a rolling 24 hours, not a calendar-day cutoff. The rule follows the pickup date, not the request date: it applies to an August pickup requested in any earlier month, and does not apply to a September pickup requested in August. Outside August there is no advance-notice requirement and a same-day pickup may be requested. This is a request-timing rule only; it is separate from any minimum rental period or cancellation deadline, and satisfying it does not mean the vehicle is available.",
    "fallback": "If a car slug or required checkout value is missing or unverified, use the filtered list or verified car profile instead of constructing checkout."
  },
  "integration": {
    "search_url_builder": {
      "purpose": "Build a browser URL for live inventory with supported filters. Search results are not a guaranteed reservation or final quote.",
      "base_url": "https://cria.al/rent-a-car/",
      "localized_paths": {
        "en": "/rent-a-car/",
        "sq": "/sq/makine-me-qera/",
        "de": "/de/auto-mieten/",
        "fr": "/fr/louer-une-voiture/",
        "it": "/it/autonoleggio/",
        "es": "/es/alquiler-de-coches/",
        "pl": "/pl/wynajem-samochodow/"
      },
      "parameter_rule": "Parameter names and values are not translated. Multi-value filters use comma-separated values.",
      "parameters": {
        "pickup-location": {
          "type": "string",
          "values": ["tia", "kf", "tirana", "durres", "vlore", "sarande", "fier", "lushnje", "shkoder", "lezhe", "berat", "diber", "elbasan", "gjirokaster", "korce", "pogradec", "kukes"]
        },
        "return-location": {
          "type": "string",
          "description": "Uses the same location codes as pickup-location."
        },
        "pickup-date": {"type": "string", "format": "YYYY-MM-DD"},
        "pickup-time": {"type": "string", "format": "HH:MM"},
        "return-date": {"type": "string", "format": "YYYY-MM-DD"},
        "return-time": {"type": "string", "format": "HH:MM"},
        "min": {"type": "number", "unit": "EUR", "description": "Minimum displayed trip total for the searched dates."},
        "max": {"type": "number", "unit": "EUR", "description": "Maximum displayed trip total for the searched dates."},
        "brand": {"type": "string", "multiple": true, "description": "Use live brand names."},
        "category": {"type": "string", "multiple": true, "values": ["small", "medium", "large", "estate", "suv", "suv_4x4", "van", "luxury"]},
        "fuel": {"type": "string", "multiple": true, "values": ["diesel", "gasoline", "lpg", "gasoline_lpg", "hybrid", "electric"]},
        "transmission": {"type": "string", "multiple": true, "values": ["at", "mt", "am"]},
        "seats": {"type": "string", "multiple": true, "values": ["2", "4", "5", "6", "7", "8", "9"]},
        "manufacture_year": {"type": "integer", "description": "Minimum manufacture year."},
        "deposit": {"type": "string", "values": ["yes", "no"], "description": "Whether the car has a positive deposit amount."},
        "insurance": {"type": "string", "values": ["full", "partial", "none"], "description": "full or partial requires that tier, includes one unit in the displayed trip total, and carries an optional tier selected into checkout. none matches cars without either optional tier and selects nothing."},
        "border_crossing": {"type": "string", "multiple": true, "values": ["me", "xk", "mk", "gr", "hr", "ba", "rs"], "value_labels": {"me": "Montenegro", "xk": "Kosovo", "mk": "North Macedonia", "gr": "Greece", "hr": "Croatia", "ba": "Bosnia and Herzegovina", "rs": "Serbia"}, "description": "Car must permit every requested country. Includes the border-crossing option in the displayed trip total and carries it selected into checkout; provider authorization is still required."},
        "child_seat": {"type": "string", "values": ["yes", "no"], "description": "yes requires the option, includes one child seat in the displayed trip total, and carries it selected into checkout. no matches cars without the option and selects nothing."},
        "unlimited_kilometres": {"type": "string", "values": ["yes", "no"], "description": "yes requires the option, includes it in the displayed trip total, and carries it selected into checkout. no matches cars without the option and selects nothing."},
        "new_driver": {"type": "string", "values": ["1"], "description": "Tests a 21-year-old reference scenario against provider minimum-age rules. It is not a platform-wide minimum and does not prove driver eligibility."}
      },
      "ui_defaults_warning": "The public UI may supply default dates, times, or location when omitted. Agents must ask for missing travel details rather than treating UI defaults as user instructions.",
      "landing_pages": {
        "no_credit_card": "/rent-a-car/no-credit-card",
        "low_or_no_deposit": "/rent-a-car/low-no-deposit",
        "economy": "/rent-a-car/economy",
        "seven_seater": "/rent-a-car/7-seater",
        "suv_4x4": "/rent-a-car/suv-4x4",
        "automatic": "/rent-a-car/automatic",
        "tirana_airport": "/rent-a-car/tirana-airport",
        "city_template": "/rent-a-car/{location_code}"
      },
      "intent_rule": "No credit card and no deposit are different intents. Use the corresponding dedicated landing page; do not substitute deposit=no for a no-credit-card request.",
      "examples_are_templates": true,
      "examples": [
        {
          "request": "Automatic SUV at confirmed Tirana Airport dates and times",
          "url_template": "https://cria.al/rent-a-car/?pickup-location=tia&pickup-date={future_pickup_date}&pickup-time={pickup_time}&return-date={future_return_date}&return-time={return_time}&category=suv,suv_4x4&transmission=at"
        },
        {
          "request": "One-way search from Tirana Airport to Vlore",
          "url_template": "https://cria.al/rent-a-car/?pickup-location=tia&return-location=vlore&pickup-date={future_pickup_date}&pickup-time={pickup_time}&return-date={future_return_date}&return-time={return_time}"
        }
      ]
    },
    "car_profile": {
      "purpose": "Review one real car's current details, policies, provider service areas and payment methods, displayed rates, deposit, insurance and extra-service capabilities, and availability form.",
      "url_template": "https://cria.al/rent-a-car/{verified_car_slug}",
      "slug_rule": "Treat the slug as opaque. Use only a live list link, real Cria.al car URL, user-provided Cria.al car URL, or live car sitemap. Never construct or modify it.",
      "price_rule": "Do not calculate a trip total from profile values."
    },
    "checkout_handoff": {
      "purpose": "Send the traveler into the supported live booking flow after every required value is verified. Checkout validates the request and shows the authoritative itemized result.",
      "base_url": "https://cria.al/checkout/start",
      "localized_paths": {
        "en": "/checkout/start",
        "sq": "/sq/checkout/start",
        "de": "/de/checkout/start",
        "fr": "/fr/checkout/start",
        "it": "/it/checkout/start",
        "es": "/es/checkout/start",
        "pl": "/pl/checkout/start"
      },
      "parameters": {
        "car": {"type": "string", "required": true, "description": "Opaque verified car slug."},
        "pickup-location": {"type": "string", "required": true, "description": "Confirmed code served by the selected provider."},
        "return-location": {"type": "string", "required": true, "description": "Confirmed code served by the selected provider."},
        "pickup-datetime": {"type": "string", "required": true, "format": "YYYY-MM-DDTHH:MM", "description": "Future pickup date and time. When the pickup date falls in August, it must also be at least 24 hours after the moment the request is made; see agent_contract.advance_notice_rule."},
        "return-datetime": {"type": "string", "required": true, "format": "YYYY-MM-DDTHH:MM", "description": "Return date and time later than pickup."}
      },
      "agent_generated_options": "Do not add an addons parameter to a direct checkout URL. The application reserves it for state carried from the live car list; agents must not synthesize it.",
      "guest_rule": "Guests can continue through a short identity step. Do not require login before using the handoff.",
      "direct_checkout_rule": "Never link directly to /checkout; use /checkout/start.",
      "examples_are_templates": true,
      "examples": [
        {
          "request": "Open the supported booking handoff for a verified car",
          "url_template": "https://cria.al/checkout/start?car={verified_car_slug}&pickup-location={confirmed_pickup_code}&return-location={confirmed_return_code}&pickup-datetime={future_pickup_datetime}&return-datetime={future_return_datetime}"
        }
      ]
    }
  },
  "authoritative_pages": {
    "public_knowledge": "https://cria.al/knowledge/index.md",
    "car_list": "https://cria.al/rent-a-car",
    "car_profile_template": "https://cria.al/rent-a-car/{verified_car_slug}",
    "booking_guide": "https://cria.al/how-to-book-a-car",
    "faq": "https://cria.al/faqs",
    "cancellation_policy": "https://cria.al/cancellation-and-refund-policy",
    "terms": "https://cria.al/terms-and-conditions",
    "privacy": "https://cria.al/privacy-policy",
    "contact": "https://cria.al/contact-us",
    "trip_planner": "https://cria.al/trip-planner",
    "rental_businesses": "https://cria.al/lessors"
  }
}
