# Cria.al agent reference > Runtime-grounded navigation reference for AI agents helping travelers browse and book cars on Cria.al. Cria.al is a marketplace, not a direct rental company. Last updated: 2026-07-15 ## Non-negotiable agent rule Your job is to send the traveler to the right live Cria.al page: 1. No selected car: a filtered car list. 2. Specific car under consideration: that car's verified profile. 3. Selected verified car plus exact future datetimes and locations: `/checkout/start`. Do not calculate, estimate, mark up, or reconstruct a rental price, fee, discount, delivery charge, insurance charge, deposit, or add-on total. You may repeat a value you have just read from a live Cria.al page if you link to that page and identify it as a currently displayed value. Checkout is the final authority. Do not select or preselect insurance or add-ons. Their availability, mandatory state, quantity, charge type (`daily` or `total`), and price can vary by car and provider. The live booking flow resolves them. ## 1. Filtered car list Use a list URL while the traveler is still choosing a car. The list returns matching live inventory and links each result to its real car profile or booking flow. English base URL: ```text https://cria.al/rent-a-car/?{query_parameters} ``` Localized list paths: | Language | Path | |---|---| | English | `/rent-a-car/` | | Albanian | `/sq/makine-me-qera/` | | German | `/de/auto-mieten/` | | French | `/fr/louer-une-voiture/` | | Italian | `/it/autonoleggio/` | | Spanish | `/es/alquiler-de-coches/` | | Polish | `/pl/wynajem-samochodow/` | The query-parameter names and values stay unchanged across languages. Only the path is localized. When the traveler is communicating in one of these languages, prefer the matching localized path so the live page renders in their language. ### Search parameters All values are strings in the URL. Multi-value filters use comma-separated values. | Parameter | Accepted value or format | Runtime meaning | |---|---|---| | `pickup-location` | location code | Provider must serve the pickup area. | | `return-location` | location code | When different from pickup, provider must serve both areas. | | `pickup-date` | `YYYY-MM-DD` | Used with pickup time to filter conflicting reservations and calendar blocks. | | `pickup-time` | `HH:MM` | Pickup time. | | `return-date` | `YYYY-MM-DD` | Return date. | | `return-time` | `HH:MM` | Return time. | | `min` | numeric EUR amount | Minimum currently displayed daily rate. Not a trip-total filter. | | `max` | numeric EUR amount | Maximum currently displayed daily rate. Not a trip-total filter. | | `brand` | comma-separated live brand names | Vehicle brand. | | `category` | `small`, `medium`, `large`, `estate`, `suv`, `suv_4x4`, `van`, `luxury` | Vehicle category. | | `fuel` | `diesel`, `gasoline`, `lpg`, `gasoline_lpg`, `hybrid`, `electric` | Fuel type. | | `transmission` | `at`, `mt`, `am` | Automatic, manual, or automated manual. | | `seats` | `2`, `4`, `5`, `6`, `7`, `8`, `9` | Exact seat count; multiple values may be comma-separated. | | `manufacture_year` | integer year | Minimum manufacture year. | | `deposit` | `yes` or `no` | Whether the car has a positive deposit amount. | | `insurance` | `full`, `partial`, `none` | Whether the car exposes that insurance capability. This does not select it. | | `border_crossing` | `me`, `xk`, `mk`, `gr`, `hr`, `ba`, `rs` (see Border-crossing country codes) | Car must permit every requested destination code. This does not select or price border crossing. | | `child_seat` | `yes` or `no` | Whether a child-seat option is exposed. This does not select it. | | `unlimited_kilometres` | `yes` or `no` | Whether unlimited mileage is exposed. This does not select it. | | `new_driver` | `1` | Screens provider minimum-age rules against the site's reference age of 21. It does not prove that a particular driver is eligible. | The public list UI supplies defaults when fields are omitted. An agent must not treat those UI defaults as the traveler's instructions. Ask for missing dates, times, and locations instead of silently assuming them. ### Location codes | Code | Area | |---|---| | `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 | Do not infer an airport or city. Use only a location the traveler supplied or confirmed. ### Border-crossing country codes | Code | Country | |---|---| | `me` | Montenegro | | `xk` | Kosovo | | `mk` | North Macedonia | | `gr` | Greece | | `hr` | Croatia | | `ba` | Bosnia and Herzegovina | | `rs` | Serbia | A car must permit every requested destination. This is a capability filter only; it does not select or price border crossing. ### Dedicated landing pages Prefer these site-managed landing pages for common intents: | Intent | English path | |---|---| | 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 seats | `/rent-a-car/7-seater` | | SUV or 4x4 | `/rent-a-car/suv-4x4` | | Automatic | `/rent-a-car/automatic` | | Tirana Airport | `/rent-a-car/tirana-airport` | | Specific city | `/rent-a-car/{location_code}` | Do not translate one intent into a different filter. In particular, “no credit card” and “no deposit” are separate traveler requests. Use their dedicated landing pages rather than treating them as equivalent. Query parameters may be appended to a landing page for additional filters. Example: ```text https://cria.al/rent-a-car/automatic?pickup-location=tia&pickup-date={future_pickup_date}&pickup-time=10:00&return-date={future_return_date}&return-time=12:00&seats=5 ``` Replace every placeholder with a confirmed, correctly encoded value before sharing the URL. If a necessary value is unknown, leave that filter out or ask the traveler. ### Search examples Automatic SUV at a confirmed Tirana Airport pickup: ```text 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 ``` Seven-seat diesel car whose provider permits travel to Greece: ```text https://cria.al/rent-a-car/?pickup-location={confirmed_location_code}&pickup-date={future_pickup_date}&pickup-time={pickup_time}&return-date={future_return_date}&return-time={return_time}&seats=7&fuel=diesel&border_crossing=gr ``` One-way search after both areas are confirmed: ```text 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} ``` These are templates, not bookable links until all placeholders are replaced. ## 2. Verified car profile Use a profile URL when the traveler is considering a specific car: ```text https://cria.al/rent-a-car/{verified_car_slug} ``` The slug is an opaque live identifier. Never construct, guess, or modify it. Valid sources are: - a car link from the live Cria.al list; - a real Cria.al car URL supplied by the traveler; or - the live English car sitemap at `https://cria.al/sitemaps/en/sitemap_cars.xml`. The profile is the car-specific review page. It exposes current details such as displayed rates, provider service areas and payment methods, deposit, policies, insurance and extra-service capabilities, and an availability form. Do not calculate a trip total from profile values. If the slug cannot be verified, fall back to a filtered list. Do not produce a guessed profile or checkout URL. ## 3. Checkout handoff Use `/checkout/start` only when all five required values are known and verified: | Parameter | Required | Format or source | |---|---:|---| | `car` | yes | Opaque slug from a real Cria.al car URL or live car sitemap. | | `pickup-location` | yes | Confirmed location code served by the selected car's provider. | | `return-location` | yes | Confirmed location code served by the selected car's provider. | | `pickup-datetime` | yes | Future date and time, ISO-style `YYYY-MM-DDTHH:MM`. | | `return-datetime` | yes | Later date and time, ISO-style `YYYY-MM-DDTHH:MM`. | For a round trip (pickup and return at the same place), set `return-location` to the same code as `pickup-location`. Both location fields are always required; the handoff rejects a request missing either one. English template: ```text 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} ``` Localized checkout handoff paths: | Language | Path | |---|---| | English | `/checkout/start` | | Albanian | `/sq/checkout/start` | | German | `/de/checkout/start` | | French | `/fr/checkout/start` | | Italian | `/it/checkout/start` | | Spanish | `/es/checkout/start` | | Polish | `/pl/checkout/start` | Prefer the path matching the traveler's language; the parameters and car slug are identical across languages. The handoff validates that the car slug and operation-area codes exist and that the datetimes are valid. The booking flow then applies car/provider rules and displays the authoritative itemized result. Guests may continue through a short identity step; do not tell them they must log in first. Never link directly to `/checkout`. Use `/checkout/start` so both guests and signed-in travelers enter through the supported handoff. Do not add an `addons` parameter to an agent-generated link. The application accepts that field for its own stateful flow, but agents must not synthesize or preselect it. If any required field is missing, unconfirmed, or unsupported by the selected provider, link to the verified car profile or filtered list instead. ## Price and availability rules - Never calculate a total from a daily rate and number of days. - Never add a percentage, platform fee, delivery fee, discount, deposit, insurance charge, or add-on charge yourself. - Never combine daily and total charges or apply option quantities yourself. - Never claim a car is available merely because it appears in a list. Availability can change and the booking flow is authoritative. - Never describe a filtered capability as selected or included. For example, `insurance=full` means “show cars exposing a full-insurance option,” not “add full insurance to checkout.” - Never promise a cancellation rule, minimum rental period, cross-border permission, payment method, or deposit rule across the marketplace. Read the selected car and live policy pages. - If live values cannot be read, provide the most relevant Cria.al link without inventing a number. ## What travelers should know before booking - Documents: a valid driver's license, a passport or national ID, and a payment method in the main driver's name. Requirements can vary by provider; the car page and the FAQ page are authoritative. - Driver age: the site's reference minimum driver age is 21, and some providers require higher. The exact minimum is set per provider and screened at booking; do not assure a traveler they qualify. - Cross-border travel: driving outside Albania requires Green Card insurance, and the permitted destination countries are set per car. Not all providers allow border crossing, and it must be arranged with the provider. Use the `border_crossing` filter to find cars that permit specific destinations, but confirm on the car page. ## Authoritative pages - Car list: https://cria.al/rent-a-car - Live car sitemap: https://cria.al/sitemaps/en/sitemap_cars.xml - How booking works: https://cria.al/how-to-book-a-car - Frequently asked questions: https://cria.al/faqs - Cancellation and refunds: https://cria.al/cancellation-and-refund-policy - Terms and conditions: https://cria.al/terms-and-conditions - Privacy policy: https://cria.al/privacy-policy - Contact: https://cria.al/contact-us - Trip planner: https://cria.al/trip-planner - Rental-business information: https://cria.al/lessors For provider-specific facts, the selected live car profile and checkout flow take precedence over general summaries. ## Response patterns Good: “Here is the live list filtered for an automatic five-seat car at your confirmed location and dates.” Good: “This is the verified Cria.al profile for the car you selected. Review its current policies and options there.” Good: “You supplied the car, both locations, and exact future times. This link opens Cria.al's supported checkout handoff, where the site will validate availability and show the final itemized amount.” Bad: “The daily rate is €30, so eight days plus insurance and fees will be €285.” Bad: “I selected full insurance and a child seat for you.” Bad: “This guessed car slug should open checkout.”