EVStock web app: nationwide search for EV inventory for different brands

I double-checked, and I don’t see any issues in my layer, before it’s passed to a porsche API as one of the search parameters. Could be their problem though. Would you mind sharing scenario where this manifests itself? Never mind. Did some additional digging, and it’s porsche API. Regardless of radius passed to them, they return entries as far as 1200 miles from the zip. I disabled radius for now.

I also messed up models/trims on my UI, this is now fixed. Model for taycan is read-only, and trims are selectable.

Figured out the link to official porsche details for each car. Added that as clickabe link in the VIN column.

1 Like

Added Jaguar. Looks to be only 10 listings nationwide, and some of them are sold if searched by VIN. Eh…

2 Likes

Added Mach-E search. It’s veeeeeery slooooooow; this is due to Ford’s API’s hard limitation of returning 12 listings per call. So for me to collect 120 entries, I need to make 10 calls, and also wait full second between those calls to avoid triggering of their safeguarding mechanisms, if they have any. This is just 10 seconds of pure safety wait on my side.

Best to limit your search radius, max results number, and choose a trim or two upfront.

They also require API key for all requests. I extracted one they use now from their inventory website, but this quite possibly will change in the future. If this stops working, I’ll see if it just needs new key.

3 Likes

Added Nissan LEAF.

2 Likes

Played around with it. I’m a developer/solutions architect as well working in Azure/MSFT stack. Nice job.

Add a filter for availability. Sort is good for now. I only played around with the chevy option. Guessing you are going to add other brands.

You have a bug tracking/feature tracking list other than this page?
I’m great at testing UI and replicating bugs.
Anyhow, it would be nice if as you clicked across the tabs up top if it would copy some of the fields, such as your zip code, the radius, the sort order (availability), the results quantity. I’m okay with other fields clearing out.
It is great that you are figuring out the API. Looks robust indeed.

At some time, you’ll have to tweak this UI I would think. Right now it is very power-user focused, and kind of a replacement for an excel spreadsheet. At some point you will need to return to the UI to make it simpler. Less controls. Easier to use. like switching from the tabs to a dropdown and single form/grid control.

Happy it is working. I dig it. Impressed.

This is super neat. I’m also a dev. Let me know if you want any help, or decide to open-source it. I did something a few months back for Mercedes.

Out of curiosity, what stack did you use?

Appreciate feedback, thanks. I’m on vacation until Saturday, I’ll reply to everyone in details once I’m back.

1 Like

Good idea, let me look into adding it. Although availability data varies by each brand’s API, some don’t seem to include it, I should be able to normalize it in my layer.

The code is in private github repo for now. Let me know your github username, I’ll add you. We could use their issue tracking feature for this.

Good idea, should be fairly quick to implement.

Of course. Let me know your github username, I’ll add you to the code repository. Core layer and my API is written in C# on .NET core 3.1, UI is JQuery/HTML.

Added in stock/in transit toggle to Nissan, Ford and Chevy searches.

image

Default is “On”. Will return only what’s already at the dealer lots. Toggle to “Off” to include in-transit vehicles.

1 Like

Added client-side code to persist zip, search radius and max results filter values across all tabs, when those are changed from their initial values.

1 Like

Great. Looks like you’re going to need to add the Leaff MY 2022 to the search field, as they are being shipped to dealers now in small quantities.

1 Like

Good catch. Looks like there is a dependency between trim codes and model years, that I overlooked initially. This might be why all I’m getting results for 2021 only, even though Nissan inventory shows results for 2022. I’ll look closer into adjusting it.

Tuned Nissan search to include 2022 models. All are in transit, so turn “only show vehicles at dealership” to off if searching for those, at least for now.

Sort of hacked workaround to trim code to year dependency, to grab everything from Nissan API, and then filter it down by trim in my layer, might not return all possible vehicles, not sure at this point.

Also, their API returns broken links to 2022 images, hope they fix it.

1 Like

As it was expected, key changes, looks like every 4-5 days. I’ve already updated it twice. If you see parsing error on a Ford tab, it means key isn’t valid anymore. Just ping me and I’ll update with a valid one, which should be good for another few days.

2 Likes

Added Hyundai, both Kona and Ioniq.

2 Likes

Super cool and useful tool. Also a fellow dev here. Did these brands have public APIs or did you discover the routes yourself and have you run into any rate limits? Nonetheless, great tool and much faster load times than the actual brand site.

Thanks

Nice. Hello fellow dev :wave: :wave:

All of these do have public APIs that their own inventory websites use to pull the data. I basically just lumped them all together on one page and normalized for filtering ability and the way response is presented. Almost all of them are completely unrestricted, only Ford requires some sort of a key, and it can be easily extracted by looking at their inventory website requests.

I haven’t run into any rate limiting so far, although couple of their APIs use hard limit on number of results per call, so I need to programmatically do multiple paging calls to collect most of the results. I do some pre-emptive waiting between calls on my side, not to trip any rate limiting, if there is even any, though.

3 Likes

Great tool. I am NOT an IT guy so I will ask one stupid question:
If the dealer will not update His website the real stock might be different, correct?