Tesla Certified Pre Owned (Used) Inventory Tracker

I’ve been on the hunt for a decent used Model 3 and was stunned that most inventory tracking sites or Telegram bots cannot track individual VIN’s price fluctuations. This is pretty surprizing as Tesla’s used inventory pricing is dynamic (price can increase or decrease), and can change daily on some inventory items.

To circumvent this, I decided it would be easiest to create my own application that tracks specific VINs in Tesla’s used (CPO - Certified Pre Owned) inventory. I accomplished this by semi-reverse engineering Tesla’s Inventory API.

Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.

What it does

The add-on allows you to configure and track which used models you want (3/Y/S/Cybertruck) and any specific VINs that fall within those categories.

Whenever there is a price change, the add-on will send you a push notification with the model, VIN, and price change via Home Assistant. If you tap on the notification, it’s configured to send you directly to the vehicle on Tesla’s website (not an affiliate link).

Configuring the add-on

You’ll need to know a couple things before you can enable it. Luckily this is really easy and all you need to do is find a vehicle you’re interested in tracking on Tesla’s website.

Let’s say you found a vehicle in their used inventory. Now copy the link to that vehicle out of your browser’s window. It should look something like this:

  • https://www.tesla.com/en_CA/m3/order/5YJ3E1ECXNF253729

This URL breaks down into the following format:

  • https://www.tesla.com/{LANGUAGE}_{REGION}/{MODEL}/order/{VIN}

Looking back at our original URL, let’s decode it:

  • https://www.tesla.com/en_CA/m3/order/5YJ3E1ECXNF253729
    • en is the Language; English
    • CA is the Region and Market; Canada
    • m3 is the Model; Model 3
    • 5YJ3E1ECXNF253729 is the vehicle’s VIN
    • Note, if a ? comes after the VIN (for example .../m3/order/5YJ3E1ECXNF253729?postalCode=90210&coord=....) you can safely remove everything that comes after the ? including the ?

Note - if your URL doesn’t have a language or region, that likely means you’re based in the USA. You can substitute the following values in that case:

  • Language: en
  • Region: US
  • Market: US

Now that you’ve got the Language, Region, Market, Model, and a VIN, you can stick those into the add-on’s configuration.

Lastly add which devices you want to send a notification to; this typically follows a common naming convention like: mobile_app_{YOUR-DEVICE}.

Click Save and away you go!