Registry / data / vininfo

vininfo

JSON →
library1.11.0pypypi✓ verified 89d ago

VINinfo is a Python library (current version 1.9.2) designed to extract useful information from Vehicle Identification Numbers (VINs). It can operate as a standalone command-line application or be integrated as a Python package. The library provides both basic and detailed VIN information (where available) and offers functionality for VIN checksum verification. It is actively maintained with a recent release in September 2025 and focuses on decoding VINs using its internal databases, specifically enhancing data for brands like AvtoVAZ, Nissan, Opel, and Renault.

pip install vininfo
INSTALL
IMPORT
SIG · VININFO
V
vininfo
datapythonv1.11.0
Install
1.6s avg
Import
21ms
Disk
17MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v1.11.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.940 runs
installs and imports cleanly · install 0.0s · import 0.023s · 18.8MB
glibc
py 3.10–3.940 runs
installs and imports cleanly · install 1.6s · import 0.019s · 19MB
17MB installed
● package 17MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Vin
✓ from vininfo import Vin

Initializes a Vin object with a VIN string and demonstrates accessing various attributes like country, manufacturer, region, and performing checksum verification. It also shows how to retrieve detailed information and an annotated VIN string.

from vininfo import Vin vin_number = 'VF1LM1B0H36666155' # Example Renault VIN # For testing invalid VINs or edge cases, consider a generic placeholder # vin_number = 'INVALIDVINTEST1234' vin = Vin(vin_number) print(f"VIN: {vin_number}") print(f"Country: {vin.country}") print(f"Manufacturer: {vin.manufacturer}") print(f"Region: {vin.region}") print(f"WMI: {vin.wmi}") print(f"VDS: {vin.vds}") print(f"VIS: {vin.vis}") print(f"Checksum valid: {vin.verify_checksum()}") # Accessing detailed information if available details = vin.details if details: print("\nDetails:") for key, value in details.items(): print(f" {key.replace('_', ' ').title()}: {value}") else: print("\nNo detailed information available for this VIN.") # Example with annotation annotated_vin = vin.annotate() print(f"\nAnnotated VIN: {annotated_vin}")
vininfo --version
Debug
Known issues
breakingThe library has dropped support for older Python versions. `v1.0.0` removed Python 2 and Python 3.4 support. `v1.4.0` removed Python 3.5 support. The current version requires Python 3.10+.
fix
Ensure your project uses Python 3.10 or a newer compatible version.
affects: <=1.4.0
breakingIn `v1.7.0`, the regions and countries list was updated according to ISO 3780. This change *may affect* information accuracy for vehicles manufactured before 2009. Additionally, the model year check within `Vin.verify_checksum()` became optional but defaults to 'on'.
fix
If relying on pre-2009 VIN data, verify results carefully. For checksum verification, be aware of the default model year check and explicitly set `model_year_check=False` if needed for older VINs or specific use cases.
affects: >=1.7.0
gotchaVINinfo decodes information based on its internal databases. Unlike some other VIN libraries (e.g., `pyvin`), it does not rely on external APIs (like NHTSA) for its primary data. Therefore, the depth and breadth of information might vary, especially for manufacturers not specifically supported with 'details extractors'.
fix
Understand that data availability depends on the library's internal dictionaries and detail extractors. Contributions for missing WMI or detail extractors are encouraged.
affects: All versions
gotchaDetailed information (e.g., body, engine, model, plant) is currently only available for specific brands such as AvtoVAZ, Nissan, Opel, and Renault. For other manufacturers, only basic VIN segment information might be retrievable.
fix
When working with VINs from manufacturers not listed, anticipate that `.details` might be empty or less comprehensive. You can check `vin.details` for availability.
affects: All versions
gotchaA regression was fixed in `v1.9.2` related to `Vin.years` for unsupported year codes. While fixed, this highlights that parsing complex or unusual VINs, especially regarding year codes, can be an edge case that might require careful handling or validation.
fix
Ensure you are on version `1.9.2` or later to benefit from the fix for `Vin.years` regression.
affects: 1.9.1
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'vininfo'
The vininfo library has not been installed in the current Python environment or is not accessible.
fix
pip install vininfo
ValueError: VIN must be 17 characters long
The string provided to the vininfo.Vin() constructor is not exactly 17 characters in length, which is a fundamental requirement for a Vehicle Identification Number.
fix
Ensure the input VIN string is precisely 17 characters long before passing it to vininfo.Vin(), for example: vininfo.Vin('1GNCU0V3557000000')
AttributeError: 'NoneType' object has no attribute 'lower'
This error occurs when a VIN field (like 'make', 'model', 'year') is None because the vininfo library could not decode that specific piece of information, and then a method is called on that None value without prior checking.
fix
Always check if the attribute is not None before attempting to call methods on it, for example: `vin = vininfo.Vin('YOURVINHERE').decode(); if vin and vin.make: print(vin.make.lower())`
TypeError: Vin() takes exactly 1 argument (0 given)
The vininfo.Vin class constructor requires a single string argument representing the VIN.
fix
Pass the VIN string as an argument when instantiating the Vin object, for example: `vininfo.Vin('YOURVINHERE')`
Upgrade
Version history
1.11.0latest on PyPI · released May 2, 2026
Audit
Dependencies
PythonrequiredRequires Python 3.10 or newer.
clickoptionalRequired for using the command-line interface (CLI) features.
Agent activity
20 hits · last 30 days
node
18
OpenAI (training)
1
Resources
vininfo — pip install vininfo · libregistry