Vehicle Emissions Test Lookup (VIN + State) avatar

Vehicle Emissions Test Lookup (VIN + State)

Pricing

$100.00 / 1,000 emissions check delivereds

Go to Apify Store
Vehicle Emissions Test Lookup (VIN + State)

Vehicle Emissions Test Lookup (VIN + State)

For a VIN and a US state (plus county, where needed): does this vehicle need an emissions/smog test here? Decodes the VIN live via NHTSA's free vPIC service and joins it against a bundled ruleset covering all 50 states + DC. Charged only when confirmed.

Pricing

$100.00 / 1,000 emissions check delivereds

Rating

0.0

(0)

Developer

Kevin

Kevin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

An independent tool. It is not affiliated with, endorsed by, or operated by NHTSA, any US state government, or any state DMV/environmental agency. The VIN decode is read live from NHTSA's own free vPIC service; each state's emissions-testing rule is a periodically refreshed bundle built from public sources, cited and dated in data/emissions_rules.json.

The VIN decode is live, on every run — the state rule is a bundle. A VIN's model year, make and fuel type never change, so there is nothing to bundle there; a state's testing rule changes at most every few years, so re-parsing fifty different government sites inside every customer run would buy nothing. See witnesses.py for how drift in the bundle is actually caught.


Why this exists

Someone buying a used car, registering an out-of-state vehicle, or running a small used-car lot faces one binary question with real cost if answered wrong: does this specific vehicle need an emissions/smog test before it can be registered here? The rules are free and public, but scattered — a different state agency for each of the roughly 28 states (and often a specific COUNTY within that state) that still test, each with its own vehicle-age exemption and fuel-type exemption. No lookup found on the Apify store answers this for a specific VIN today (see DOSSIER.md, "WHY IT IS RELEVANT"). This Actor answers it in one call: decode the VIN, apply the right state's (and county's) rule, done.

What you get per row

FieldMeaning
vin, state, county_givenWhat you asked about
decoded_model_year, decoded_make, decoded_vehicle_type, decoded_fuel_categoryRead live from NHTSA's vPIC decode
state_has_programWhether this state runs any emissions-testing program at all
program_scopestatewide, county or null (no program)
covered_countiesThe counties this state restricts testing to, when it does
test_requiredtrue, false, or null when the answer could not be confirmed (see determination_basis)
determination_basisThe specific reason: required, state_no_program, vehicle_too_new, vehicle_too_old, fuel_type_exempt, county_not_covered, county_required_not_given, county_list_unconfirmed, county_partial_verify_zip, or decode_failed
test_frequencyannual, biennial, etc., when a test is required
source_url, data_as_ofWhere the state rule bundle came from, and when it was last checked
charged / not_charged_reasonWhether this row cost you anything, and why not if it did not

Coverage — read this before you rely on it

v1 covers all 50 states + DC. 28 of them currently run some form of emissions/smog testing; the rest report a confident test_required: false (state_no_program). Of the 28, county-level detail is fully sourced for 27; California and Pennsylvania's own official sources give only a count of covered counties (41 of 58, and 25 of 67), never a list — for those two, a lookup returns test_required: null rather than a guessed answer, naming exactly which two government pages to check by hand.

Out of scope for v1: heavy-duty/commercial GVWR-based rules, and diplomatic, military, farm-plate or other special-plate exemptions beyond what each state's general passenger-vehicle rule already states. hybrid is treated as gasoline unless a state's own rule names hybrids specifically (none of the 28 currently does).


Input

{
"lookups": [
{"vin": "1HGCM82633A004352", "state": "NY", "county": ""},
{"vin": "1FTFW1ET1BFC00001", "state": "GA", "county": "Fulton"}
]
}

Up to 20 vehicles per run. county is optional but required to get a confirmed answer in a county-restricted state — omit it and you get a free, indeterminate row naming the covered counties instead.

Output

{
"vin": "1HGCM82633A004352",
"state": "NY",
"county_given": "",
"decoded_model_year": 2003,
"decoded_make": "HONDA",
"decoded_vehicle_type": "PASSENGER CAR",
"decoded_fuel_category": "gasoline",
"state_has_program": true,
"program_scope": "statewide",
"covered_counties": [],
"test_required": false,
"determination_basis": "vehicle_too_old",
"test_frequency": "annual",
"source_url": "https://en.wikipedia.org/wiki/Vehicle_inspection_in_the_United_States",
"data_as_of": "2026-08-29",
"charged": false,
"not_charged_reason": ""
}

A SUMMARY.json lands in the key-value store with how many vehicles were requested, determined, indeterminate, charged and free.