🚗 Vehicle Database API

Complete API documentation for the Vehicle Database data aggregation service

Table of Contents

Overview

The Vehicle Database API provides access to comprehensive vehicle data, user authentication, and credit management for vehicle information reports.

Base URL: https://tc.telecloud.co.za/api/method/vehicle_database.api.vehicle_db_api

Response Format

All API responses follow a consistent JSON format:

{
  "status": "SUCCESS" | "FAILURE",
  "message": "Human readable message",
  "data": { ... }  // Optional additional data
}

Authentication

The API uses token-based authentication with SMS verification. The authentication flow is:

  1. New Users: Sign up → Receive SMS code → Verify code → Get API token
  2. Existing Users: Request login → Receive SMS code → Verify code → Get API token
  3. API Calls: Include api_token parameter in all authenticated requests

Authentication Endpoints

GET Login

/get_login

Send SMS verification code to existing user's mobile number.

Parameters:

mobile_number required

Valid South African mobile number (10 digits)

key optional

API key for additional authentication

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Token sent",
  "api_token": "a1b2c3d4e5f6..."
}

Error Response (400):

{
  "status": "FAILURE",
  "message": "Phone number not found. Already have an account? Call us to link your number to your account."
}

POST Sign Up

/post_signup

Register a new user account and send SMS verification code.

Parameters:

mobile_number required

Valid South African mobile number

name required

Full name of the user

email required

Email address

company optional

Company name

Success Response (200):

{
  "status": "SUCCESS",
  "message": "OTP Sent."
}

POST Verify SMS Token

/post_sms_token

Verify the SMS code and receive API token for authenticated requests.

Parameters:

mobile_number required

Mobile number that received the SMS

code required

6-digit verification code from SMS

Success Response (200):

{
  "status": "SUCCESS",
  "message": "SMS Verified",
  "api_token": "a1b2c3d4e5f6..."
}

Account Management

GET Get Account

/get_account

Retrieve account details for the authenticated user.

Parameters:

api_token required

User's API token from authentication

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Account data retrieved",
  "id": 123,
  "balance": 0,
  "company": "Company Name",
  "contact": "John Doe",
  "phone": "0821234567",
  "email": "john@example.com",
  "credits_balance": 10
}

GET Get Partner

/get_partner

Retrieve partner/reseller details.

Parameters:

api_token required

User's API token

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Partner data retrieved",
  "account": {
    "contact": "Partner Name",
    "company": "Partner Company",
    "address": "123 Main St",
    "phone": "0821234567",
    "email": "partner@example.com",
    "website_address": "https://example.com"
  }
}

Vehicle Database

GET Get Vehicle Dropdowns

/get_vehicledb_dropdowns

Get filter options for vehicle search (makes, models, sub-types, years).

Parameters:

api_token required

User's API token

search optional

Search term to filter results

make optional

Filter by vehicle make

model optional

Filter by vehicle model

sub_type optional

Filter by vehicle sub-type

year optional

Filter by year

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Success",
  "makes": ["Toyota", "Honda", "BMW", ...],
  "models": ["Corolla", "Civic", "3 Series", ...],
  "sub_types": ["Sedan", "SUV", "Hatchback", ...],
  "years": ["2024", "2023", "2022", ...]
}

GET Get Vehicles

/get_vehicledb_vehicles

Search vehicles with filters and pagination.

Parameters:

api_token required

User's API token

search optional

Search term

make optional

Filter by make

model optional

Filter by model

sub_type optional

Filter by sub-type

year optional

Filter by year

page optional

Page number (default: 0)

limit optional

Results per page (default: 500)

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Success",
  "total_rows": 1234,
  "rows": [
    {
      "make": "Toyota",
      "model": "Corolla",
      "sub_type": "Sedan",
      "year": "2024"
    },
    ...
  ]
}

Credit Management

POST Create Invoice

/post_vehicledb_invoice

Create an invoice for purchasing vehicle database credits.

Parameters:

api_token required

User's API token

amount required

Invoice amount

qty required

Quantity of credits

reference required

Invoice reference/description

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Invoice created"
}

POST Use Credits

/post_vehicledb_credits_used

Deduct credits from account when generating a report.

Parameters:

api_token required

User's API token

qty required

Number of credits to deduct

report_type required

Type of report being generated

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Credits deducted"
}

POST Refund Credits

/post_credit_on_evaluation_fail

Refund credits if report generation fails.

Parameters:

api_token required

User's API token

qty required

Number of credits to refund

report_type required

Type of report that failed

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Credits refunded"
}

Utility Endpoints

POST Contact Form

/post_contact_form

Submit a contact form message.

Parameters:

fullName required

Full name

phoneNumber required

Phone number

email required

Email address

message required

Message content

Success Response (200):

{
  "status": "SUCCESS",
  "message": "Message submitted. Thank you for your message."
}

Error Handling

The API uses standard HTTP status codes and consistent error response format:

HTTP Status Codes

Common Error Messages

// Authentication Errors
{
  "status": "FAILURE",
  "message": "Token required"
}

{
  "status": "FAILURE",
  "message": "Invalid token"
}

{
  "status": "FAILURE",
  "message": "Account disabled"
}

// Validation Errors
{
  "status": "FAILURE",
  "message": "Mobile number required"
}

{
  "status": "FAILURE",
  "message": "Amount is required"
}

Example Usage

Complete Authentication Flow

// Step 1: Sign up new user
POST /api/method/vehicle_database.api.vehicle_db_api.post_signup
{
  "mobile_number": "0821234567",
  "name": "John Doe",
  "email": "john@example.com",
  "company": "Example Corp"
}

// Response: { "status": "SUCCESS", "message": "OTP Sent." }

// Step 2: Verify SMS code
POST /api/method/vehicle_database.api.vehicle_db_api.post_sms_token
{
  "mobile_number": "0821234567",
  "code": "123456"
}

// Response: { "status": "SUCCESS", "message": "SMS Verified", "api_token": "abc123..." }

// Step 3: Use API token for authenticated requests
GET /api/method/vehicle_database.api.vehicle_db_api.get_account?api_token=abc123...

// Response: Account details with credits balance