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

For the last couple days, I’ve been toying with idea of creating web app that will allow you to search for available EV inventory directly from horse’s mouth: rather than scraping info from individual dealer websites, (which previously proved a bit tricky and not very reliable), make calls to respective brand’s inventory APIs that their own inventory searches use. Sort of bringing all EV brands on one easy to search page.

Brands supported:

  • Audi
  • Chevrolet (which should also potentially work in the future with GMC and Cadillac EVs)
  • Kia
  • Porsche (added 7/27/2021)
  • Jaguar (added 7/28/2021)
  • Ford (added 7/29/2021)
  • Nissan (added 7/30/2021)
  • Hyundai (added 8/15/2021)
  • Polestar 2 (added 8/24/2021)
  • BMW (added 9/10/2021)
  • VW ID.4 (2/2/2022)
  • MB EQS (6/24/2022)
  • Volvo C40 Recharge (8/26/2022)

Time permitting, I’m gonna go thru all US EV brands and see if they can be added to the app.

Since I’m hitting brand’s API directly, this doesn’t have to be limited to EVs, at least for some of brands. Potentially all models could be searched, I just wanted to limit scope of initial development.

In the next couple days I will deploy it to Azure so anyone can start using it for the brands that already implemented. Meanwhile, let’s discuss what additional features/functionality would be most valuable for the LH community.

Initial release is live:


Initial release is live:

Try it.


Tried it with audi to search for e-tron gts and it’s popping up the suv as well.

Thanks for catching that, I think that’s a bug in audi filtering code. Let me look.

1 Like

Same with the year. Searched for 2021, it shows 2022s as well. Either your select queries are not correct or car data are corrupt.

Just realized audi API doesn’t even seem to have capability to filter by years. So either I missed something or there is no reason to even expose “years” filter for Audi searches. I’ve disabled it for now, so it won’t confuse users, but I’m going to look closer into it.

3 different APIs with 3 different types of invoking, wrapping it into one generic search with filtering - stuff falls thru cracks.

Thanks for testing this, the more the merrier. :+1: :+1: :+1:

There was a bug, should be fixed now.


typical issue for aggregator type of web applications. I am surprised audi api doesnt have year as a filter though.

1 Like

is porsche addable?

This is great!

On the Kia search tab, if I leave years blank I get no results. Once I add a year filter, then it returns results. Seems to be different behavior than Other search filters - is that expected?


I just took another look and I can’t seem to figure out if it has. It probably has it, just need to guess the proper parameter name or something along those lines. Regardless, since API payload returns data for all years, I can easily do year filtering in my layer. I’ll push an update sometime later, which will have audi year filter re-enabled and working.

Good question. I’ll look.

That’s a valid question. For now, yes, it is expected, in terms of possibility of filtering behavior being different across multiple brands. Ultimately though, you’re right, and I’m planning to standardize it across all brands.

1 Like

Wow, it seems it’s easily addable. Rich response payload too, with lots of info. I’ll work on adding this next.


LOL returning an entire datestamp for the model year. Someone over-engineered for a mid-year model change (which VW hasn’t pulled in a dogs-age).


German precision down to millisecond. :joy::joy:


Very useful for me, searching Chevy on the east coast. Came up with a number of good candidates… thanks!

1 Like

Small typo for Kia. You have Nero, while it is spelled Niro. Great job, looking forward to expansion for other popular brands like Hyundai, VW

1 Like

Pushed a fix for Audi year filter, should work now.

Glad to hear, awesome.

Thanks for catching, fixed.


I’m not finding any way to search for Chevy EUV Premier. Any tips?

Usually my approach would be to search for as large inventory result set using as broad initial filtering as possible, and then to filter it down with result grid’s built-in free-text filtering box (that 2nd little “seach” textbox in top right corner of the grid), which allows free-text search by all fields in result set… but with Chevy EVs, without initial trim filter, their API returns such large dataset. So those premium trims were lost in that huge amount of results, it seems.

That led me to add initial trims filter to chevy tab. I just hope I translated their codes to trim names correctly. But for Premium trim it seems to work fine. Try it please and let me know.

Also, found and fixed a glaring bug in Chevy search, which would return NY results for Cali zip due to incorrect radius value. Should also work fine now.

1 Like

Porsche is up. @aronchi should be pleased :slight_smile:

For now there is hard limit of 80 results max, regardless of filter value, due to the way Porsche API is invoked. But you can search by specific trims. This one was not as straight-forward as previous ones and I can’t seem to find vin and dealer links in API response, so results are hard to match with dealer’s pages. I put what looks to be dealer-specific stock # into VIN column for now.


it looks good. the zip code and area doesn’t really work well. like i’m getting hits in MA, but that’s more than 50 miles away.