Twelve Transfers Centralized API

This is the documentation for the Twelve Transfers Centralized API, which provides a unified interface for all booking systems to communicate with the CTLF backend API.

Available Endpoints

Health Check

GET
/health.php

Checks the health status of the API and its dependencies.

Example Response:

{
  "success": true,
  "timestamp": "2025-05-21T19:01:23.655Z",
  "services": {
    "api": "online",
    "ctlf": "online"
  },
  "system": {
    "hostname": "api.fgtwelve.ltd",
    "platform": "linux",
    "uptime": 6.384210574,
    "memory": {
      "total": "48191MB",
      "free": "39837MB",
      "used": "8354MB"
    }
  }
}

Get All Vehicles

GET
/api/vehicles.php

Returns a list of all available vehicle types.

Example Response:

{
  "success": true,
  "count": 8,
  "vehicles": [
    {
      "id": 1,
      "name": "Business",
      "description": "Cadillac XTS or similar",
      "capacity": {
        "passengers": 3,
        "luggage": 3
      },
      "image": "https://us1.ctlf.co.uk/upload/vehicleType/1/VEHICLE_TYPE_IMAGE_2019-05-06.jpeg",
      "isActive": true
    },
    // Additional vehicles...
  ]
}

Calculate Quotes for All Vehicles

POST
/api/quotes-all.php

Calculates quotes for all available vehicle types for a given journey.

Request Body:

{
  "pickup": {
    "address": "Miami International Airport, Miami, FL",
    "latitude": 25.7951775,
    "longitude": -80.2785964
  },
  "dropoff": {
    "address": "South Beach, Miami Beach, FL",
    "latitude": 25.7825453,
    "longitude": -80.1341489
  },
  "date": "15/06/2025",
  "time": "14:30",
  "passengers": 2,
  "luggage": 2
}

Calculate Price for Specific Vehicle

POST
/api/calculate-price.php

Calculates a price quote for a specific vehicle type.

Request Body:

{
  "pickup": {
    "address": "Miami International Airport, Miami, FL",
    "latitude": 25.7951775,
    "longitude": -80.2785964
  },
  "dropoff": {
    "address": "South Beach, Miami Beach, FL",
    "latitude": 25.7825453,
    "longitude": -80.1341489
  },
  "datetime": "2025-06-15T14:30:00",
  "passengers": 2,
  "luggage": 2,
  "vehicleType": "1",
  "isReturn": false
}

Testing the API

You can test the API using our interactive test page:

Integration Examples

JavaScript Example

// Get all vehicles
async function getVehicles() {
  const response = await fetch('https://fgtwelve.ltd/api/vehicles.php');
  return response.json();
}

// Calculate quote for a journey
async function calculateQuote(journey) {
  const response = await fetch('https://fgtwelve.ltd/api/calculate-price.php', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(journey)
  });
  return response.json();
}

PHP Example

// Get all vehicles
function getVehicles() {
  $ch = curl_init('https://fgtwelve.ltd/api/vehicles.php');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $response = curl_exec($ch);
  curl_close($ch);
  return json_decode($response, true);
}

// Calculate quote for a journey
function calculateQuote($journey) {
  $ch = curl_init('https://fgtwelve.ltd/api/calculate-price.php');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($journey));
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
  $response = curl_exec($ch);
  curl_close($ch);
  return json_decode($response, true);
}

Documentation

For complete API documentation, refer to: