https://www.localrydes.com/api/v2/external
| Environment | Base URL | Status |
|---|---|---|
| DEV / STAGING | https://www.dev.localrydes.com/api/v2/external |
Testing |
| PRODUCTION Current | https://www.localrydes.com/api/v2/external |
Live |
To access LocalRydes B2B API, you need to register for an agency account. Agencies can create their own account directly through our website. Follow these steps to get started:
Visit the registration page and select "Travel Agent" as your account type.
Registration URL: https://www.localrydes.com/user/registration?user_role=agent
Fill in the registration form with your personal details and company information.
Our team will review and verify your agency account. This typically takes 1-2 business days.
Once approved, log in to your agency portal and generate your API keys to start integrating.
You can register your agency account instantly at https://www.localrydes.com/user/registration?user_role=agent. Simply choose "Travel Agent" during account creation, complete the form with your details, and our team will review your application within 1-2 business days.
To complete your agency registration, please prepare the following information:
Earn attractive commissions on every booking processed through the API
Complete access to all booking and management endpoints
Priority technical support and account management
Access to premium vehicles worldwide
Comprehensive reporting and booking analytics
Secure payment processing and settlement system
Our partnership team is here to assist you throughout the registration process.
Email: api-support@localrydes.com
Phone: +43 1 3463301
Business Hours: Monday - Friday, 9:00 AM - 6:00 PM (CET)
Once your agency account is activated, you can generate and manage API keys from your agency portal.
Production Portal: https://www.localrydes.com/login
Staging Portal: https://www.dev.localrydes.com/login
Follow these steps to generate a new API key from your agency portal:
| Component | Example | Description |
|---|---|---|
| Prefix | lr_live_ |
Indicates a production API key |
| Key ID | CMTtuurVl78jbccLs6c4Bmn69xeO... |
Unique identifier (48 characters) |
| Full Format | lr_live_[48_characters] |
Total length: 56 characters |
lr_live_...
lr_test_...
Track your API usage and performance from your agency portal dashboard:
X-RateLimit-Remaining response header to track your usage in real-time and avoid hitting rate limits.
For security reasons, only one API key can be active at any time per agency account. When you generate a new key, all previous keys are automatically deactivated with zero grace period.
Note: Plan your key rotation during low-traffic periods to minimize potential disruption.
| Issue | Possible Cause | Solution |
|---|---|---|
401 Unauthorized |
Invalid or missing API key | Verify the key is correct and included in x-api-key header |
403 Forbidden |
API key has been deactivated | Generate a new key from your portal |
429 Too Many Requests |
Rate limit exceeded | Implement rate limiting in your code or contact us for higher limits |
| Key not working after generation | Incorrect key format or extra characters | Ensure no extra spaces, quotes, or line breaks in the key |
Include your API key in the request header for all API calls using the x-api-key header:
curl -X GET "https://www.localrydes.com/api/v2/external/auth/validate-key" \
-H "x-api-key: lr_live_YOUR_API_KEY_HERE" \
-H "Content-Type: application/json"
$headers = [
'x-api-key: lr_live_YOUR_API_KEY_HERE',
'Content-Type: application/json'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.localrydes.com/api/v2/external/auth/validate-key');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const response = await fetch('https://www.localrydes.com/api/v2/external/auth/validate-key', {
method: 'GET',
headers: {
'x-api-key': 'lr_live_YOUR_API_KEY_HERE',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
headers = {
'x-api-key': 'lr_live_YOUR_API_KEY_HERE',
'Content-Type': 'application/json'
}
response = requests.get('https://www.localrydes.com/api/v2/external/auth/validate-key', headers=headers)
data = response.json()
print(data)
When your API key is valid, you'll receive a successful response like this:
{
"status": "success",
"statusCode": 200,
"message": "API key validated successfully",
"data": {
"agency_id": 38,
"company_name": "Your Agency Name",
"status": "active",
"api_key_name": "Your API Key Name",
"commission_rate": 15,
"rate_limit": {
"per_minute": 60,
"per_day": 10000,
"remaining_today": 10000
},
"key_info": {
"created_at": "2026-02-05T06:33:01+00:00",
"last_used_at": "2026-02-10T05:08:32+00:00",
"is_active": true
}
}
}
| Environment | Base URL | Portal URL | Usage |
|---|---|---|---|
| DEV | https://www.dev.localrydes.com/api/v2/external |
https://www.dev.localrydes.com/login |
Testing and staging environment |
| PRODUCTION | https://www.localrydes.com/api/v2/external |
https://www.localrydes.com/login |
Live production environment |
Header Name: x-api-key
Format: lr_live_XXXXXXXXXXXXXXXX
x-api-key: lr_live_YOUR_API_KEY_HERE
Content-Type: application/json
Endpoint: /auth/validate-key
Validates your API key and returns agency information, commission rates, and usage statistics.
curl --location 'https://www.localrydes.com/api/v2/external/auth/validate-key' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE'
{
"status": "success",
"statusCode": 200,
"message": "API key validated successfully",
"data": {
"agency_id": 123,
"company_name": "Your Agency Name",
"status": "active",
"api_key_name": "Your API Key Name",
"commission_rate": 15.00,
"rate_limit": {
"per_minute": 60,
"per_day": 10000,
"remaining_today": 10000
},
"key_info": {
"created_at": "2026-02-05T06:33:01+00:00",
"last_used_at": "2026-02-10T05:08:32+00:00",
"is_active": true
}
}
}
Endpoint: /search-available-vehicles
Search for available vehicles based on trip details including pickup/dropoff locations, date, time, and passenger count. Supports both transfer and hourly bookings with optional waypoints.
| Parameter | Type | Required | Description |
|---|---|---|---|
trip_booking_type |
string | Required | transfer or hourly |
pickup_date |
string | Required | Format: YYYY/MM/DD (e.g., 2026/02/09) |
pickup_time |
string | Required | Format: HH:MM 24-hour (e.g., 10:00) |
passengers |
string|int | Required | Number of passengers (1-50) |
bags |
string|int | Required | Number of bags (0-50) |
pick_up_location |
object | Required | Pickup location details (see Location Object below) |
drop_off_location |
object | Optional | Required for transfer bookings |
booking_hour |
string|int | Optional | Required for hourly bookings (2-24 hours) |
itineraries |
array | Optional | Waypoints/stops between pickup and dropoff |
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Required | Google Place ID |
google_place_id |
string | Required | Google Place ID (same as id) |
name |
string | Required | Location name |
lat |
string | Required | Latitude |
lng |
string | Required | Longitude |
address |
string | Required | Full address |
isFavorite |
string | Optional | "0" or "1" |
type |
string | Optional | Location type identifier |
note |
string|null | Optional | Additional notes |
types |
array | Optional | Google place types (e.g., ["airport", "establishment"]) |
curl --location 'https://www.localrydes.com/api/v2/external/search-available-vehicles' \
--header 'Content-Type: application/json' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE' \
--data '{
"trip_booking_type": "transfer",
"pickup_date": "2026/02/09",
"pickup_time": "14:30",
"passengers": "2",
"bags": "1",
"pick_up_location": {
"id": "ChIJvY9HupHGVTcR7BXrcRP3s9E",
"google_place_id": "ChIJvY9HupHGVTcR7BXrcRP3s9E",
"name": "Hazrat Shahjalal International Airport",
"lat": "23.8434344",
"lng": "90.4029252",
"address": "Airport - Dakshinkhan Rd, Dhaka 1229, Bangladesh",
"isFavorite": "0",
"type": "1",
"note": null,
"types": ["airport", "establishment", "point_of_interest"]
},
"itineraries": [
{
"id": "ChIJ2RX3J2FW_jkRdqT0utNmIgQ",
"google_place_id": "ChIJ2RX3J2FW_jkRdqT0utNmIgQ",
"name": "Magura Bus Terminal",
"lat": "23.4973995",
"lng": "89.4322942",
"address": "Magura, Bangladesh",
"isFavorite": "0",
"type": "2",
"note": null,
"types": ["establishment", "point_of_interest"]
},
{
"id": "ChIJ0xHt6_-W_jkRVrZAv-werWY",
"google_place_id": "ChIJ0xHt6_-W_jkRVrZAv-werWY",
"name": "Kushtia Polytechnic Institute",
"lat": "23.9015918",
"lng": "89.1340649",
"address": "Mir Mosharaf Hossain Rd, Kushtia, Bangladesh",
"isFavorite": "0",
"type": "2",
"note": null,
"types": ["establishment", "point_of_interest"]
}
],
"drop_off_location": {
"id": "ChIJKZ-5WkUX_zkR29gWNCGKmZI",
"google_place_id": "ChIJKZ-5WkUX_zkR29gWNCGKmZI",
"name": "Jessore Airport",
"lat": "23.1771288",
"lng": "89.16071740000001",
"address": "Airport Bypass Rd, Jessore 7400, Bangladesh",
"isFavorite": "0",
"type": "3",
"note": null,
"types": ["airport", "establishment", "point_of_interest"]
}
}'
curl --location 'https://www.localrydes.com/api/v2/external/search-available-vehicles' \
--header 'Content-Type: application/json' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE' \
--data '{
"trip_booking_type": "hourly",
"pickup_date": "2026/02/09",
"pickup_time": "10:00",
"booking_hour": "6",
"passengers": "2",
"bags": "1",
"pick_up_location": {
"id": "ChIJz4dBR-a4VTcRIpVlVTd407M",
"google_place_id": "ChIJz4dBR-a4VTcRIpVlVTd407M",
"name": "Dhaka Medical College Hospital",
"lat": "23.72564",
"lng": "90.3973998",
"address": "Secretariat Rd, Dhaka 1000, Bangladesh",
"isFavorite": "0",
"type": "1",
"note": null,
"types": ["establishment", "health", "hospital", "point_of_interest"]
},
"itineraries": [
{
"id": "ChIJ2RX3J2FW_jkRdqT0utNmIgQ",
"google_place_id": "ChIJ2RX3J2FW_jkRdqT0utNmIgQ",
"name": "Magura Bus Terminal",
"lat": "23.4973995",
"lng": "89.4322942",
"address": "Magura, Bangladesh",
"isFavorite": "0",
"type": "2",
"note": null,
"types": ["establishment", "point_of_interest"]
},
{
"id": "ChIJ0xHt6_-W_jkRVrZAv-werWY",
"google_place_id": "ChIJ0xHt6_-W_jkRVrZAv-werWY",
"name": "Kushtia Polytechnic Institute",
"lat": "23.9015918",
"lng": "89.1340649",
"address": "Mir Mosharaf Hossain Rd, Kushtia, Bangladesh",
"isFavorite": "0",
"type": "2",
"note": null,
"types": ["establishment", "point_of_interest"]
}
],
"drop_off_location": {
"id": "ChIJKZ-5WkUX_zkR29gWNCGKmZI",
"google_place_id": "ChIJKZ-5WkUX_zkR29gWNCGKmZI",
"name": "Jessore Airport",
"lat": "23.1771288",
"lng": "89.16071740000001",
"address": "Airport Bypass Rd, Jessore 7400, Bangladesh",
"isFavorite": "0",
"type": "3",
"note": null,
"types": ["airport", "establishment", "point_of_interest"]
}
}'
<?php
$apiKey = 'lr_live_YOUR_API_KEY_HERE';
$baseUrl = 'https://www.localrydes.com/api/v2/external';
$data = [
'trip_booking_type' => 'transfer',
'pickup_date' => '2026/02/09',
'pickup_time' => '14:30',
'passengers' => '2',
'bags' => '1',
'pick_up_location' => [
'id' => 'ChIJvY9HupHGVTcR7BXrcRP3s9E',
'google_place_id' => 'ChIJvY9HupHGVTcR7BXrcRP3s9E',
'name' => 'Hazrat Shahjalal International Airport',
'lat' => '23.8434344',
'lng' => '90.4029252',
'address' => 'Airport - Dakshinkhan Rd, Dhaka 1229, Bangladesh',
'isFavorite' => '0',
'type' => '1',
'note' => null,
'types' => ['airport', 'establishment', 'point_of_interest']
],
'itineraries' => [
[
'id' => 'ChIJ2RX3J2FW_jkRdqT0utNmIgQ',
'google_place_id' => 'ChIJ2RX3J2FW_jkRdqT0utNmIgQ',
'name' => 'Magura Bus Terminal',
'lat' => '23.4973995',
'lng' => '89.4322942',
'address' => 'Magura, Bangladesh',
'isFavorite' => '0',
'type' => '2',
'note' => null,
'types' => ['establishment', 'point_of_interest']
],
[
'id' => 'ChIJ0xHt6_-W_jkRVrZAv-werWY',
'google_place_id' => 'ChIJ0xHt6_-W_jkRVrZAv-werWY',
'name' => 'Kushtia Polytechnic Institute',
'lat' => '23.9015918',
'lng' => '89.1340649',
'address' => 'Mir Mosharaf Hossain Rd, Kushtia, Bangladesh',
'isFavorite' => '0',
'type' => '2',
'note' => null,
'types' => ['establishment', 'point_of_interest']
]
],
'drop_off_location' => [
'id' => 'ChIJKZ-5WkUX_zkR29gWNCGKmZI',
'google_place_id' => 'ChIJKZ-5WkUX_zkR29gWNCGKmZI',
'name' => 'Jessore Airport',
'lat' => '23.1771288',
'lng' => '89.16071740000001',
'address' => 'Airport Bypass Rd, Jessore 7400, Bangladesh',
'isFavorite' => '0',
'type' => '3',
'note' => null,
'types' => ['airport', 'establishment', 'point_of_interest']
]
];
$ch = curl_init($baseUrl . '/search-available-vehicles');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'x-api-key: ' . $apiKey
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
if ($result['success']) {
echo "Booking ID: " . $result['data']['bookingId'] . "\n";
echo "Available Vehicles: " . count($result['data']['availableVehicles']) . "\n";
}
?>
const API_KEY = 'lr_live_YOUR_API_KEY_HERE';
const BASE_URL = 'https://www.localrydes.com/api/v2/external';
async function searchVehicles() {
const data = {
trip_booking_type: 'hourly',
pickup_date: '2026/02/09',
pickup_time: '10:00',
booking_hour: '6',
passengers: '2',
bags: '1',
pick_up_location: {
id: 'ChIJz4dBR-a4VTcRIpVlVTd407M',
google_place_id: 'ChIJz4dBR-a4VTcRIpVlVTd407M',
name: 'Dhaka Medical College Hospital',
lat: '23.72564',
lng: '90.3973998',
address: 'Secretariat Rd, Dhaka 1000, Bangladesh',
isFavorite: '0',
type: '1',
note: null,
types: ['establishment', 'health', 'hospital', 'point_of_interest']
},
itineraries: [
{
id: 'ChIJ2RX3J2FW_jkRdqT0utNmIgQ',
google_place_id: 'ChIJ2RX3J2FW_jkRdqT0utNmIgQ',
name: 'Magura Bus Terminal',
lat: '23.4973995',
lng: '89.4322942',
address: 'Magura, Bangladesh',
isFavorite: '0',
type: '2',
note: null,
types: ['establishment', 'point_of_interest']
}
],
drop_off_location: {
id: 'ChIJKZ-5WkUX_zkR29gWNCGKmZI',
google_place_id: 'ChIJKZ-5WkUX_zkR29gWNCGKmZI',
name: 'Jessore Airport',
lat: '23.1771288',
lng: '89.16071740000001',
address: 'Airport Bypass Rd, Jessore 7400, Bangladesh',
isFavorite: '0',
type: '3',
note: null,
types: ['airport', 'establishment', 'point_of_interest']
}
};
const response = await fetch(`${BASE_URL}/search-available-vehicles`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': API_KEY
},
body: JSON.stringify(data)
});
const result = await response.json();
if (result.success) {
console.log('Booking ID:', result.data.bookingId);
console.log('Available Vehicles:', result.data.availableVehicles.length);
}
}
searchVehicles();
{
"success": true,
"statusCode": 200,
"message": "Search request processed successfully",
"data": {
"bookingId": "9b8ce075-c48d-4162-acec-4275cfdd686b",
"availableVehicles": [
{
"id": 842,
"vehicle": {
"id": 842,
"title": "Mercedes-Benz M008 2022",
"vehicleNumberPlate": "M008",
"partnerId": 487,
"partnerName": "BD Cars (Brand)",
"thumbnail": "https://localrydes-media.fra1.digitaloceanspaces.com/vehicle/RangeRover_1728135908.jpg",
"vehicleClass": {
"id": 3,
"title": "Luxury",
"slug": "luxury",
"tagName": "Luxury",
"thumbnail": "https://localrydes-media.fra1.digitaloceanspaces.com/vehicle-class/Luxury3x_1764404961.png"
},
"seatingCapacity": 10,
"luggageCapacity": 15
},
"sourcePriceCurrency": {
"id": 1,
"name": "Euro",
"isoCode": "EUR",
"symbol": "€"
},
"price": 1145.643,
"priceBeforeDiscount": 1145.643,
"partnerDiscountPercentage": 0,
"convertedPrice": 1145.643,
"convertedPriceBeforeDiscount": 1145.643,
"isDiscount": 0,
"customerCanBook": 1,
"b2bBookingLink": "https://www.dev.localrydes.com/external/select-vehcile/9b8ce075-c48d-4162-acec-4275cfdd686b/842"
},
{
"id": 840,
"vehicle": {
"id": 840,
"title": "Mercedes-Benz 246 2022",
"vehicleNumberPlate": "L0007 - Copy",
"partnerId": 487,
"partnerName": "BD Cars (Brand)",
"thumbnail": "https://localrydes-media.fra1.digitaloceanspaces.com/vehicle/RangeRover_1728135908.jpg",
"vehicleClass": {
"id": 3,
"title": "Luxury",
"slug": "luxury",
"tagName": "Luxury",
"thumbnail": "https://localrydes-media.fra1.digitaloceanspaces.com/vehicle-class/Luxury3x_1764404961.png"
},
"seatingCapacity": 10,
"luggageCapacity": 15
},
"sourcePriceCurrency": {
"id": 1,
"name": "Euro",
"isoCode": "EUR",
"symbol": "€"
},
"price": 1145.643,
"priceBeforeDiscount": 1145.643,
"partnerDiscountPercentage": 0,
"convertedPrice": 1145.643,
"convertedPriceBeforeDiscount": 1145.643,
"isDiscount": 0,
"customerCanBook": 1,
"b2bBookingLink": "https://www.dev.localrydes.com/external/select-vehcile/9b8ce075-c48d-4162-acec-4275cfdd686b/840"
}
]
}
}
Each vehicle includes a b2bBookingLink that provides a quick integration option:
"b2bBookingLink": "https://www.dev.localrydes.com/external/select-vehcile/9b8ce075-c48d-4162-acec-4275cfdd686b/842"
How it works:
bookingId from the response - you'll need it for subsequent API requests if using the full API integrationavailableVehicles includes complete details: vehicle info, pricing, partner details, and capacityb2bBookingLink for quick integration OR continue with Select Vehicle + Store Reservation API endpoints for full controltransfer bookings: drop_off_location is requiredhourly bookings: booking_hour is required (2-24 hours)itineraries array to add waypoints/stops during the journeyprice) and converted currency (convertedPrice)customerCanBook indicates if the vehicle is available for immediate bookingEndpoint: /booking/vehisles/{bookingId}
Retrieve available vehicles for a specific booking. Use the bookingId received from the vehicle search response.
| Parameter | Type | Description |
|---|---|---|
bookingId |
string | The booking ID from the search-available-vehicles response (UUID format) |
curl --location 'https://www.localrydes.com/api/v2/external/booking/vehisles/9b8ce075-c48d-4162-acec-4275cfdd686b' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE'
bookingId in the URL is the same value as cart_item_uuid returned from the search-available-vehicles endpoint.
Endpoint: /booking/select-vehicle
Select a specific vehicle from the available options for your booking.
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_id |
string | Required | The bookingId from the search-available-vehicles response (UUID format) |
vehicle_id |
string | Required | The id of the selected vehicle from the availableVehicles array |
curl --location 'https://www.localrydes.com/api/v2/external/booking/select-vehicle' \
--header 'Content-Type: application/json' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE' \
--data '{
"booking_id": "9b8ce075-c48d-4162-acec-4275cfdd686b",
"vehicle_id": "842"
}'
booking_id must be the bookingId value from the search-available-vehicles responsevehicle_id must be the id of one of the vehicles in the availableVehicles arrayvehicle_id should be passed as a string (e.g., "842")Endpoint: /booking/store-reservation
Complete the booking by providing passenger information and confirming the reservation.
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_id |
string | Required | The bookingId from the search-available-vehicles response (UUID format) |
flight_number |
string | Optional | Flight number if applicable (e.g., "FF001") |
passenger |
object | Required | Passenger information object (see Passenger Object below) |
| Field | Type | Required | Description |
|---|---|---|---|
full_name |
string | Required | Passenger's full name (e.g., "John Doe") |
email |
string | Required | Passenger's email address |
mobile |
string | Required | Passenger's mobile phone number |
curl --location 'https://www.localrydes.com/api/v2/external/booking/store-reservation' \
--header 'Content-Type: application/json' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE' \
--data '{
"booking_id": "9b8ce075-c48d-4162-acec-4275cfdd686b",
"flight_number": "FF001",
"passenger": {
"full_name": "John Doe",
"email": "john.doe@example.com",
"mobile": "1234567890"
}
}'
{
"success": true,
"statusCode": 200,
"message": "Successfully stored reservation",
"data": {
"reservation": {
"id": 909,
"uuid": "9e98886a-4a21-408d-87f1-5121773c4ad0",
"reservationId": "LR100909",
"serviceType": {
"id": 1,
"service": "Transfer",
"slug": "transfer"
},
"status": 4,
"passenger": {
"id": 5446,
"fullName": "John Doe Test",
"email": "john.doe@example.com",
"phoneNo": "1234567890",
"otherPassengerDetails": {
"full_name": "John Doe Test",
"email": "john.doe@example.com",
"mobile": "1234567890"
}
},
"items": [
{
"id": 2312,
"uuid": "8d310cd4-de2b-43a0-bdad-d0ebd83a9989",
"reservationId": "LR100909",
"title": "Mercedes-Benz 246 2022",
"pickUpDate": "2026-02-27",
"pickUpTime": "06:07 AM",
"pickUpAddress": "Airport - Dakshinkhan Rd, Dhaka 1229, Bangladesh",
"dropOffAddress": "55G6+V74, Airport Bypass Rd, Jashore 7400, Bangladesh",
"priceDetails": {
"currency": {
"id": 1,
"name": "Euro",
"isoCode": "EUR",
"symbol": "€"
},
"grandTotal": 323,
"partnerAmountOwnCurrency": 274.55
},
"vehicle": {
"id": 845,
"title": "Mercedes-Benz 246 2022",
"vehicleNumberPlate": "M007",
"partnerId": 487,
"partnerName": "BD Cars (Brand)",
"thumbnail": "https://localrydes-media.fra1.digitaloceanspaces.com/vehicle/RangeRover_1728135908.jpg",
"vehicleClass": {
"id": 3,
"title": "Luxury",
"slug": "luxury"
},
"seatingCapacity": 10,
"luggageCapacity": 15
},
"flightNumber": "FF001",
"status": 4
}
],
"chatRoom": {
"uuid": "9e98886a-4a21-408d-87f1-5121773c4ad0",
"reservationId": "LR100909",
"isEnded": false
}
}
}
}
Key fields in the response:
reservation.reservationId - Unique reservation identifier (e.g., "LR100909")reservation.uuid - Reservation UUID for trackingitems[].uuid - Individual trip item UUIDitems[].priceDetails - Complete pricing breakdown with currency informationitems[].vehicle - Full vehicle details including class, capacity, and imagesitems[].pickUpDate/Time - Formatted pickup date and timeitems[].addresses - Complete pickup and dropoff location detailschatRoom - Chat room information for customer-partner communicationpassenger - Complete passenger information and contact detailsbooking_id must be the bookingId from the search-available-vehicles responsefull_name, email, mobile) are required for successful booking completionflight_number is optional but recommended for airport transfersreservationId (e.g., "LR100909") for future reference and customer supportAll error responses follow a consistent structure:
{
"success": false,
"statusCode": 400,
"message": "Error description",
"errors": [
{
"errorCode": 1001,
"errorField": "pickup_date",
"errorMessage": "Pickup date is required"
}
]
}
| Status Code | Error Code | Description | Solution |
|---|---|---|---|
| 401 | AUTH_INVALID |
Invalid or missing API key | Check your API key in the header |
| 403 | AUTH_EXPIRED |
API key has expired | Contact support to renew your key |
| 404 | RESOURCE_NOT_FOUND |
Requested resource not found | Verify the resource ID or URL |
| 422 | VALIDATION_ERROR |
Request validation failed | Check request parameters |
| 429 | RATE_LIMIT_EXCEEDED |
Too many requests | Wait and retry with backoff |
| 500 | SERVER_ERROR |
Internal server error | Contact support with request details |
Monitor your usage through response headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1672531200
If you don't have an API key yet, contact our sales team to set up your agency account and receive your credentials.
Contact Sales