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.
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.
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.
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.
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.
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.
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.
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.
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?