Canada VIN Decoder: Recalls & Market Value Report avatar

Canada VIN Decoder: Recalls & Market Value Report

Pricing

from $1.25 / 1,000 vin reports

Go to Apify Store
Canada VIN Decoder: Recalls & Market Value Report

Canada VIN Decoder: Recalls & Market Value Report

Decode VINs in bulk and get US and Transport Canada recalls, NHTSA safety stars and complaints, plus the live Canadian market value from AutoTrader.ca, Kijiji and CarGurus comparables, with a deal rating for your asking price.

Pricing

from $1.25 / 1,000 vin reports

Rating

0.0

(0)

Developer

Youssef Farhan

Youssef Farhan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

Canada VIN Decoder: Recalls and Market Value Report

Paste a list of VINs (or upload a spreadsheet) and get one report per vehicle. Each report has the decoded specs, the US (NHTSA) and Canadian (Transport Canada) recalls, NHTSA crash-test stars and complaint counts, and the live Canadian market value built from comparable cars for sale on AutoTrader.ca, Kijiji and CarGurus.ca. Add an asking price and odometer and you also get a deal rating (great, good, fair, high or overpriced).

It is a bulk VIN check made for Canada: one run handles a single car or a fleet of thousands, and the result exports to Excel, CSV, JSON or Google Sheets.

What you get for every VIN

  • VIN decoding. Year, make, model, trim, series, body style, doors, drivetrain, fuel, electrification, engine (cylinders, litres, horsepower, code), transmission, GVWR class and assembly plant. The full decoder output, around 60 to 90 attributes per vehicle, is kept in specs.
  • VIN validation. Wrong length and impossible characters are caught. The check digit (9th character) is verified, so a mistyped VIN is flagged instead of silently decoding to the wrong car. Letters O, I and Q, which never appear in a VIN, are read as 0, 1 and 0.
  • Recalls from both countries. NHTSA recall campaigns (component, summary, consequence, remedy, "park it" warnings, over-the-air fixes) and Transport Canada recalls (system, description in English and French, units affected in Canada).
  • Safety. NHTSA 5-star crash ratings per body variant and the number of owner complaints filed with NHTSA.
  • Canadian market value. Median asking price, 25th and 75th percentile, low and high, from live comparable listings on AutoTrader.ca, Kijiji and CarGurus.ca. A car listed on two or three sites counts once.
  • An estimate for this car. Uses same-trim comparables when there are enough, adjusted to the odometer you give, plus the price change per 10,000 km in the current market.
  • Deal rating. With an asking price, you get where it sits among the comparables (percentile), the gap to the estimate in dollars and percent, and a rating.
  • Is it for sale right now? If the exact VIN shows up among the listings read, you get its price, km, seller, days on market and link.
  • Sample comparables. Up to five similar cars with links, nearest in km and same trim first.

Who it is for

  • Used car dealers and wholesalers: appraise trade-ins and auction lists in bulk, check recalls before you list, and price against the live Canadian market.
  • Fleet managers and leasing companies: run the whole fleet for open recalls in the US and Canada, and track what each unit is worth today.
  • Lenders and insurers: validate the VIN on an application, confirm the vehicle matches, and check the asking price against the market before you fund or insure.
  • Marketplaces and classifieds: enrich listings with decoded specs, recall counts and a price-vs-market badge.
  • Car buyers: check a car's recalls and whether the price is fair before you call the seller.
  • AI agents: call it through the Apify MCP server or the API to answer "is this a good price?" or "does this VIN have recalls?" in one step.

How to use it

  1. Paste your VINs in VINs, one per line. To get a deal rating, add the asking price and the odometer after the VIN: 2HGFC2F61JH031314, 18500, 90000.
  2. Or upload a spreadsheet (Excel, CSV or a Google Sheets link). The column named VIN is used; columns with "price" and "km", "mileage" or "odometer" in the header are read as asking price and odometer. Your original columns are kept in each result.
  3. Keep Recalls and safety ratings and Canadian market value on, or turn either off.
  4. For a local market, set a postal code and a radius. Leave the radius at 0 to compare against all of Canada.
  5. Run it and download the results, or open the Recalls and Market value views in the Output tab.

Input example

{
"vins": [
"2HGFC2F61JH031314, 18500, 90000",
"2T1BURHE2JC018315",
"1C4RJFCG7FC647891, 17000, 160000"
],
"include_recalls": true,
"include_market_value": true,
"postal_code": "M5V 3L9",
"radius_km": 250,
"comparables_per_site": 40
}

Output example

One row per VIN (shortened; recall and comparable lists trimmed to one entry):

{
"vin": "2HGFC2F61JH031314",
"status": "ok",
"valid": true,
"check_digit_valid": true,
"year": 2018,
"make": "Honda",
"model": "Civic",
"trim": "LX Honda Sensing",
"body_class": "Sedan/Saloon",
"drive_type": "4x2",
"fuel_type": "Gasoline",
"engine_cylinders": 4,
"engine_displacement_l": 2.0,
"engine_hp": 158,
"transmission": "Continuously Variable Transmission (CVT)",
"plant_city": "ALLISTON",
"plant_country": "CANADA",
"recall_scope": "Recalls issued for the 2018 Honda Civic (model year, not this VIN)",
"us_recall_count": 6,
"canada_recall_count": 7,
"us_complaints_count": 596,
"nhtsa_overall_stars": 5,
"canada_recalls": [
{
"recall_number": "2018536",
"date": "2018-09-27",
"system": "Steering",
"units_affected_in_canada": 9,
"description": "On certain vehicles, the electric power steering system could get caught in an infinite loop..."
}
],
"market_scope": "2018 Honda Civic, used, within 250 km of M5V3L9",
"comparables_count": 98,
"market_confidence": "high",
"market_p25": 14995,
"market_median": 16944,
"market_p75": 18990,
"trim_comparables_count": 13,
"trim_market_median": 15999,
"price_change_per_10000_km": -602,
"estimated_value": 17147,
"estimate_basis": "median of LX Honda Sensing comparables, adjusted to 90,000 km",
"asking_price": 18500,
"mileage_km": 90000,
"asking_price_percentile": 72,
"price_vs_estimate": 1353,
"price_vs_estimate_pct": 7.9,
"deal_rating": "high",
"currently_listed": false,
"sample_comparables": [
{
"title": "2018 Honda Civic",
"trim": "LX with Honda Sensing",
"price": 16490,
"mileage_km": 95535,
"city": "Boucherville",
"listed_on": ["autotrader", "cargurus"],
"url": "https://www.cargurus.ca/Cars/inventorylisting/..."
}
]
}

Main output fields

FieldWhat it is
vin, status, check_digit_valid, messageThe VIN, ok, and any note (for example a check digit that does not match)
year, make, model, trim, seriesDecoded identity
body_class, drive_type, fuel_type, electrificationBody and powertrain
engine_cylinders, engine_displacement_l, engine_hp, transmissionEngine and gearbox
plant_city, plant_state, plant_country, manufacturerWhere it was built
us_recall_count, us_recall_campaigns, us_recallsNHTSA recalls for the make, model and model year
canada_recall_count, canada_recall_numbers, canada_recallsTransport Canada recalls for the make, model and model year
nhtsa_overall_stars, nhtsa_safety_ratings, us_complaints_countCrash-test stars and owner complaints
market_median, market_p25, market_p75, market_low, market_highCanadian asking prices of comparable cars, CAD
estimated_value, estimate_basisEstimate for this car (trim and odometer aware)
asking_price_percentile, price_vs_estimate, deal_ratingWhere your asking price sits
comparables_count, market_confidence, comparables_by_siteHow much data the value rests on
currently_listed, current_listingThis exact VIN for sale right now, with its link
specsEvery attribute the VIN decoder returned
input_row, row_numberYour spreadsheet row, when you uploaded one

Pricing

Pay per event, with nothing to install and no API key:

EventWhat triggers it
VIN reportOne decoded VIN in the results (decode, recalls and safety included)
Market valueA report that carries a Canadian market value (3 or more comparables found)

The current rates are shown on this Actor's Store page, with a small discount on bigger Apify plans. VINs that cannot be read (wrong length, impossible characters, unknown to the decoder) are never charged: they are listed in the UNREADABLE_VINS record instead of the results. A market value is only charged when one was found, and the same make, model and year is looked up once per run, however many VINs share it.

The free plan reports the first 10 VINs of each run. Any Apify plan removes the cap.

Good to know

  • Recalls are for the make, model and model year, not the individual VIN. Neither NHTSA nor Transport Canada offers a public per-VIN recall lookup, so a recall listed here may cover only part of that year's production. The manufacturer's or dealer's own VIN check confirms whether a specific car is included and whether the work was done.
  • Market values are asking prices, not sold prices, from cars listed for sale on AutoTrader.ca, Kijiji and CarGurus.ca when the run happens. Sport or luxury versions far from the pack (a Civic Type R among Civics) are left out of the range and the estimate (outliers_excluded).
  • Rare cars get fewer comparables. market_confidence is high from 20 comparables, medium from 8, low from 3. Below 3 no value is given and none is charged.
  • Trim. Some VINs encode the exact trim (LX Honda Sensing), others only a range (L/LE/SE/XLE/XSE). The estimate uses same-trim comparables only when the trim is specific and at least 5 match.
  • Speed. Decoding and recalls take a few seconds for hundreds of VINs. With market value on, each distinct make, model and year takes a few seconds; 60 VINs across 12 models ran in about a minute in testing.
  • US and imported vehicles decode and get recalls too. The market value always comes from Canadian listings.

FAQ

How do I check a VIN for recalls in Canada? Paste the VIN and keep "Recalls and safety ratings" on. You get every Transport Canada recall and every NHTSA recall issued for that make, model and model year, with descriptions and remedies.

Can I decode thousands of VINs at once? Yes. Paste them or upload an Excel or CSV file. Duplicates are reported once, and progress is saved, so a long run that is moved to another server continues where it stopped.

How is the market value calculated? From the asking prices of the same make, model and year listed on AutoTrader.ca, Kijiji and CarGurus.ca, with the copies of the same car on several sites merged. The estimate starts from the median (or the same-trim median), and is adjusted to your odometer using the price-per-km line of the current listings.

Is this a Carfax report? No. It does not include accident, ownership or lien history. It is the decode, recalls, safety ratings and market value, at a fraction of the effort of looking each one up by hand.

Can I use it from my own app or an AI agent? Yes, through the Apify API, the Python and JavaScript clients, Make, Zapier, n8n, or the Apify MCP server for AI agents.

Support and custom work

Found a bug or a VIN that decodes wrong? Open an issue in the Issues tab and I will fix it.

💼 Need a custom solution? Tell me what you need and I'll reply with a solution that fits: youssefarhan24@gmail.com

This Actor uses public government data (NHTSA, Transport Canada) and publicly listed car ads. It is not affiliated with NHTSA, Transport Canada, AutoTrader.ca, Kijiji or CarGurus.