NEVDIS #API Australia #NEVDIS – Australian Vehicle Registration API: Complete State-by-State Guide to Vehicle Data Lookup

Quicklinks:
Australian API: https://www.carregistrationapi.com.au/
Nevdis info: https://austroads.gov.au/drivers-and-vehicles/nevdis
Australian Vehicle Registration API: Complete State-by-State Guide to Vehicle Data Lookup
Australia’s vast continent is divided into eight distinct states and territories, each maintaining its own vehicle registration system and database. The Australian Vehicle Registration API provides comprehensive access to vehicle information across all Australian jurisdictions, from the bustling cities of Sydney and Melbourne to the remote regions of the Northern Territory and Western Australia.
Overview of Australian Vehicle Registration System
Unlike centralized systems found in some countries, Australia operates a federated vehicle registration model where each state and territory maintains independent databases. This decentralized approach reflects Australia’s federal structure and means that vehicle lookups require both the registration number and the state of registration.
The Australian Vehicle Registration API supports all eight Australian jurisdictions:
- New South Wales (NSW)
- Victoria (VIC)
- Queensland (QLD)
- South Australia (SA)
- Australian Capital Territory (ACT)
- Northern Territory (NT)
- Western Australia (WA)
- Tasmania (TAS)
API Implementation
Endpoint Usage
The Australian Vehicle API uses the /CheckAustralia endpoint and requires three parameters:
- Registration Number – The vehicle’s registration plate number
- State – Two or three letter state/territory abbreviation
- Username – Your API authentication credentials
Basic Implementation Example
// JavaScript example for Australian vehicle lookup
async function lookupAustralianVehicle(registration, state, username) {
const apiUrl = `https://www.regcheck.org.uk/api/reg.asmx/CheckAustralia?RegistrationNumber=${registration}&State=${state}&username=${username}`;
try {
const response = await fetch(apiUrl);
const xmlText = await response.text();
// Parse XML response
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlText, "text/xml");
const jsonData = xmlDoc.getElementsByTagName("vehicleJson")[0].textContent;
const vehicleInfo = JSON.parse(jsonData);
return vehicleInfo;
} catch (error) {
console.error('Australian vehicle lookup failed:', error);
return null;
}
}
// Usage example
lookupAustralianVehicle("ABC123", "NSW", "your_username")
.then(data => {
if (data) {
console.log(`Vehicle: ${data.Description}`);
console.log(`State: ${data.State}`);
}
});
State-by-State Data Coverage
Each Australian state provides different levels of vehicle information based on their registration systems and data sharing policies.
New South Wales (NSW)
New South Wales, Australia’s most populous state, provides comprehensive vehicle data including:
Available Data:
- Vehicle description (make, model, body style)
- Make and model details
- Registration year
- Vehicle color
- Body style classification
- NEVDIS code (National Exchange of Vehicle and Driver Information System)
- Engine size specifications
- NVIC code (National Vehicle Identification Code)
- Transmission type
Sample Response (NSW):
{
"Description": "FORD Fairmont 4D Sedan",
"RegistrationYear": "1994",
"CarMake": {
"CurrentTextValue": "FORD"
},
"MakeDescription": {
"CurrentTextValue": "FORD"
},
"ModelDescription": {
"CurrentTextValue": "Fairmont 4D Sedan"
},
"BodyStyle": {
"CurrentTextValue": "4-Speed Auto"
},
"VechileIdentificationNumber": "FORFMT---7402E01994A",
"Engine": "4.0 litre, 6 cyl, EF",
"State": "NSW",
"extended": {
"nvic": "OP5",
"driveType": "4D SEDAN",
"family": "FAIRMONT",
"model": "Fairmont 4D Sedan",
"make": "FORD",
"fuelType": "",
"capacityValue": "4.0",
"series": "EF",
"engineDescription": "4.0 litre, 6 cyl, EF",
"cylinders": "6",
"year": "1994",
"capacityUnit": "L",
"transmissionType": "4-Speed Auto"
}
}
NSW Motorcycle Support: NSW also supports motorcycle lookups with slightly different data structure:
{
"Description": "YAMAHA XVS650 MOTORCYCLE V",
"RegistrationYear": "2014",
"CarMake": {
"CurrentTextValue": "YAMAHA"
},
"MakeDescription": {
"CurrentTextValue": "YAMAHA"
},
"ModelDescription": {
"CurrentTextValue": "XVS650"
},
"VehicleType": "Motorcycle",
"State": "NSW"
}
Victoria (VIC)
Victoria provides essential vehicle identification data with focus on ownership verification:
Available Data:
- Vehicle description
- Registration year
- Make identification
- Body style
- Vehicle color
- Vehicle Identification Number (VIN)
- Engine number
- Registration expiry date
- Stolen vehicle indicator
- Goods carrying vehicle classification
Sample Response (VIC):
{
"Description": "2012 WHITE HYUNDAI WAGON",
"RegistrationYear": "2012",
"CarMake": {
"CurrentTextValue": "HYUNDAI"
},
"MakeDescription": {
"CurrentTextValue": "HYUNDAI"
},
"Colour": "WHITE",
"VechileIdentificationNumber": "KMHJU81CSCU459552",
"Engine": "G4KECU661333",
"Stolen": "No",
"GoodsCarryingVehicle": "No",
"RegistrationSerialNumber": "7112510",
"ComplianceDate": "02/2012",
"Expiry": "20/02/2018",
"State": "VIC"
}
Queensland (QLD)
Queensland focuses on basic vehicle identification with insurance information:
Available Data:
- Vehicle description
- Make and model
- Registration year
- Vehicle Identification Number (VIN)
- Insurance expiry date
- Vehicle purpose classification
Sample Response (QLD):
{
"Description": "2011 HYUNDAI ACCENT HATCHBACK",
"CarMake": {
"CurrentTextValue": "HYUNDAI"
},
"CarModel": {
"CurrentTextValue": "ACCENT HATCHBACK"
},
"RegistrationYear": "2011",
"VechileIdentificationNumber": "KMHCT51DLCU021130",
"InsuranceExpiry": "01/11/2019",
"Purpose": "PRIVATE",
"State": "QLD"
}
South Australia (SA)
South Australia provides comprehensive data including insurance company information:
Available Data:
- Complete vehicle description
- Make and model details
- Body style classification
- Vehicle color
- Registration year
- Registration expiry date
- Insurance company details
- Vehicle Identification Number (VIN)
Sample Response (SA):
{
"Description": "WHITE MITSUBISHI STATION WAGON",
"CarMake": {
"CurrentTextValue": "MITSUBISHI"
},
"CarModel": {
"CurrentTextValue": "Pajero"
},
"RegistrationYear": "2015",
"BodyStyle": {
"CurrentTextValue": "STATION WAGON"
},
"Colour": "WHITE",
"Expiry": "05/09/2022",
"VechileIdentificationNumber": "JMFLYV98WGJ003504",
"InsuranceCompany": "AAMI",
"State": "SA"
}
Australian Capital Territory (ACT)
The ACT system provides detailed vehicle and insurance information:
Available Data:
- Vehicle description with year
- Make and model identification
- Registration year
- Vehicle color
- Registration expiry date
- Engine number
- Stolen vehicle indicator
- Net weight specifications
- Insurance company details
Sample Response (ACT):
{
"Description": "Black MERCEDES 204 C CLASS (2010)",
"CarMake": {
"CurrentTextValue": "MERCEDES"
},
"CarModel": {
"CurrentTextValue": "MERCEDES"
},
"RegistrationYear": 2010,
"Colour": "Black",
"Expiry": "27/05/2017",
"EngineNumber": "2420",
"Stolen": "N",
"NetWeight": "1436",
"InsuranceCompany": "NRMA INSURANCE LIMITED",
"State": "ACT"
}
Northern Territory (NT)
The Northern Territory provides registration status and inspection information:
Available Data:
- Vehicle description
- Make and model details
- Registration year
- Vehicle color
- Registration plate details
- Insurance class information
- Inspection date requirements
- Plate type classification
- Registration status
Sample Response (NT):
{
"Description": "BLACK TOYOTA PRADO 2012",
"CarMake": {
"CurrentTextValue": "TOYOTA"
},
"CarModel": {
"CurrentTextValue": "PRADO"
},
"RegistrationYear": 2012,
"Colour": "BLACK",
"RegistrationPlate": {
"can_register": true,
"plate": "CA71JS",
"can_inspect": true,
"insurance_class": "A",
"insurance_class_desc": "Vehicle not exceeding 4.5 tonne GVM or bus used for private or business.",
"date_inspection": 1516579200000,
"plate_type": "C",
"class_code": "",
"can_remind": true,
"status": "REGISTERED",
"date_expired": 1490227200000
},
"State": "NT"
}
Western Australia (WA)
Western Australia provides detailed technical specifications:
Available Data:
- Complete vehicle description
- Make and model details
- Registration year
- Body style classification
- Vehicle color
- NEVDIS number
- Engine specifications
- NVIC code
- Transmission type
- Registration expiry date
Sample Response (WA):
{
"Description": "MAZDA Mazda6 4D Sedan CLASSIC",
"RegistrationYear": "2008",
"CarMake": {
"CurrentTextValue": "MAZDA"
},
"MakeDescription": {
"CurrentTextValue": "MAZDA"
},
"ModelDescription": {
"CurrentTextValue": "Mazda6 4D Sedan"
},
"BodyStyle": {
"CurrentTextValue": "Classic 6-Speed Manual"
},
"VechileIdentificationNumber": "MAZ--6CLGH25HV92008B",
"Engine": "2.5 litre, 4 cyl, GH",
"extended": {
"nvic": "HV908B",
"driveType": "4D SEDAN",
"family": "MAZDA6",
"variant": "CLASSIC",
"model": "Mazda6 4D Sedan",
"make": "MAZDA",
"capacityValue": "2.5",
"series": "GH",
"engineDescription": "2.5 litre, 4 cyl, GH",
"bodyType": "Classic 6-Speed Manual",
"cylinders": "4",
"year": "2008",
"capacityUnit": "L",
"transmissionType": "Manual"
},
"Expiry": "16/12/2017",
"State": "WA"
}
WA Motorcycle Support: Western Australia also supports motorcycle lookups:
{
"Description": "YAMAHA XVS650 MOTORCYCLE V",
"RegistrationYear": "2014",
"CarMake": {
"CurrentTextValue": "YAMAHA"
},
"MakeDescription": {
"CurrentTextValue": "YAMAHA"
},
"ModelDescription": {
"CurrentTextValue": "XVS650"
},
"VehicleType": "Motorcycle",
"State": "WA"
}
Tasmania (TAS)
Tasmania provides comprehensive technical vehicle data:
Available Data:
- Complete vehicle description
- Make and model details
- Registration year
- Body style specifications
- Vehicle color
- NEVDIS number
- Engine specifications with displacement
- NVIC code
- Transmission details
- Registration expiry date
Sample Response (TAS):
{
"Description": "MAZDA Cx-5 4D Wagon MAXX (4x2)",
"RegistrationYear": "2012",
"CarMake": {
"CurrentTextValue": "MAZDA"
},
"MakeDescription": {
"CurrentTextValue": "MAZDA"
},
"ModelDescription": {
"CurrentTextValue": "Cx-5 4D Wagon"
},
"BodyStyle": {
"CurrentTextValue": "Maxx (4X2) 6-Speed Manual"
},
"VechileIdentificationNumber": "MAZCX5M2--20NHI2012B",
"Engine": "2.0 litre, 4 cyl",
"extended": {
"nvic": "NHI12B",
"driveType": "4D WAGON",
"family": "CX-5",
"variant": "MAXX (4x2)",
"model": "Cx-5 4D Wagon",
"make": "MAZDA",
"capacityValue": "2.0",
"engineDescription": "2.0 litre, 4 cyl",
"bodyType": "Maxx (4X2) 6-Speed Manual",
"cylinders": "4",
"year": "2012",
"capacityUnit": "L",
"transmissionType": "Manual"
},
"State": "TAS"
}
State Code Validation
function validateAustralianState(state) {
const validStates = ['NSW', 'VIC', 'QLD', 'SA', 'ACT', 'NT', 'WA', 'TAS'];
if (!state) {
return { valid: false, error: "State code is required" };
}
const upperState = state.toUpperCase();
if (!validStates.includes(upperState)) {
return {
valid: false,
error: `Invalid state code. Must be one of: ${validStates.join(', ')}`
};
}
return { valid: true, state: upperState };
}
// Usage example
const stateValidation = validateAustralianState("nsw");
if (stateValidation.valid) {
// Proceed with API call using stateValidation.state
} else {
console.error(stateValidation.error);
}
Complete Implementation Example
import requests
import xml.etree.ElementTree as ET
import json
class AustralianVehicleAPI:
def __init__(self, username):
self.username = username
self.base_url = "https://www.regcheck.org.uk/api/reg.asmx/CheckAustralia"
self.valid_states = ['NSW', 'VIC', 'QLD', 'SA', 'ACT', 'NT', 'WA', 'TAS']
def validate_inputs(self, registration, state):
"""Validate registration and state inputs"""
errors = []
if not registration or len(registration.strip()) < 2:
errors.append("Registration number is required (minimum 2 characters)")
if not state:
errors.append("State code is required")
elif state.upper() not in self.valid_states:
errors.append(f"Invalid state. Must be one of: {', '.join(self.valid_states)}")
return errors
def lookup(self, registration, state):
"""Lookup Australian vehicle with comprehensive error handling"""
# Validate inputs
errors = self.validate_inputs(registration, state)
if errors:
return {"error": "; ".join(errors)}
try:
params = {
'RegistrationNumber': registration.strip(),
'State': state.upper(),
'username': self.username
}
response = requests.get(self.base_url, params=params, timeout=15)
response.raise_for_status()
# Parse XML response
root = ET.fromstring(response.content)
json_element = root.find('.//vehicleJson')
if json_element is None or not json_element.text:
return {"error": "No vehicle data found for this registration"}
vehicle_data = json.loads(json_element.text)
# Add lookup metadata
vehicle_data['lookup_info'] = {
'registration': registration.strip(),
'state': state.upper(),
'timestamp': response.headers.get('Date')
}
return vehicle_data
except requests.Timeout:
return {"error": "Request timed out - please try again"}
except requests.RequestException as e:
return {"error": f"Network error: {str(e)}"}
except ET.ParseError:
return {"error": "Invalid response format from API"}
except json.JSONDecodeError:
return {"error": "Could not parse vehicle data"}
except Exception as e:
return {"error": f"Unexpected error: {str(e)}"}
def lookup_multiple_states(self, registration, states=None):
"""Try lookup across multiple states if state is unknown"""
if states is None:
states = self.valid_states
results = {}
for state in states:
result = self.lookup(registration, state)
if "error" not in result:
return result # Return first successful match
results[state] = result
return {"error": "Vehicle not found in any specified states", "attempts": results}
# Usage examples
api = AustralianVehicleAPI("your_username")
# Single state lookup
result = api.lookup("ABC123", "NSW")
if "error" not in result:
print(f"Found: {result.get('Description')}")
print(f"State: {result.get('State')}")
if 'extended' in result:
ext = result['extended']
print(f"Engine: {ext.get('engineDescription')}")
print(f"Transmission: {ext.get('transmissionType')}")
else:
print(f"Error: {result['error']}")
# Multi-state search when state is unknown
result = api.lookup_multiple_states("XYZ789", ["NSW", "VIC", "QLD"])
if "error" not in result:
print(f"Vehicle found in {result.get('State')}: {result.get('Description')}")
Use Cases by Industry
Insurance Industry
- Premium Calculations – Vehicle specifications for risk assessment
- Claims Processing – Verify vehicle details during claim investigations
- Policy Management – Automatic vehicle data population
- Fraud Detection – Cross-reference vehicle information across states
Automotive Industry
- Dealership Operations – Verify trade-in vehicle specifications
- Parts and Service – Identify correct parts using VIN and specifications
- Vehicle History – Track registration history across states
- Inventory Management – Automated vehicle data for listings
Fleet Management
- Asset Tracking – Maintain comprehensive vehicle records
- Compliance Monitoring – Ensure registration currency across fleets
- Insurance Management – Track insurance expiry dates
- Maintenance Scheduling – Engine specifications for service planning
Law Enforcement
- Vehicle Identification – Quick lookups during traffic stops
- Investigation Support – Cross-state vehicle tracking
- Stolen Vehicle Detection – Access to stolen vehicle indicators
- Registration Verification – Confirm registration validity
Data Variations and Considerations
Coverage Differences
Each Australian state provides different data depth based on their systems:
- Most Comprehensive: NSW, WA, TAS (detailed technical specifications)
- Insurance Focus: SA, ACT, QLD (insurance company information)
- Basic Identification: VIC, NT (essential vehicle details)
Motorcycle Support
Currently available in NSW and WA with plans for expansion to other states.
Historical Data
Data availability varies by state, with some providing records from the 1990s while others focus on more recent registrations.
Getting Started
Account Setup
- Register at regcheck.org.uk for API access
- Verify email address to receive test credits
- Test with sample registrations from different states
- Purchase credits for production usage
Testing Recommendations
Test across multiple states to understand data variations:
- NSW: Comprehensive technical data
- VIC: Basic identification with VIN
- QLD: Insurance-focused information
- SA: Color and insurance details
Conclusion
The Australian Vehicle Registration API provides comprehensive access to vehicle data across all eight Australian states and territories. Each jurisdiction offers different data depths, from basic identification to detailed technical specifications including engine details, transmission types, and extended vehicle information.
Understanding state-specific data variations is crucial for effective implementation. NSW, WA, and TAS provide the most comprehensive technical data, while other states focus on identification and insurance information. The API’s support for motorcycle lookups in select states adds versatility for diverse Australian vehicle types.
The federated nature of Australian vehicle registration creates unique opportunities and challenges. Developers can leverage state-specific data strengths while implementing fallback mechanisms for comprehensive vehicle identification across the continent.
Start exploring Australian vehicle data today by registering for your API account and testing across different states to understand the rich variety of information available from Australia’s diverse vehicle registration systems.
Quicklinks:
Australian API: https://www.carregistrationapi.com.au/
Nevdis info: https://austroads.gov.au/drivers-and-vehicles/nevdis