Localrydes App
Download Our App
Book rides faster with our mobile app
B2B API Documentation Banner

Getting Started

Prerequisites
  • An active agency account with LocalRydes
  • Valid API credentials (API Key)
  • Basic knowledge of REST APIs and JSON
  • HTTPS support on your server/application
Quick Start Steps
  1. Obtain API Credentials - Contact LocalRydes support or log into your agency portal to generate your API key.
  2. Test Authentication - Verify your API key using the validation endpoint.
  3. Search Vehicles - Make your first vehicle search request with trip details.
  4. Complete Booking - Select a vehicle and complete the reservation with passenger information.
Base URLs for All Environments
Current Environment: PRODUCTION
You are viewing documentation for: 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
Important: Always use the appropriate base URL for your environment. Generate separate API keys for each environment and never use production keys in development/staging environments.

Agency Account Registration

How to Register as a B2B Partner

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:

1
Create Account Online

Visit the registration page and select "Travel Agent" as your account type.

Registration URL: https://localrydes.com/user/registration?user_role=agent

2
Submit Company Information

Fill in the registration form with your personal details and company information.

3
Account Verification

Our team will review and verify your agency account. This typically takes 1-2 business days.

4
Access Your Portal

Once approved, log in to your agency portal and generate your API keys to start integrating.

Self-Service Registration

You can register your agency account instantly at https://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.

Required Information

To complete your agency registration, please prepare the following information:

Company Details
  • Legal company name
  • Business registration number
  • Tax identification number (TIN)
  • Company address
  • Year established
Contact Information
  • Primary contact person name
  • Business email address
  • Business phone number
  • Website URL (if applicable)
  • Business category/type
Business Documents
  • Business license/registration certificate
  • Tax clearance certificate
  • Company profile/brochure
  • Bank account details (for settlements)
Technical Contact
  • Developer/IT contact name
  • Technical email address
  • Integration timeline
  • Expected monthly booking volume
Benefits of Agency Partnership
Competitive Commission Rates

Earn attractive commissions on every booking processed through the API

Full API Access

Complete access to all booking and management endpoints

Dedicated Support

Priority technical support and account management

Global Fleet Access

Access to premium vehicles worldwide

Real-time Analytics

Comprehensive reporting and booking analytics

Secure Payments

Secure payment processing and settlement system

Need Help?

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)

API Key Management

Accessing Your API Keys

Once your agency account is activated, you can generate and manage API keys from your agency portal.

Portal Login:
Production Portal: https://www.localrydes.com/login
Staging Portal: https://www.dev.localrydes.com/login
First-Time Login: You will receive your initial login credentials via email after your account is approved. Please change your password immediately after your first login.
Generating an API Key

Follow these steps to generate a new API key from your agency portal:

  1. Navigate to API Keys Section
    Dashboard → API Keys → Generate New Key
  2. Provide Key Details
    Enter a descriptive name for your API key (e.g., "Production Server", "Testing Environment")
  3. Add Optional Description
    Add notes about where this key will be used or its purpose
  4. Generate & Save
    Click "Generate API Key" button
  5. Copy and Store Securely
    This is the ONLY time you'll see the complete API key!
Critical Security Notice
  • The full API key is displayed only once during generation
  • Store it immediately in a secure location (password manager, environment variables)
  • If you lose your API key, you must generate a new one
  • Previous keys are automatically deactivated when a new key is generated
API Key Information
Key Format:
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
Key Types:
Production Key

lr_live_...

  • Used for live transactions
  • Real bookings and payments
  • Full rate limits apply
Test Key (Coming Soon)

lr_test_...

  • Sandbox environment testing
  • No real charges
  • Lower rate limits
Monitoring API Usage

Track your API usage and performance from your agency portal dashboard:

Available Metrics
  • Total Requests: Number of API calls made
  • Success Rate: Percentage of successful requests
  • Last Used: Timestamp of most recent API call
  • Daily Limit: Remaining requests for today
  • Monthly Volume: Total bookings this month
Rate Limit Information
  • Per Minute: 60 requests/minute
  • Per Day: 10,000 requests/day
  • Burst Limit: 100 requests in 10 seconds
  • Upgrade: Contact us for higher limits
Pro Tip: Monitor the X-RateLimit-Remaining response header to track your usage in real-time and avoid hitting rate limits.
Security Best Practices
DON'T
  • Expose API keys in client-side code (JavaScript, mobile apps)
  • Commit API keys to version control (Git, SVN)
  • Share API keys via email or messaging apps
  • Use the same key across multiple environments
  • Hardcode API keys in your source code
  • Log API keys in application logs
DO
  • Store keys in environment variables (.env files)
  • Use server-side code to make API calls
  • Keep keys in secure password managers
  • Rotate keys periodically (every 90 days recommended)
  • Generate separate keys for development and production
  • Regenerate immediately if a key is compromised
If Your Key is Compromised:
  1. Immediately log into your agency portal
  2. Generate a new API key
  3. Update your application with the new key
  4. The old key will be automatically deactivated
  5. Contact support if you notice suspicious activity
Managing Multiple Keys
Single Active Key Policy

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.

Recommended Workflow for Key Rotation:
  1. Generate new API key from portal
  2. Immediately copy and securely store the key
  3. Update your application configuration with the new key
  4. Deploy the updated configuration
  5. Test the integration to ensure it works
  6. Monitor for any issues

Note: Plan your key rotation during low-traffic periods to minimize potential disruption.

Troubleshooting API Key Issues
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
Need Assistance? Contact our technical support team at api-support@localrydes.com or call +43 1 3463301 with your agency ID (never share your actual API key).

How to Use Your API Key

Current Environment: PRODUCTION
All examples below are configured for your current environment.
Include Your API Key in Request Headers

Include your API key in the request header for all API calls using the x-api-key header:

Example - cURL:
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"
Example - PHP:
$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);
Example - JavaScript/Node.js:
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);
Example - Python:
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)
Success Response Example

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
        }
    }
}
All Available Environments
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
Important: Use separate API keys for each environment. Never use production keys in development/staging environments.

Authentication

Security Notice: Never expose your API key in client-side code. Always make API calls from your server-side application.
API Key Format

Header Name: x-api-key

Format: lr_live_XXXXXXXXXXXXXXXX

Example Request Header:
x-api-key: lr_live_YOUR_API_KEY_HERE
Content-Type: application/json
GET Validate Your API Key

Endpoint: /auth/validate-key

Validates your API key and returns agency information, commission rates, and usage statistics.

Request Example (cURL) - Current Environment: PRODUCTION
curl --location 'https://www.localrydes.com/api/v2/external/auth/validate-key' \
--header 'x-api-key: lr_live_YOUR_API_KEY_HERE'
Response (200 OK):
{
  "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
    }
  }
}

API Endpoints

POST Search Available Vehicles

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.

Request Parameters:
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
Location Object Structure:
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"])
Request Example - Transfer Booking (cURL):
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"]
  }
}'
Request Example - Hourly Booking with Waypoints (cURL):
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"]
  }
}'
Request Example - PHP (Transfer):
<?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";
}
?>
Request Example - JavaScript (Hourly with Waypoints):
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();
Response (200 OK):
{
  "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"
      }
    ]
  }
}
Using the B2B Booking Link - Simplified Integration

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:

  • Simple Integration: When your customer clicks on this link, they will be redirected to the LocalRydes platform
  • Automated Process: LocalRydes handles the entire booking flow including passenger details, payment processing, and confirmation
  • White-Label Option: The booking link maintains your branding and customer relationship while LocalRydes manages the backend
  • No Additional API Calls: Perfect for agencies who want to integrate vehicle search but prefer LocalRydes to handle the booking completion
  • Seamless Experience: Your customers complete their reservation on LocalRydes' secure platform and receive instant confirmation
Important Notes:
  • Save the bookingId from the response - you'll need it for subsequent API requests if using the full API integration
  • Each vehicle in availableVehicles includes complete details: vehicle info, pricing, partner details, and capacity
  • Integration Choice: Use b2bBookingLink for quick integration OR continue with Select Vehicle + Store Reservation API endpoints for full control
  • For transfer bookings: drop_off_location is required
  • For hourly bookings: booking_hour is required (2-24 hours)
  • Use itineraries array to add waypoints/stops during the journey
  • All location objects must include valid Google Place IDs
  • Prices are returned in both source currency (price) and converted currency (convertedPrice)
  • customerCanBook indicates if the vehicle is available for immediate booking
GET Get Vehicles by Booking ID

Endpoint: /booking/vehisles/{bookingId}

Retrieve available vehicles for a specific booking. Use the bookingId received from the vehicle search response.

URL Parameters:
Parameter Type Description
bookingId string The booking ID from the search-available-vehicles response (UUID format)
Request Example:
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'
Note: The bookingId in the URL is the same value as cart_item_uuid returned from the search-available-vehicles endpoint.
POST Select Vehicle

Endpoint: /booking/select-vehicle

Select a specific vehicle from the available options for your booking.

Request Parameters:
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
Request Example:
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"
}'
Important:
  • The booking_id must be the bookingId value from the search-available-vehicles response
  • The vehicle_id must be the id of one of the vehicles in the availableVehicles array
  • The vehicle_id should be passed as a string (e.g., "842")
  • This endpoint locks in your vehicle selection and prepares the booking for passenger details
POST Store Reservation

Endpoint: /booking/store-reservation

Complete the booking by providing passenger information and confirming the reservation.

Request Parameters:
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)
Passenger Object Structure:
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
Request Example:
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"
  }
}'
Response (200 OK):
{
  "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
      }
    }
  }
}
Response Details

Key fields in the response:

  • reservation.reservationId - Unique reservation identifier (e.g., "LR100909")
  • reservation.uuid - Reservation UUID for tracking
  • items[].uuid - Individual trip item UUID
  • items[].priceDetails - Complete pricing breakdown with currency information
  • items[].vehicle - Full vehicle details including class, capacity, and images
  • items[].pickUpDate/Time - Formatted pickup date and time
  • items[].addresses - Complete pickup and dropoff location details
  • chatRoom - Chat room information for customer-partner communication
  • passenger - Complete passenger information and contact details
Important:
  • The booking_id must be the bookingId from the search-available-vehicles response
  • Vehicle must be selected using the select-vehicle endpoint before storing the reservation
  • All passenger details (full_name, email, mobile) are required for successful booking completion
  • The flight_number is optional but recommended for airport transfers
  • This endpoint finalizes the booking and sends confirmation to the passenger's email
  • Save the reservationId (e.g., "LR100909") for future reference and customer support
  • The response includes a chat room UUID for real-time communication between customer and partner

Error Handling

Error Response Format

All error responses follow a consistent structure:

{
  "success": false,
  "statusCode": 400,
  "message": "Error description",
  "errors": [
    {
      "errorCode": 1001,
      "errorField": "pickup_date",
      "errorMessage": "Pickup date is required"
    }
  ]
}
Common HTTP Status Codes
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

Rate Limits

Default Limits
  • Per Minute: 60 requests
  • Per Day: 10,000 requests
Rate Limit Headers

Monitor your usage through response headers:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1672531200

Testing & Support

Phone Support

+43 1 3463301

Monday - Friday, 9:00 AM - 6:00 PM (CET)
Ready to Get Started?

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
WhatsApp for LocalRydes chauffeur service