VIN to risk record avatar

VIN to risk record

Pricing

from $30.00 / 1,000 vin risk records

Go to Apify Store
VIN to risk record

VIN to risk record

Takes VINs. Returns the NHTSA vPIC decode, that model year's NHTSA complaints, recalls and investigations, and optionally Chicagoland listing history. Call it when you start from a VIN.

Pricing

from $30.00 / 1,000 vin risk records

Rating

0.0

(0)

Developer

The Used Car Index

The Used Car Index

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Turn VINs into records: each VIN is validated, decoded with NHTSA vPIC and matched to the NHTSA record for its make, model and model year (complaints, recalls, investigations, manufacturer communications and, where a verified sales source exists, complaints per 100k sold). Switch on listing history to add the stored listing changes for that VIN at Chicagoland dealers: new, price drops, delistings and relistings, with dates, prices and links. For dealers, appraisers and fleet or insurance analysts who start from a VIN, and for AI agents that need the recorded NHTSA facts behind it.

Input examples

One VIN with its listing history:

{
"vins": ["19XFC1F91GE040781"],
"includeListingHistory": true
}

Several VINs in one run, without history:

{
"vins": ["19XFC1F91GE040781", "2HKRW2H85KH627004", "5XYP6DGC3RG429595"],
"includeListingHistory": false
}

Sample output

Real output, fetched 2026-10-16 for the first input above and shaped by this Actor's own code, so the block below is exactly one dataset item. NHTSA vPIC decoded the VIN as a 2016 Honda Civic; risk_record is that model year's record from the data build of 2026-10-07 (data.built_at); listing_events are the stored listing changes for the VIN, newest first.

At a glance, the risk record holds 1,082 complaints (36 with a crash, 4 with a fire, 13 with an injury, 0 deaths), 5 recalls, 0 investigations and 327 manufacturer communications. It has no complaints-per-100k-sold rate: rate.null_reason is variant_mismatch, meaning no verified sales figure is matched to this model year. The listing history at Schaumburg Honda Automobiles: first seen 2026-10-07 at $16,800, delisted 2026-10-09, relisted 2026-10-10, price drop to $16,700 on 2026-10-11, price drop to $16,500 on 2026-10-15. A delisted listing can come back, as this one did, and delisted is never labeled sold.

{
"vin": "19XFC1F91GE040781",
"decoded": { "make": "HONDA", "model": "Civic", "year": 2016 },
"risk_record": {
"vehicle": {
"make": "HONDA",
"model": "CIVIC",
"year": 2016,
"family_key": "CIVIC",
"matched_models": [{ "model": "CIVIC", "complaints": 1081 }, { "model": "CIVIC SI", "complaints": 1 }],
"other_names": ["CIVIC HYBRID"],
"resolved_via": "vehicle_models"
},
"complaints": {
"total": 1082,
"with_crash": 36,
"with_fire": 4,
"with_injury": 13,
"injuries": 16,
"deaths": 0,
"by_source": { "both": 1082, "bulk_only": 0, "api_only": 0 },
"coverage_complete": true,
"top_systems": [
{ "system": "STEERING", "count": 445, "share": 0.411275415896488 },
{ "system": "UNKNOWN OR OTHER", "count": 253, "share": 0.23382624768946395 },
{ "system": "ELECTRICAL SYSTEM", "count": 119, "share": 0.1099815157116451 },
{ "system": "ENGINE", "count": 95, "share": 0.0878003696857671 },
{ "system": "SERVICE BRAKES", "count": 92, "share": 0.08502772643253234 },
{ "system": "STRUCTURE", "count": 48, "share": 0.04436229205175601 },
{ "system": "VISIBILITY/WIPER", "count": 47, "share": 0.04343807763401109 },
{ "system": "POWER TRAIN", "count": 37, "share": 0.034195933456561925 },
{ "system": "EXTERIOR LIGHTING", "count": 30, "share": 0.027726432532347505 },
{ "system": "AIR BAGS", "count": 28, "share": 0.025878003696857672 }
],
"top_subsystems": [
{ "system": "STRUCTURE", "subsystem": "BODY", "count": 45 },
{ "system": "EQUIPMENT", "subsystem": "APPLIANCE", "count": 13 },
{ "system": "VISIBILITY", "subsystem": "DEFROSTER/DEFOGGER/HVAC SYSTEM", "count": 13 },
{ "system": "FORWARD COLLISION AVOIDANCE", "subsystem": "AUTOMATIC EMERGENCY BRAKING", "count": 6 },
{ "system": "EQUIPMENT", "subsystem": "ELECTRICAL", "count": 3 },
{ "system": "FORWARD COLLISION AVOIDANCE", "subsystem": "WARNINGS", "count": 3 },
{ "system": "LANE DEPARTURE", "subsystem": "ASSIST", "count": 3 },
{ "system": "TIRES", "subsystem": "PRESSURE MONITORING AND REGULATING SYSTEMS", "count": 3 },
{ "system": "VISIBILITY", "subsystem": "SUN/MOON ROOF ASSEMBLY", "count": 3 },
{ "system": "ELECTRICAL SYSTEM", "subsystem": "INSTRUMENT PANEL", "count": 2 }
]
},
"recalls": {
"total": 5,
"do_not_drive": 0,
"park_outside": 0,
"potential_units_max": 2490460,
"by_system": [
{ "system": "AIR BAGS", "count": 1 },
{ "system": "ENGINE AND ENGINE COOLING", "count": 1 },
{ "system": "EXTERIOR LIGHTING", "count": 1 },
{ "system": "FUEL SYSTEM, GASOLINE", "count": 1 },
{ "system": "PARKING BRAKE", "count": 1 }
],
"latest": [
{
"campaign_number": "26V332000",
"received_date": "2026-05-21",
"systems": ["AIR BAGS"],
"defect": "Honda (American Honda Motor Co.) is recalling certain 2018-2021, 2023 Acura TLX, 2019-2024 RDX, 2017-2020, 2022-2026 MDX, 2017-2021, 2023, 2025 Honda Ridgeline, 2017-2022 Pilot, 2019-2021 Passport, 2018-2026 Odyssey, 2019-2022 Insight, 2019-2021 HR-V, 2018-2020 Fit, 2020-2022 CR-V Hybrid, 2017-2022 CR-V, 2017-2018, 2021 Civic Type R, 2017-2021 Civic hatchback, 2016-2020 Civic coupe, 2016-2022 Civi",
"consequence": "Air bags that deploy unintentionally during a crash increase the risk of injury.",
"remedy": "Dealers will replace the seat weight sensors, free of charge. Owner notification letters were mailed July 7, 2026. Owners may contact Honda's customer service at 1-888-234-2138. Honda's numbers for this recall are BOL, WO9, OOA, WOM, XOH, NOC, POD, BOE, UOF, POB, EOG, AOI, QO8, TOJ, DO7, and SOK. This recall expands previous NHTSA recall number 24V064. Vehicle Identification Numbers (VINs) involve",
"do_not_drive": false,
"park_outside": false,
"truncated": true,
"url": "https://www.nhtsa.gov/recalls?nhtsaId=26V332000"
},
{
"campaign_number": "23V858000",
"received_date": "2023-12-18",
"systems": ["FUEL SYSTEM, GASOLINE"],
"defect": "Honda (American Honda Motor Co.) is recalling certain 2013-2023 Honda Accord, Civic Coupe, Civic Sedan, Civic Hatchback, Civic Type R, CR-V, HR-V, Ridgeline, Odyssey, Acura ILX, MDX, MDX Hybrid, RDX, RLX, TLX, 2019-2022 Honda Insight, Passport, 2020 Honda CR-V Hybrid, 2018-2019 Honda Clarity PHEV, Fit, and 2015-2020 Honda Accord Hybrid, Pilot, Acura NSX vehicles. The fuel pump inside the fuel tan",
"consequence": "Fuel pump failure can cause an engine stall while driving, increasing the risk of a crash.",
"remedy": "Dealers will replace the fuel pump module, free of charge. Owner letters were mailed September 6, 2024. Owners may contact Honda customer service at 1-888-234-2138. Honda's numbers for this recall are KGC and KGD. This recall is an expansion of NHTSA recall numbers 21V-215 and 20V-314.",
"do_not_drive": false,
"park_outside": false,
"truncated": true,
"url": "https://www.nhtsa.gov/recalls?nhtsaId=23V858000"
},
{
"campaign_number": "16V725000",
"received_date": "2016-10-11",
"systems": ["PARKING BRAKE"],
"defect": "Honda (American Honda Motor Co.) is recalling certain model year 2016 Honda Civic two door and four door 1.5L turbo and 2.0L vehicles. The electric parking brake (EPB) may not engage if it is applied immediately after turning the ignition off.",
"consequence": "If the EPB is not applied, the vehicle may roll away, increasing the risk of a crash.",
"remedy": "Honda will notify owners, and dealers will update the vehicle's software to allow the EPB to engage immediately after the ignition is turned off, free of charge. The recall began on November 8, 2016. Owners may contact Honda customer service at 1-888-234-2138. Honda's number for this recall is KC6.",
"do_not_drive": false,
"park_outside": false,
"truncated": false,
"url": "https://www.nhtsa.gov/recalls?nhtsaId=16V725000"
},
{
"campaign_number": "16V526000",
"received_date": "2016-07-11",
"systems": ["EXTERIOR LIGHTING"],
"defect": "American Honda Motor Co. (Honda) is recalling certain model year 2016 Civic 2-Door vehicles manufactured February 23, 2016, through May 20, 2016. The affected vehicles may have a damaged LED side marker light circuit board inside the taillight assembly, making the marker light inoperable. As such, these vehicles fail to comply with the requirements of Federal Motor Vehicle Safety Standard (FMVSS",
"consequence": "If a side marker light does not function, vehicle visibility can be decreased to other drivers, increasing the risk of a crash.",
"remedy": "Honda will notify owners, and dealers will inspect both the taillight assemblies, replacing them as necessary, free of charge. The recall began on August 31, 2016. Owners may contact Honda customer service at 1-888-234-2138. Honda's number for this recall is KB8.",
"do_not_drive": false,
"park_outside": false,
"truncated": true,
"url": "https://www.nhtsa.gov/recalls?nhtsaId=16V526000"
},
{
"campaign_number": "16V074000",
"received_date": "2016-02-09",
"systems": ["ENGINE AND ENGINE COOLING"],
"defect": "Honda (American Honda Motor Co.) is recalling certain model year 2016 Civic vehicles manufactured September 22, 2015, to February 3, 2016 and equipped with 2.0L engines. The affected vehicles have engines with piston assemblies that may have been manufactured without a piston wrist pin circlip or with an incorrectly installed piston wrist pin circlip.",
"consequence": "If a circlip is missing or incorrectly installed, the piston wrist pin may not be secure and may drift and damage the engine cylinder causing the engine to seize, and increasing the risk of a crash or a fire.",
"remedy": "Honda will notify owners, and dealers will inspect and replace the piston assemblies and damaged engine components, as necessary, free of charge. Parts are expected to be available in the Summer of 2016. Owners were mailed an interim notification beginning March 31, 2016, and will be mailed a second notice when parts are available. Owners may contact Honda customer service at 1-888-234-2138. H",
"do_not_drive": false,
"park_outside": false,
"truncated": true,
"url": "https://www.nhtsa.gov/recalls?nhtsaId=16V074000"
}
]
},
"investigations": { "total": 0, "open": 0, "items": [] },
"manufacturer_communications": {
"total": 327,
"by_system": [
{ "system": "EQUIPMENT", "subsystem": "", "source_field": "nhtsa_component", "count": 143 },
{ "system": "ELECTRICAL SYSTEM", "subsystem": "", "source_field": "nhtsa_component", "count": 53 },
{ "system": "ENGINE", "subsystem": "", "source_field": "nhtsa_component", "count": 37 },
{ "system": "ENGINE AND ENGINE COOLING", "subsystem": "", "source_field": "nhtsa_component", "count": 30 },
{ "system": "VISIBILITY", "subsystem": "", "source_field": "nhtsa_component", "count": 30 },
{ "system": "FUEL SYSTEM, GASOLINE", "subsystem": "", "source_field": "nhtsa_component", "count": 25 },
{ "system": "POWER TRAIN", "subsystem": "", "source_field": "nhtsa_component", "count": 22 },
{ "system": "BACK OVER PREVENTION", "subsystem": "", "source_field": "nhtsa_component", "count": 18 },
{ "system": "EQUIPMENT ADAPTIVE/MOBILITY", "subsystem": "", "source_field": "nhtsa_component", "count": 18 },
{ "system": "STRUCTURE", "subsystem": "", "source_field": "nhtsa_component", "count": 18 },
{ "system": "EXTERIOR LIGHTING", "subsystem": "", "source_field": "nhtsa_component", "count": 7 },
{ "system": "FUEL/PROPULSION SYSTEM", "subsystem": "", "source_field": "nhtsa_component", "count": 5 },
{ "system": "AIR BAGS", "subsystem": "", "source_field": "nhtsa_component", "count": 4 },
{ "system": "SUSPENSION", "subsystem": "", "source_field": "nhtsa_component", "count": 4 },
{ "system": "VISIBILITY/WIPER", "subsystem": "", "source_field": "nhtsa_component", "count": 3 },
{ "system": "INTERIOR LIGHTING", "subsystem": "", "source_field": "nhtsa_component", "count": 2 },
{ "system": "LATCHES/LOCKS/LINKAGES", "subsystem": "", "source_field": "nhtsa_component", "count": 2 },
{ "system": "SERVICE BRAKES", "subsystem": "", "source_field": "nhtsa_component", "count": 2 },
{ "system": "STEERING", "subsystem": "", "source_field": "nhtsa_component", "count": 2 },
{ "system": "LANE DEPARTURE", "subsystem": "", "source_field": "nhtsa_component", "count": 1 },
{ "system": "PARKING BRAKE", "subsystem": "", "source_field": "nhtsa_component", "count": 1 },
{ "system": "SEATS", "subsystem": "", "source_field": "nhtsa_component", "count": 1 }
],
"by_subsystem": [
{ "system": "EQUIPMENT", "subsystem": "ELECTRICAL", "source_field": "nhtsa_component", "count": 35 },
{ "system": "EQUIPMENT", "subsystem": "APPLIANCE", "source_field": "nhtsa_component", "count": 32 },
{ "system": "EQUIPMENT", "subsystem": "OTHER", "source_field": "nhtsa_component", "count": 32 },
{ "system": "ELECTRICAL SYSTEM", "subsystem": "SOFTWARE", "source_field": "nhtsa_component", "count": 25 },
{ "system": "POWER TRAIN", "subsystem": "AUTOMATIC TRANSMISSION", "source_field": "nhtsa_component", "count": 10 },
{ "system": "STRUCTURE", "subsystem": "BODY", "source_field": "nhtsa_component", "count": 9 },
{ "system": "VISIBILITY", "subsystem": "DEFROSTER/DEFOGGER/HVAC SYSTEM", "source_field": "nhtsa_component", "count": 8 },
{ "system": "POWER TRAIN", "subsystem": "AXLE ASSEMBLY", "source_field": "nhtsa_component", "count": 5 },
{ "system": "EXTERIOR LIGHTING", "subsystem": "BRAKE LIGHTS", "source_field": "nhtsa_component", "count": 4 },
{ "system": "FUEL SYSTEM, GASOLINE", "subsystem": "STORAGE", "source_field": "nhtsa_component", "count": 4 },
{ "system": "BACK OVER PREVENTION", "subsystem": "CAMERA SYSTEM", "source_field": "nhtsa_component", "count": 2 },
{ "system": "FUEL SYSTEM, GASOLINE", "subsystem": "DELIVERY", "source_field": "nhtsa_component", "count": 2 },
{ "system": "SUSPENSION", "subsystem": "MULTIPLE AXLE", "source_field": "nhtsa_component", "count": 2 },
{ "system": "BACK OVER PREVENTION", "subsystem": "SENSING SYSTEM", "source_field": "nhtsa_component", "count": 1 },
{ "system": "BACK OVER PREVENTION", "subsystem": "SOFTWARE", "source_field": "nhtsa_component", "count": 1 },
{ "system": "ELECTRICAL SYSTEM", "subsystem": "ADAS", "source_field": "nhtsa_component", "count": 1 },
{ "system": "EQUIPMENT", "subsystem": "MECHANICAL", "source_field": "nhtsa_component", "count": 1 },
{ "system": "LATCHES/LOCKS/LINKAGES", "subsystem": "DOORS", "source_field": "nhtsa_component", "count": 1 },
{ "system": "LATCHES/LOCKS/LINKAGES", "subsystem": "TRUNK LID", "source_field": "nhtsa_component", "count": 1 },
{ "system": "STEERING", "subsystem": "STEERING WHEEL/HANDLE BAR", "source_field": "nhtsa_component", "count": 1 },
{ "system": "VISIBILITY", "subsystem": "REARVIEW MIRRORS/DEVICES", "source_field": "nhtsa_component", "count": 1 }
],
"recent": [
{
"nhtsa_id": "11037693",
"document_id": ["A26-008"],
"communication_date": "2026-09-25",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, and/or misfire. In some cases, DTCs P0300 through P0304 may also be stored (DTCs are not required for repair)."
},
{
"nhtsa_id": "11037695",
"document_id": ["A26-009"],
"communication_date": "2026-09-25",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, and/or misfire. In some cases, DTCs P0300 through P0304 may also be stored (DTCs are not required for repair)."
},
{
"nhtsa_id": "11037709",
"document_id": ["A26-097"],
"communication_date": "2026-09-25",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, and/or misfire. In some cases, DTCs P0300 through P0304 may also be stored (DTCs are not required for repair)."
},
{
"nhtsa_id": "11037711",
"document_id": ["A26-099"],
"communication_date": "2026-09-25",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, and/or misfire. In some cases, DTCs P0300 through P0304 may also be stored (DTCs are not required for repair)."
},
{
"nhtsa_id": "11036649",
"document_id": ["A26-097"],
"communication_date": "2026-08-28",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, misfire, and/or DTCs P0300 thru P0304 stored."
},
{
"nhtsa_id": "11036654",
"document_id": ["A26-099"],
"communication_date": "2026-08-28",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, misfire, and/or DTCs P0300 thru P0304 stored."
},
{
"nhtsa_id": "11036408",
"document_id": ["A26-009"],
"communication_date": "2026-08-26",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, misfire and/or DTCs P0300 thru P0304 stored."
},
{
"nhtsa_id": "11036417",
"document_id": ["A26-097"],
"communication_date": "2026-08-26",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, misfire and/or DTCs P0300 thru P0304 stored."
},
{
"nhtsa_id": "11036419",
"document_id": ["A26-099"],
"communication_date": "2026-08-26",
"communication_type": ["Service Bulletin/Repair Instructions"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Service Bulletin - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, misfire and/or DTCs P0300 thru P0304 stored."
},
{
"nhtsa_id": "11036424",
"document_id": ["AEBM08262026901"],
"communication_date": "2026-08-26",
"communication_type": ["Other"],
"campaign_id": null,
"systems": ["ENGINE"],
"mfr_system": null,
"mfr_subsystem": null,
"summary": "Dealer Message - Under certain conditions, the cylinder head gasket effectiveness may be reduced which may cause vehicles to experience overheating, coolant loss, misfire, and/or DTCs P0300 through P0304 stored."
}
]
},
"rate": {
"complaints_per_100k_sold": null,
"units_sold": null,
"sales_year": null,
"basis": "calendar_year_us_sales_proxy_for_model_year",
"source": null,
"source_url": null,
"null_reason": "variant_mismatch"
},
"model_tags": {
"model": "typesafe/jev-1.13-20260917",
"schema_version": "tag-v1",
"tagged_complaints": 1082,
"complaints_total": 1082,
"tagged_share": 1,
"failure_modes": [
{
"label": "loss_of_control",
"count": 376,
"share": 0.34750462107208874,
"mean_confidence": 0.727792553191489,
"high_confidence_count": 151,
"low_confidence_count": 40
},
{
"label": "mechanical_failure",
"count": 224,
"share": 0.20702402957486138,
"mean_confidence": 0.6818750000000003,
"high_confidence_count": 63,
"low_confidence_count": 40
},
{
"label": "noise_or_comfort",
"count": 153,
"share": 0.1414048059149723,
"mean_confidence": 0.8285620915032681,
"high_confidence_count": 101,
"low_confidence_count": 10
},
{
"label": "electrical_electronic",
"count": 147,
"share": 0.13585951940850277,
"mean_confidence": 0.8663265306122445,
"high_confidence_count": 113,
"low_confidence_count": 12
},
{
"label": "visibility_or_lighting",
"count": 51,
"share": 0.04713493530499076,
"mean_confidence": 0.743921568627451,
"high_confidence_count": 23,
"low_confidence_count": 7
},
{
"label": "fluid_or_fuel_leak",
"count": 46,
"share": 0.04251386321626617,
"mean_confidence": 0.7510869565217391,
"high_confidence_count": 22,
"low_confidence_count": 7
},
{
"label": "structural_or_corrosion",
"count": 35,
"share": 0.03234750462107209,
"mean_confidence": 0.8494285714285712,
"high_confidence_count": 25,
"low_confidence_count": 5
},
{
"label": "restraint_or_airbag",
"count": 24,
"share": 0.022181146025878003,
"mean_confidence": 0.9187500000000001,
"high_confidence_count": 20,
"low_confidence_count": 1
},
{
"label": "unclear",
"count": 20,
"share": 0.018484288354898338,
"mean_confidence": 0.7995000000000001,
"high_confidence_count": 13,
"low_confidence_count": 2
},
{
"label": "fire_or_overheating",
"count": 6,
"share": 0.005545286506469501,
"mean_confidence": 0.8116666666666665,
"high_confidence_count": 4,
"low_confidence_count": 1
}
],
"severities": [
{
"label": "moderate",
"count": 755,
"share": 0.6977818853974121,
"mean_confidence": 0.8754701986755012,
"high_confidence_count": 593,
"low_confidence_count": 32
},
{
"label": "low",
"count": 269,
"share": 0.24861367837338263,
"mean_confidence": 0.8246840148698883,
"high_confidence_count": 183,
"low_confidence_count": 26
},
{
"label": "high",
"count": 44,
"share": 0.04066543438077634,
"mean_confidence": 0.897272727272727,
"high_confidence_count": 36,
"low_confidence_count": 2
},
{
"label": "none",
"count": 12,
"share": 0.011090573012939002,
"mean_confidence": 0.7658333333333335,
"high_confidence_count": 7,
"low_confidence_count": 2
},
{
"label": "critical",
"count": 2,
"share": 0.0018484288354898336,
"mean_confidence": 0.835,
"high_confidence_count": 1,
"low_confidence_count": 0
}
],
"confidence_note": "Confidence is the model's own probability for the label it chose (0 to 1), not accuracy.",
"note": "Model-generated labels on tagged complaints only. Model years 2013 and newer are tagged in full; 2012 in part (see tagged_share); earlier model years have no tags. NHTSA's own flags remain separate in the complaints block."
},
"model_tags_null_reason": null,
"data": {
"built_at": "2026-10-07T21:35:09.694572+00:00",
"sources": [
{ "name": "NHTSA complaints API", "url": "https://api.nhtsa.gov/complaints/complaintsByVehicle" },
{ "name": "NHTSA bulk complaints", "url": "https://static.nhtsa.gov/odi/ffdd/cmpl/FLAT_CMPL.zip" },
{ "name": "NHTSA recalls (2010 and later)", "url": "https://static.nhtsa.gov/odi/ffdd/rcl/FLAT_RCL_POST_2010.zip" },
{ "name": "NHTSA recalls (before 2010)", "url": "https://static.nhtsa.gov/odi/ffdd/rcl/FLAT_RCL_PRE_2010.zip" },
{ "name": "NHTSA investigations", "url": "https://static.nhtsa.gov/odi/ffdd/inv/FLAT_INV.zip" },
{
"name": "NHTSA manufacturer communications (yearly archives, newest shown)",
"url": "https://static.nhtsa.gov/odi/ffdd/tsbs/TSBS_RECEIVED_2025-2026.zip"
}
],
"notes": [
"Complaints from the API and bulk file are merged and deduplicated by ODI number; the API alone misses records.",
"System and subsystem counts are numbers of distinct complaints, recalls or communications that name them. One record can name several systems, so shares across systems can add to more than 100 percent; a single share never exceeds 100 percent.",
"Recalls are counted once per campaign, investigations once per action and manufacturer communications once per NHTSA id, even when NHTSA lists several model names for the same record.",
"A sales denominator is a calendar-year proxy, not the population of vehicles still in use. Rates are copied from verified pipeline output."
]
}
},
"listing_events": [
{
"id": 15585,
"event_date": "2026-10-15",
"event_type": "price_drop",
"vin": "19XFC1F91GE040781",
"make": "Honda",
"model": "Civic",
"year": 2016,
"price_old": 16700,
"price_new": 16500,
"mileage": 91777,
"listing_url": "https://www.schaumburghondaautos.com/used-Schaumburg-2016-Honda-Civic-Touring-19XFC1F91GE040781",
"source": "Schaumburg Honda Automobiles"
},
{
"id": 11975,
"event_date": "2026-10-11",
"event_type": "price_drop",
"vin": "19XFC1F91GE040781",
"make": "Honda",
"model": "Civic",
"year": 2016,
"price_old": 16800,
"price_new": 16700,
"mileage": 91777,
"listing_url": "https://www.schaumburghondaautos.com/used-Schaumburg-2016-Honda-Civic-Touring-19XFC1F91GE040781",
"source": "Schaumburg Honda Automobiles"
},
{
"id": 10885,
"event_date": "2026-10-10",
"event_type": "relisted",
"vin": "19XFC1F91GE040781",
"make": "Honda",
"model": "Civic",
"year": 2016,
"price_old": null,
"price_new": 16800,
"mileage": 91777,
"listing_url": "https://www.schaumburghondaautos.com/used-Schaumburg-2016-Honda-Civic-Touring-19XFC1F91GE040781",
"source": "Schaumburg Honda Automobiles"
},
{
"id": 9777,
"event_date": "2026-10-09",
"event_type": "delisted",
"vin": "19XFC1F91GE040781",
"make": "Honda",
"model": "Civic",
"year": 2016,
"price_old": null,
"price_new": 16800,
"mileage": 91777,
"listing_url": "https://www.schaumburghondaautos.com/used-Schaumburg-2016-Honda-Civic-Touring-19XFC1F91GE040781",
"source": "Schaumburg Honda Automobiles"
},
{
"id": 1250,
"event_date": "2026-10-07",
"event_type": "new",
"vin": "19XFC1F91GE040781",
"make": "Honda",
"model": "Civic",
"year": 2016,
"price_old": null,
"price_new": 16800,
"mileage": 91777,
"listing_url": "https://www.schaumburghondaautos.com/used-Schaumburg-2016-Honda-Civic-Touring-19XFC1F91GE040781",
"source": "Schaumburg Honda Automobiles"
}
]
}

Price

EventUSD per eventWhen it is charged
vin-risk-record$0.03Charged once per VIN that decodes, resolves to an API risk record and is successfully pushed to the dataset. Invalid VINs, decode failures, unknown vehicles, API or requested-history errors and failed dataset writes are not charged.
vin-listing-history$0.01Charged once per VIN only when requested history contains at least one listing event and the complete VIN risk item is successfully pushed. History is not charged when disabled, empty, invalid, unavailable, or when decoding, risk lookup or dataset writing fails.
  • The first input above costs $0.03 + $0.01 = $0.04, because the VIN had stored listing events. The second input costs 3 x $0.03 = $0.09.
  • 100 VINs without history cost $3.00; with history they cost at most $4.00.
  • Repeating a VIN in a run is a separate item and a separate charge.
  • Apify adds its own Actor start event to every run ($0.00005 on this Actor's Pricing tab on 2026-10-16).
  • Cap a run with maxTotalChargeUsd (example below). The run stops at the cap and keeps what it saved.

How to run

In Apify Console, open the Actor, paste an input example and press Start. To run it from code or from an agent:

Call from the Apify API

Use your Apify token. The Used Car Index API key is held by the Actor as a secret and is never part of your request, your dataset or the logs. This example caps the run at $1.

curl -X POST 'https://api.apify.com/v2/acts/theusedcarindex~vin-to-risk-record/run-sync-get-dataset-items?maxTotalChargeUsd=1' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
--data '{"vins":["19XFC1F91GE040781"],"includeListingHistory":true}'

Call from an MCP client

In an MCP client that supports remote Streamable HTTP, add this server URL with your Apify token as a bearer header:

URL: https://mcp.apify.com/?actors=theusedcarindex/vin-to-risk-record
Header: Authorization: Bearer <your Apify token>

Initialize the connection and call tools/list. The client then shows this Actor as a tool; call it with the first input example as its arguments. Tool names and wrapper fields come from tools/list, so read them there instead of assuming a name. If your client offers a generic Actor-run tool instead, select theusedcarindex/vin-to-risk-record and pass the same input. The run status and dataset come back with the tool result. This route needs access to the Actor from your Apify account.

ActorUse it for
Vehicle risk recordThe same NHTSA record starting from a make, model and model year instead of a VIN
Chicagoland listing changesThe stored listing events for all of the Chicagoland dealers the collector watches, filtered by make, model, year, event type and date

The same data is available without Apify from The Used Car Index at https://theusedcarindex.com: GET https://api.theusedcarindex.com/v1/vehicle_risk and /v1/listing_changes (which takes a vin filter), and an MCP endpoint at https://api.theusedcarindex.com/mcp that serves the API tools directly and does not run or charge these Actors. The MCP endpoint has a free tier that needs no key. As of 2026-10-16 it allows 20 requests per minute per IP and 2,000 per day shared, returns full vehicle risk records and returns up to 10 listing events per call with no paging. Plans with higher limits and cursor paging are at https://theusedcarindex.com/#pricing. The API and the MCP endpoint also serve recall_changes: new and updated NHTSA recalls, investigations and complaint-count changes recorded from a daily comparison of NHTSA's bulk files. Questions or a data issue: use the Issues tab on this Actor's page.

What it returns

Input is a vins array of 1 to 100 strings and, optionally, includeListingHistory (default false). Each VIN is trimmed and uppercased. A valid VIN has 17 characters and no I, O or Q. VINs that start with 1 through 5, or with 7F through 7Z, must also pass the check digit; other VINs get the syntax check only. A non-string value in vins fails input validation before any work.

One dataset item per VIN:

ItemWhenCharged
vin, decoded, risk_record and, with history on, listing_eventsThe VIN is valid, decodes and resolves to a risk recordYes
valid false with vin and a reason: invalid_length, invalid_characters or invalid_check_digitThe text is not a valid VINNo
vin and errorvPIC could not decode the VINNo
vin, decoded, found false and suggestionsThe decode has no risk recordNo
vin, optional decoded and error, with a stable code and the HTTP status when there is oneAny other lookup failure, including a failed history requestNo

A VIN that fails validation, real output for the text BADVIN:

{ "valid": false, "vin": "BADVIN", "reason": "invalid_length" }

decoded holds the make, model and year from the vPIC decode. risk_record is the record the Vehicle risk record Actor returns for that make, model and year; its README describes each block. vPIC requests run one at a time, with a 250 ms pause before every attempt and a descriptive User-Agent. A decode counts only when vPIC reports a clean decode with a make, a model and a model year from 2000 through 2027.

With history on, one request fetches up to 50 stored listing events for the VIN, newest first, after its risk record resolves. It does not follow the cursor, so a VIN with more events returns its 50 newest. listing_events is present even when empty. A failed history request gives an error item for that VIN instead of a partial record, and nothing is charged for it.

Both charges follow the complete item being saved, history first. Before each VIN the remaining budget must cover $0.04 with history on or $0.03 without it, so a run with a tight cap can stop before a VIN that would have had empty history. Input is validated before any lookup or charge. The run stops at your spending limit and keeps what it saved. A request that fails on the network, with HTTP 429 or with a 5xx status is tried up to three times in total.

Sources and facts boundary

The decode comes from NHTSA vPIC. The risk record comes from NHTSA's published files and API; its data.sources lists each one with its URL. NHTSA complaints combine the complaints API and the bulk file, merged and deduplicated by ODI number. Rates divide complaints by calendar-year US sales from a named public source, a proxy for the model year, and appear only where that source is verified for the vehicle; otherwise rate is null with a reason. Model tags are model-generated labels (the model is named in model_tags.model), are marked as such and never replace NHTSA's own fields. The risk record describes the make, model and model year the VIN decodes to; it is not the recall or repair history of that individual car.

Listing events come from the public inventory pages of the watched dealer websites. Facts only: VIN, price, mileage, status, dates, link back. Never photos or dealer-written text. A listing that is no longer observed is reported as delisted, and delisted is never labeled sold. A delisted event means no longer listed; it does not establish a transaction. NHTSA official record text in risk records is distinct from dealer-written text. Dataset items never contain added agent instructions.

Known gaps

  • The NHTSA record is by make, model and model year. It does not say whether a specific car has an open recall or has been repaired.
  • vPIC can be unavailable or return incomplete data; such VINs return an uncharged error item. A record reflects the NHTSA data build in risk_record.data.built_at (2026-10-07 on 2026-10-16), and a zero count is confirmed only when complaints.coverage_complete is true.
  • Listing history covers the Chicagoland dealers the collector watches (59 dealer websites on 2026-10-16), not the whole market, and starts on 2026-10-07. An empty listing_events does not establish that a car was never listed.
  • Rates use calendar-year sales as a proxy for the model year and exist only where a verified sales source matches the vehicle. Counts are not a reliability rating, prediction or repair recommendation.
  • Some manufacturer communication and investigation summaries show stray characters where the source text has punctuation such as a dash or an apostrophe.
  • Dataset writes and charges are separate operations. If a run stops after a write, an item can be saved without its charge, and running the same input again repeats items and charges.
  • A run through an MCP client has not been tested end to end.

Owner setup, done once by the publisher and not by callers: set the secret environment variable UCI_API_KEY in the Apify Console; it is never accepted in input, logged or returned. UCI_API_BASE optionally selects another API origin (HTTPS, default https://api.theusedcarindex.com). Configure the custom events from .actor/pay_per_event.json and turn automatic dataset-item pricing off; the Actor stops before any lookup if the pricing does not match.