
Car Rental API
BetaCompare and reserve rental cars from international and local brands.
Version v0.9 · 3 endpoints
Examples use the sandbox base URL https://sandbox.flightota.com. Beta: live reservations need a connected rental supplier. Sandbox reservations are simulated and are not sent to any rental brand.
Search
Search rental cars
/car/v0/searchAvailable vehicles for a pickup and drop-off location and time.
Parameters
| Parameter | In | Description |
|---|---|---|
pickup_locationstringrequired | body | IATA code or branch ID. Example: LHR |
pickup_atdatetimerequired | body | Pickup date and time. Example: 2026-12-20T10:00:00 |
dropoff_atdatetimerequired | body | Drop-off date and time. Example: 2026-12-27T10:00:00 |
driver_ageintegerrequired | body | Age of the main driver. Example: 32 |
Errors
- 400
validation_errorOne or more request parameters are invalid. - 401
unauthorizedThe API key is missing, revoked or invalid. - 429
rate_limitedToo many requests. Retry after the time given in the Retry-After header.
curl -X POST "https://sandbox.flightota.com/car/v0/search" \
-H "Authorization: Bearer $FLIGHTOTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pickup_location": "LHR",
"pickup_at": "2026-12-20T10:00:00",
"dropoff_at": "2026-12-27T10:00:00",
"driver_age": 32
}'{
"data": {
"vehicles": [
{
"rate_id": "car_rt_01",
"category": "compact",
"example": "VW Golf or similar",
"transmission": "automatic",
"total": "289.00",
"currency": "USD"
}
]
}
}{
"error": {
"code": "validation_error",
"message": "One or more request parameters are invalid.",
"request_id": "req_01JD8Z4X2N7Q"
}
}Reservations
Create a reservation
/car/v0/reservationsReserves a vehicle rate for the main driver.
This operation creates or changes a booking with a supplier. Always send an Idempotency-Key. In production it runs only when a supplier is connected. In the sandbox it is simulated.
Parameters
| Parameter | In | Description |
|---|---|---|
Idempotency-Keystringrequired | header | Unique key (UUID v4) that makes retries safe. Reusing a key returns the original result. Example: 4f9a2c3e-6b1d-4e8a-9c7f-2d5b8e1a0c34 |
rate_idstringrequired | body | Rate identifier. |
Errors
- 400
validation_errorOne or more request parameters are invalid. - 401
unauthorizedThe API key is missing, revoked or invalid. - 429
rate_limitedToo many requests. Retry after the time given in the Retry-After header. - 409
offer_expiredThe offer is no longer valid at the supplier. Search or reprice again. - 502
supplier_unavailableThe upstream supplier did not respond. No booking was created.
curl -X POST "https://sandbox.flightota.com/car/v0/reservations" \
-H "Authorization: Bearer $FLIGHTOTA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"rate_id": "car_rt_01",
"driver": {
"given_name": "Omar",
"family_name": "Rahman",
"age": 32
}
}'{
"data": {
"reservation_id": "crs_01JDC1",
"status": "confirmed",
"confirmation": "EU-88213"
}
}{
"error": {
"code": "validation_error",
"message": "One or more request parameters are invalid.",
"request_id": "req_01JD8Z4X2N7Q"
}
}Reservations
Cancel a reservation
/car/v0/reservations/{reservation_id}/cancelCancels a car rental reservation.
This operation creates or changes a booking with a supplier. Always send an Idempotency-Key. In production it runs only when a supplier is connected. In the sandbox it is simulated.
Parameters
| Parameter | In | Description |
|---|---|---|
reservation_idstringrequired | path | Reservation identifier. Example: crs_01JDC1 |
Idempotency-Keystringrequired | header | Unique key (UUID v4) that makes retries safe. Reusing a key returns the original result. Example: 4f9a2c3e-6b1d-4e8a-9c7f-2d5b8e1a0c34 |
Errors
- 400
validation_errorOne or more request parameters are invalid. - 401
unauthorizedThe API key is missing, revoked or invalid. - 429
rate_limitedToo many requests. Retry after the time given in the Retry-After header. - 409
offer_expiredThe offer is no longer valid at the supplier. Search or reprice again. - 502
supplier_unavailableThe upstream supplier did not respond. No booking was created.
curl -X POST "https://sandbox.flightota.com/car/v0/reservations/crs_01JDC1/cancel" \
-H "Authorization: Bearer $FLIGHTOTA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"data": {
"reservation_id": "crs_01JDC1",
"status": "cancelled"
}
}{
"error": {
"code": "validation_error",
"message": "One or more request parameters are invalid.",
"request_id": "req_01JD8Z4X2N7Q"
}
}