Documentatie API
Prezentare
API public (doar în citire) pentru listarea locațiilor de preluare/predare, flotei auto, verificarea disponibilității și generarea de cotații de preț.
Solicitările (request) folosesc date în format european (DD-MM-YYYY) în câmpurile pick_up_date și delivery_date.
Răspunsurile (response) păstrează exact câmpurile implementate: de ex. pickup_date / return_date în format ISO (YYYY-MM-DD).
https://phprentacar.roLink: ; rel="service-desc"/api/v1/locations
Listează locațiile fixe de preluare/predare.
Parametri query
| Nume | Tip | Obl. | Descriere |
|---|---|---|---|
q |
string | Nu | Filtru text opțional (oraș, IATA, nume) |
cURL
Copycurl -s https://phprentacar.ro/api/v1/locations | jq .
Exemplu răspuns
Copy{
"items": [
{
"id": "clj_airport",
"name": "Cluj-Napoca International Airport",
"iata_code": "CLJ",
"address": {
"street": "Str. Traian Vuia 149",
"city": "Cluj-Napoca",
"region": "Cluj",
"postal_code": "400397",
"country_code": "RO"
},
"timezone": "Europe/Bucharest"
}
]
}
/api/v1/cars
Listează modelele; dacă trimiți date, primești și prețul total + indiciu de disponibilitate (lead price).
Parametri
| Nume | Tip | Obl. | Descriere |
|---|---|---|---|
car_id |
string | Nu | Filtrare după model |
pick_up_date |
string DD-MM-YYYY | Nu | Data preluării |
delivery_date |
string DD-MM-YYYY | Nu | Data predării |
category |
string | Nu | economy|compact|suv|minivan|premium |
transmission |
string | Nu | manual|automatic |
ac |
boolean | Nu | Aer condiționat |
cURL (cu date)
Copycurl -s "https://phprentacar.ro/api/v1/cars?pick_up_date=03-11-2025&delivery_date=20-11-2025" | jq .
Item de răspuns (exemplu)
Copy{
"id": "40",
"make": "Seat",
"model": "Ibiza",
"category": "economy",
"year": null,
"seats": null,
"doors": null,
"luggage_small": null,
"luggage_large": null,
"transmission": null,
"ac": true,
"fuel_type": null,
"features": ["usb","abs","esp"],
"images": [
{ "url": "https://phprentacar.ro/uploads/cars/big/40-seat-ibiza-s1.webp", "alt": "Seat Ibiza exterior" }
],
"lead_price": {
"pickup_date": "2025-11-03",
"return_date": "2025-11-20",
"currency": "EUR",
"price_per_day": 26,
"total_price": 442,
"availability_hint": "in_stock"
},
"jsonld": {
"@context": "https://schema.org",
"@type": "Car",
"brand": "Seat",
"model": "Ibiza"
}
}
/api/v1/cars/{car_id}
Detalii complete pentru un model.
cURL
Copycurl -s https://phprentacar.ro/api/v1/cars/108 | jq .
Răspuns (exemplu)
Copy{
"id":"108",
"make":"VW",
"model":"Passat",
"year":null,
"category":"premium",
"category_label_ro":"Family | Business",
"seats":null,
"doors":null,
"luggage_small":null,
"luggage_large":null,
"transmission":null,
"ac":true,
"fuel_type":null,
"features":["bluetooth","abs","esp","parking_sensors"],
"images":[
{"url":"https://phprentacar.ro/uploads/cars/big/108-vw-passat-b7-automat.webp","alt":"VW Passat exterior"}
],
"description":"Here comes the car description",
"included":["Asigurare RCA","Asistență rutieră 24/7","Kilometraj 200 km/zi"],
"policies":{
"mileage_policy":"200 km/zi incluse; 0.15 EUR/km după",
"fuel_policy":"La fel ca la preluare",
"deposit_amount":200,
"age_requirement":"Șofer 21+ ani, permis 2+ ani",
"cancellation_policy":"Gratuit până la 24h înainte de preluare",
"terms_url":"https://phprentacar.ro/termeni-si-conditii"
},
"base_price":{"currency":"EUR","price_per_day":35},
"extras":[],
"links":{
"self":"https://phprentacar.ro/api/v1/cars/108",
"availability":"https://phprentacar.ro/api/v1/availability?car_id=108",
"quote":"https://phprentacar.ro/api/v1/quote"
},
"jsonld":{
"@context":"https://schema.org",
"@type":"Car",
"brand":"Volkswagen",
"model":"Passat"
}
}
/api/v1/availability
Verifică disponibilitatea exactă pentru un model în intervalul dorit.
Parametri (toți necesari)
| Nume | Tip | Obl. | Descriere |
|---|---|---|---|
car_id |
string | Da | ID model |
pick_up_date |
string DD-MM-YYYY | Da | Data preluării |
delivery_date |
string DD-MM-YYYY | Da | Data predării |
cURL
Copycurl -s "https://phprentacar.ro/api/v1/availability?car_id=108&pick_up_date=03-11-2025&delivery_date=20-11-2025" | jq .
Răspuns (exemplu)
Copy{
"car_id": "108",
"pickup_date": "2025-11-03",
"return_date": "2025-11-20",
"available": true,
"remaining_units": 2,
"notes": "Available to reserve",
"jsonld": {
"@context": "https://schema.org",
"@type": "Offer",
"itemOffered": { "@type": "Car", "brand": "Volkswagen", "model": "Passat" },
"availability": "https://schema.org/InStock"
}
}
/api/v1/quote
Calculează prețul final pentru perioada selectată. Toate extra-opțiunile (dacă sunt trimise) sunt tarifate pe zi.
Body (JSON)
| Nume | Tip | Obl. | Descriere |
|---|---|---|---|
car_id |
string | Da | ID model |
pick_up_date |
string DD-MM-YYYY | Da | Data preluării |
delivery_date |
string DD-MM-YYYY | Da | Data predării |
pickup_time |
string HH:MM | Nu | Opțional |
return_time |
string HH:MM | Nu | Opțional |
currency |
string | Nu | Implicit EUR |
extras |
object (map) | Nu | Ex.: {"gps":1,"child_seat":2} |
cURL
Copycurl -s -X POST https://phprentacar.ro/api/v1/quote
-H "Content-Type: application/json"
-d '{"car_id":"88","pick_up_date":"03-11-2025","delivery_date":"20-11-2025"}' | jq .
Răspuns (exemplu)
Copy{
"car_id": "88",
"pickup_date": "2025-11-03",
"return_date": "2025-11-20",
"rental_days": 17,
"currency": "EUR",
"price_per_day": 37,
"base_total": 629,
"extras_total": 0,
"total_price": 629,
"breakdown": [
{ "label": "Base", "detail": "37 × 17 zile / days", "amount": 629, "currency": "EUR" }
]
}
Erori uzuale
Copy{
"error": "bad_request",
"message": "car_id, pick_up_date and delivery_date are required (DD-MM-YYYY)."
}
Copy{
"error": "conflict",
"message": "Car not available for the requested interval."
}
Contact & Termeni
Suport: office@phprentacar.ro
