Package Exports
- @meterapp/vehicle-db
- @meterapp/vehicle-db/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@meterapp/vehicle-db) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@meterapp/vehicle-db
Offline NHTSA vehicle database. All U.S. vehicle makes and models from 1990–2026. Zero dependencies, ~189 KB on npm. No network requests needed.
Covers three vehicle types: Passenger Car, Truck, and Multipurpose Passenger Vehicle (MPV).
Install
npm install @meterapp/vehicle-dbRequires Node.js 18+. Zero runtime dependencies — data is bundled as JSON.
Usage
import {
getVehicleTypes,
getMakes,
getModels,
getAvailableYears,
close,
} from "@meterapp/vehicle-db";
// List available vehicle types
const types = getVehicleTypes();
// => [
// { vehicleTypeId: 2, vehicleTypeName: "Passenger Car" },
// { vehicleTypeId: 3, vehicleTypeName: "Truck" },
// { vehicleTypeId: 7, vehicleTypeName: "Multipurpose Passenger Vehicle (MPV)" },
// ]
// Get all makes
const allMakes = getMakes();
// Get makes that have models in 2024
const makes2024 = getMakes({ year: 2024 });
// Get only truck makes for 2024
const truckMakes = getMakes({ year: 2024, vehicleTypeId: 3 });
// Get all Toyota models for 2024
const toyotaModels = getModels({ makeId: 474, year: 2024 });
// => [
// { modelId: 2469, modelName: "Camry", makeId: 474, makeName: "TOYOTA", vehicleTypeId: 2, vehicleTypeName: "Passenger Car" },
// { modelId: 2208, modelName: "Corolla", ... },
// ...
// ]
// Get only Ford trucks for 2024
const fordTrucks = getModels({ makeId: 460, year: 2024, vehicleTypeId: 3 });
// => [{ modelId: 1801, modelName: "F-150", ... }, ...]
// Get all available years
const years = getAvailableYears();
// => [1990, 1991, ..., 2026]
// Optional: close the DB connection when you're done
close();API
getVehicleTypes(): VehicleType[]
Returns all vehicle types in the database.
interface VehicleType {
vehicleTypeId: number; // e.g. 2
vehicleTypeName: string; // e.g. "Passenger Car"
}getMakes(options?): Make[]
Returns makes, optionally filtered by year and/or vehicle type.
getMakes() // all makes
getMakes({ year: 2024 }) // makes with models in 2024
getMakes({ vehicleTypeId: 3 }) // truck makes (all years)
getMakes({ year: 2024, vehicleTypeId: 3 }) // truck makes in 2024interface Make {
makeId: number; // e.g. 460
makeName: string; // e.g. "FORD"
}getModels(options?): Model[]
Returns models, optionally filtered by year, vehicle type, and/or make.
getModels({ makeId: 474, year: 2024 }) // Toyota 2024 (all types)
getModels({ makeId: 460, year: 2024, vehicleTypeId: 3 }) // Ford trucks 2024
getModels({ vehicleTypeId: 3 }) // all trucks (all years)
getModels({ year: 2024 }) // everything in 2024interface Model {
modelId: number; // e.g. 1801
modelName: string; // e.g. "F-150"
makeId: number; // e.g. 460
makeName: string; // e.g. "FORD"
vehicleTypeId: number; // e.g. 3
vehicleTypeName: string; // e.g. "Truck"
}getAvailableYears(): number[]
Returns all years present in the database, sorted ascending.
close(): void
Closes the SQLite connection. Safe to call multiple times. The connection reopens automatically on the next query.
Database stats
| Years | 1990 – 2026 |
| Vehicle types | 3 (Passenger Car, Truck, MPV) |
| Makes | 400 |
| Model entries | 51,270 |
| Data file | 1.2 MB (JSON) |
| npm package | 189 KB |
| npm package size | 1.5 MB |
Rebuilding the database
To refresh the data from the NHTSA API:
npm run build:dbOr for a specific year range:
npm run build:db -- --start-year 2020 --end-year 2026The NHTSA API rate-limits aggressively. The build script retries failed requests, but some obscure makes may be skipped. Major manufacturers (Toyota, Honda, Ford, BMW, etc.) are always fetched successfully.
License
ISC