# Wenmar Open > Free vehicle data for auto repair shops: VIN decoding and a year, make, model, submodel and engine catalog, built from NHTSA's vPIC. No API key and no account. Read-only. Data version 2026.09. This is the documentation of https://open.wenmarpro.com as one file. The same text is on the pages https://open.wenmarpro.com/docs, https://open.wenmarpro.com/guides, https://open.wenmarpro.com/data and https://open.wenmarpro.com/about. ## API A JSON API for VIN decoding and for looking up vehicles by year, make, model, trim and engine. It needs no key and no account, and any website may call it from a browser. ### Decode a VIN Spaces and dashes are ignored. A wrong check digit is not an error: the answer has valid set to false and a warning, because many genuine VINs from outside North America fail the check. Add ?year= to use a model year of your own. ``` curl https://open.wenmarpro.com/v1/vin/KM8K2CAB4PU001140 ``` ### Decode up to 50 VINs The answer is a list in the order asked. Each item is a decode, or the error a single request for that VIN would have given. ``` curl -X POST https://open.wenmarpro.com/v1/vin/batch \ -H 'Content-Type: application/json' \ -d '{"vins": ["KM8K2CAB4PU001140", "1HGCM82633A004352"]}' ``` ### Pick a vehicle step by step Each step offers only what is valid for the steps before it. A make or model may be given by name, by an alias such as chevy, or by its id. Add term= to keep only names that start with it. ``` curl https://open.wenmarpro.com/v1/vehicles/years curl 'https://open.wenmarpro.com/v1/vehicles/makes?year=2019' curl 'https://open.wenmarpro.com/v1/vehicles/models?make=honda&year=2019' curl 'https://open.wenmarpro.com/v1/vehicles/submodels?make=honda&model=civic&year=2019' curl 'https://open.wenmarpro.com/v1/vehicles/engines?make=honda&model=civic&year=2019&submodel=si' ``` ### Search and vehicle ids Search reads what people type. Every vehicle has an id built from its year and names, which stays the same from one data release to the next for as long as the names do. ``` curl 'https://open.wenmarpro.com/v1/vehicles/search?q=2019+civic+si' curl https://open.wenmarpro.com/v1/vehicles/2019_honda_civic_si ``` ### Errors An error is a JSON object with one member, error, which has a code, a message and details. The HTTP status is the main signal. 400 invalid_vin: wrong length or illegal characters; details.suggestions lists likely corrections. 400 validation_failed: a parameter or body is missing or wrong. 404 not_found: no manufacturer is registered for the VIN's first three characters, or no vehicle has that id. 429 rate_limited: too many requests. 500 internal_error: our fault. ### Limits One address may make 600 requests a minute. That is far more than a shop needs, and it exists only so that one client cannot slow the service for everyone. Over it, the answer is 429 with a Retry-After header saying how many seconds to wait. A batch holds at most 50 VINs. A request body may be at most 16 KB. ### Caching and versions Every answer carries the data version in an X-Data-Version header. Answers do not change until the data does, so successful GETs may be cached for a day and carry an ETag; send it back in If-None-Match to get a 304. Fields and endpoints are only ever added. Nothing that has shipped is removed or given a new meaning. ### For AI agents An assistant that can fetch a web address can decode a VIN with one request. There is no key to ask for and nothing to sign up to. The answer is JSON: the year, make, model, trim, engine and safety equipment, and a list of warnings. A wrong check digit is a warning, not an error. ``` curl https://open.wenmarpro.com/v1/vin/KM8K2CAB4PU001140 ``` ### MCP server The same lookups are tools on a Model Context Protocol server: wenmar_vin and wenmar_vehicles. It speaks Streamable HTTP and needs no key. Add this address as a remote server or a custom connector: ``` https://open.wenmarpro.com/mcp ``` - [OpenAPI description](https://open.wenmarpro.com/v1/openapi.json) - [llms.txt](https://open.wenmarpro.com/llms.txt) - [The documentation as one file: llms-full.txt](https://open.wenmarpro.com/llms-full.txt) - [API catalog](https://open.wenmarpro.com/.well-known/api-catalog) ## How to read a VIN A vehicle identification number, or VIN, has 17 characters. Each position has a job, and the layout has been the same since the 1981 model year. This page goes through the positions in order, using KM8K2CAB4PU001140, a 2023 Hyundai Kona, as the example. ### The 17 positions A VIN uses the digits 0 to 9 and every capital letter except I, O and Q, which look too much like 1 and 0. The positions of KM8K2CAB4PU001140: | Position | Example | What it is | | --- | --- | --- | | 1 to 3 | KM8 | Who built the vehicle: the manufacturer code. | | 4 to 8 | K2CAB | What the vehicle is. The manufacturer chooses the meaning: usually the model, the body, the restraints and the engine. | | 9 | 4 | The check digit, worked out from the other 16 characters. | | 10 | P | The model year. P is 2023. | | 11 | U | The plant the vehicle was built in. | | 12 to 17 | 001140 | The serial number of this vehicle. | ### Positions 1 to 3: the manufacturer The first character is a region, the first two are a country, and all three name one manufacturer and often one kind of vehicle. KM8 is Hyundai, for multipurpose vehicles built in South Korea. A small manufacturer shares its first three characters with others: its third character is 9, and positions 12 to 14 finish its code. - [What the first three characters of a VIN mean](https://open.wenmarpro.com/guides/wmi) - [Manufacturer code KM8](https://open.wenmarpro.com/wmi/KM8) ### Positions 4 to 8: the vehicle These five characters describe the vehicle, and each manufacturer decides how. One puts the model in positions 4 and 5 and the engine in position 8; another does it differently, and the meaning can change from one model year to the next. That is why decoding them needs the manufacturer's own tables, which it files with NHTSA. For many vehicles sold in North America position 8 is the engine. A model-year page on this site lists the eighth character for each engine where the data settles it. - [Every make, with its models by year](https://open.wenmarpro.com/makes) ### Position 9: the check digit The ninth character is worked out from the other sixteen, so it catches most typing mistakes. It is required on vehicles built for the United States and Canada. Many vehicles built for other markets do not use it, so a VIN that fails the check is not always wrong. - [What the VIN check digit is](https://open.wenmarpro.com/guides/check-digit) ### Position 10: the model year One character stands for the model year, in a cycle of 30 years: P was 1993 and is 2023. On cars, multipurpose vehicles and light trucks, position 7 says which: a digit there means 1980 to 2009 and a letter means 2010 to 2039. In the example position 7 is A, so P is 2023. - [How a VIN encodes the model year](https://open.wenmarpro.com/guides/model-year) ### Position 11: the plant One character for the factory. Each manufacturer has its own list, so U at one manufacturer is not U at another. ### Positions 12 to 17: the serial number The last six characters are what makes one VIN different from the next. A small manufacturer has only positions 15 to 17 for the serial number, because 12 to 14 belong to its manufacturer code. ### Decode one Type a VIN into the box on the first page to see every field this site has for it. - [Decode a VIN](https://open.wenmarpro.com/) ## Where to find the VIN on a vehicle The VIN is on the vehicle in at least two places and on most of its papers. If two of them disagree, go by the one stamped or riveted to the vehicle. ### On a car or a light truck At the bottom of the windshield on the driver's side, on a small plate on top of the dash. It is read from outside, standing by the driver's door and looking down through the glass. Vehicles built for the United States and Canada have it there. On the driver's door jamb or the edge of the driver's door, on the label that also gives the date of manufacture and the weight ratings. Stamped into the body or the frame. Common places are the firewall at the back of the engine bay, the top of a front strut tower, the floor beside a front seat, and a frame rail on a truck. ### On the papers On the ownership or registration, on the insurance card, and on the title where one is issued. A bill of sale and most service invoices carry it too. ### On a motorcycle, a trailer or a heavy truck A motorcycle has it stamped on the steering neck, behind the headlight, and often on a label on the frame. A trailer has it on a plate or label near the front on the left side, usually on the tongue or the frame. A heavy truck has it on the label on the driver's door jamb and stamped on a frame rail. ### Reading it without mistakes A VIN never contains the letters I, O or Q. If you read one of those, it is the digit 1 or 0. The pairs most often mixed up are S and 5, B and 8, Z and 2, G and 6, D and 0, U and V, and L and 1. When a VIN typed here fails its check digit, the result page offers the VINs that pass the check and differ by one such swap. A VIN from before the 1981 model year can be shorter than 17 characters and follows its manufacturer's own layout. This site decodes 17-character VINs only. - [How to read a VIN](https://open.wenmarpro.com/guides/how-to-read-a-vin) - [Decode a VIN](https://open.wenmarpro.com/) ## What the first three characters of a VIN mean The first three characters of a VIN are the World Manufacturer Identifier, or WMI. They say who built the vehicle. This site has a page for every one NHTSA has on file. ### What each character says The first character is a region, and with the second it is a country. 1, 4 and 5 are the United States, 2 is Canada, J is Japan and W is Germany. Other countries share a first character: KL to KR is South Korea, 3A to 3W is Mexico, and SA to SM is the United Kingdom. The third character, with the first two, names one manufacturer and often one kind of vehicle. Honda's cars built in the United States start with 1HG. Hyundai's multipurpose vehicles built in South Korea start with KM8. The country in a manufacturer code is where the code was registered, which is usually where the vehicle was built. The plant in position 11 is the more exact answer. - [Manufacturer code KM8](https://open.wenmarpro.com/wmi/KM8) ### Small manufacturers use six characters A manufacturer that builds few vehicles shares its first three characters with others. Its third character is 9, and positions 12, 13 and 14 of the VIN finish the code. On this site such a code is written as six characters: 1P9618 means a VIN that starts with 1P9 and has 618 in positions 12 to 14. ### One manufacturer, many codes A large manufacturer has many codes: one for each country, division and kind of vehicle it builds. A make's page on this site lists the codes its vehicles use. - [Every make](https://open.wenmarpro.com/makes) ### Looking one up Decode a whole VIN on the first page, or put the code after /wmi/ in this site's address. The same page as Markdown, for a program: ``` curl https://open.wenmarpro.com/wmi/KM8.md ``` ## How a VIN encodes the model year The tenth character of a VIN is the model year. There are 30 codes, so each one comes round again after 30 years: the character that meant 1993 means 2023. ### The chart The codes run through the letters, leaving out I, O, Q, U and Z, and then through the digits 1 to 9. Zero is never a year. Model year by tenth character: | Character | 1980 to 2009 | 2010 to 2039 | | --- | --- | --- | | A | 1980 | 2010 | | B | 1981 | 2011 | | C | 1982 | 2012 | | D | 1983 | 2013 | | E | 1984 | 2014 | | F | 1985 | 2015 | | G | 1986 | 2016 | | H | 1987 | 2017 | | J | 1988 | 2018 | | K | 1989 | 2019 | | L | 1990 | 2020 | | M | 1991 | 2021 | | N | 1992 | 2022 | | P | 1993 | 2023 | | R | 1994 | 2024 | | S | 1995 | 2025 | | T | 1996 | 2026 | | V | 1997 | 2027 | | W | 1998 | 2028 | | X | 1999 | 2029 | | Y | 2000 | 2030 | | 1 | 2001 | 2031 | | 2 | 2002 | 2032 | | 3 | 2003 | 2033 | | 4 | 2004 | 2034 | | 5 | 2005 | 2035 | | 6 | 2006 | 2036 | | 7 | 2007 | 2037 | | 8 | 2008 | 2038 | | 9 | 2009 | 2039 | ### Which of the two years On cars, multipurpose vehicles and light trucks, position 7 settles it. A digit in position 7 means the earlier cycle, 1980 to 2009. A letter means the later one, 2010 to 2039. KM8K2CAB4PU001140 has P in position 10 and A in position 7, so it is a 2023. 1HGCM82633A004352 has 3 in position 10 and 2 in position 7, so it is a 2003. Heavy trucks, buses, trailers and motorcycles do not follow the position 7 rule. For them this site tries both years against what the manufacturer filed and keeps the one that fits, preferring the later. A model year is never more than two years ahead of the calendar. A code whose later year would be further ahead than that is read as the earlier year. The model year is not the year the vehicle was built. A 2023 model is often built in 2022. ### When position 10 is not a year Some vehicles built for markets outside North America do not put the model year in position 10. If the character there is not one of the 30 codes, this site says the model year is unknown instead of guessing. - [How to read a VIN](https://open.wenmarpro.com/guides/how-to-read-a-vin) - [Decode a VIN](https://open.wenmarpro.com/) ## What the VIN check digit is The ninth character of a VIN is a check digit. It is worked out from the other sixteen characters, so a VIN with one character mistyped almost never passes the check. ### How it is worked out Every character has a value: a digit is its own value, and a letter has the value in the first table below. Each value is multiplied by the weight of its position, in the second table. The 17 results are added up and divided by 11. The remainder is the check digit, and a remainder of 10 is written X. ### Letter values I, O and Q have no value, because a VIN never contains them. The value of each letter: | Value | Letters | | --- | --- | | 1 | A, J | | 2 | B, K, S | | 3 | C, L, T | | 4 | D, M, U | | 5 | E, N, V | | 6 | F, W | | 7 | G, P, X | | 8 | H, Y | | 9 | R, Z | ### Position weights Position 9 is the check digit itself, so its weight is 0. The weight of each position: | Position | Weight | | --- | --- | | 1 | 8 | | 2 | 7 | | 3 | 6 | | 4 | 5 | | 5 | 4 | | 6 | 3 | | 7 | 2 | | 8 | 10 | | 9 | 0 | | 10 | 9 | | 11 | 8 | | 12 | 7 | | 13 | 6 | | 14 | 5 | | 15 | 4 | | 16 | 3 | | 17 | 2 | ### A worked example For KM8K2CAB4PU001140 the values are 2, 4, 8, 2, 2, 3, 1, 2, 4, 7, 4, 0, 0, 1, 1, 4, 0. Multiplied by the weights they are 16, 28, 48, 10, 8, 9, 2, 20, 0, 63, 32, 0, 0, 5, 4, 12, 0, which add up to 257. 257 divided by 11 is 23 with 4 left over, so the check digit is 4. Position 9 of KM8K2CAB4PU001140 is 4, so the check passes. ### When the check fails A wrong check digit usually means a character was misread. This site still decodes the VIN, says what position 9 should be, and offers the VINs that pass the check and differ by one easily confused character. It can also mean nothing is wrong. The check digit is required on vehicles built for the United States and Canada. Many vehicles built for other markets carry any character in position 9, and their VINs fail the check while being genuine. That is why the API reports a wrong check digit as a warning and not as an error. - [Where to find the VIN on a vehicle](https://open.wenmarpro.com/guides/where-to-find-the-vin) - [Decode a VIN](https://open.wenmarpro.com/) ## Data This site is serving data version 2026.09, built on 2026-10-02 02:30:39 from NHTSA's release vPICList_lite_2026_09. ### Where it comes from All of it comes from vPIC, the Product Information Catalog and Vehicle Listing published each month by the US National Highway Traffic Safety Administration. vPIC is public-domain US government data. vPIC describes vehicles as their manufacturers reported them to NHTSA. It can be incomplete or wrong, especially for vehicles never sold in the United States. Trims are thin for some popular models, and where one engine code is shared by several models the engine list can be longer than it should be. - [NHTSA vPIC](https://vpic.nhtsa.dot.gov/) ### Download The whole data set is one SQLite file, rebuilt each month. Anything that reads SQLite can use it, and the wenmar-vin Rust crate decodes VINs from it with no network. - [Data releases](https://github.com/wenmar-pro/wenmar-open/releases) - [Changelog](https://github.com/wenmar-pro/wenmar-open/blob/main/CHANGELOG.md) ### Found a wrong decode? Reports of wrong decodes are the most useful thing anyone can send. Each fix adds the VIN to the set every build is checked against. - [Report a wrong decode](https://github.com/wenmar-pro/wenmar-open/issues/new/choose) ## About Wenmar Open is a free VIN decoder and vehicle catalog for auto repair shops. There is no account, no key and nothing to install. ### Who runs it Wenmar Open is built and hosted by Wenmar Pro, shop management software for independent auto repair shops. - [Wenmar Pro](https://wenmarpro.com/?utm_source=wenmar-open&utm_medium=referral&utm_campaign=about) ### What it keeps There are no cookies, no accounts and no analytics scripts. The service's own log records the first 11 characters of a decoded VIN, which name the maker, model and plant, and not the serial number. The hosting proxy in front of the service keeps a request log of its own, with the address of each request and where it came from. The address of a decode, as a page or through the API, holds the whole VIN. ### Open source The code is MIT licensed and the data is public domain. Corrections are welcome. - [Source code](https://github.com/wenmar-pro/wenmar-open)