PullMonkey Blog

19 Feb

VIN API – VIN Decoder for anyone

See Phase II details for complete dataset information.
Take a look at the PHP examples and the .NET examples.
And ... while it's been great being able to give this information away freely for about a year now, we have to share some of the cost with our users, so please read about our pricing model.

VIN API came about through lots of work on a current project of ours - Mr. Quotey.  We are dealing with auto insurance and wanted a way to decode VINs.  The other solutions we found (API-wise) were too expensive for our small, unfunded startup.  So like the way most great things come about, we decided to build our own VIN decoding API.

Using VIN API:

This is explained in detail at VIN API's site, but I will give you a look at what it does here.

If you use Ruby on Rails like I do, then you have the option to use ActiveResource:

Then you can use it like this:

Current Limitations:

Right now each account is limited to 20 VIN requests a month, we are looking to take it slow and prevent abuse.  If you do need more VIN decodings a month, feel free to let us know at Mr. Quotey, we'd be happy to up the max for your account.

Where to next?:

It is too soon to really tell.  We'd like your feedback and to know if this service is useful.  If it gets enough buzz, we would probably pursue it a bit more and drop the monthly limitations.

31 Responses to “VIN API – VIN Decoder for anyone”

  1. By Kerry Wilson on Feb 24, 2010 | Reply

    Nicely done, not sure I would ever use it, but outstanding nonetheless.

  2. By charlie on Feb 25, 2010 | Reply

    Thanks Mr. Wilson — it is sort of one of those niche needs isn’t it? It is picking up a little interest though.

  3. By Marat on Apr 10, 2010 | Reply

    I can’t login, there is some error 🙁

  4. By charlie on Apr 13, 2010 | Reply

    I see your account. I’ll email you.

  5. By charlie on Apr 14, 2010 | Reply

    Actually, I just added a “reset password” page for you off of the login page.

  6. By Matthew on Apr 20, 2010 | Reply

    This is an awesome solution for a lot of companys, actually. Can’t thank you enough for providing this.

  7. By charlie on Apr 22, 2010 | Reply

    @Matthew – glad you like it, spread the word 🙂

  8. By Matthew on Apr 20, 2010 | Reply

    Super duper impressed with this API. I’ll definitely be using it. Couple of questions:

    1) Do you have a rate limit?
    2) Do the results come through in all-caps because that is how it is in your data? If you are capping it before sending it through the API, it is more useful for *some* (meaning me) to have the data in its original form (hopefully proper case).

  9. By charlie on Apr 22, 2010 | Reply

    1) It’s limited to 20 free, unique requests per month right now, since I am still getting feedback.
    2) I don’t change any of the data, I send it in original form.

  10. By Matthew on Apr 30, 2010 | Reply

    Hi Charlie. I sent an email about possibly getting a larger rate limit in exchange for writing a C# library and never heard back from your team. Should I take that as a “no”?

  11. By charlie on May 1, 2010 | Reply

    Matthew – sorry about taking so long to get back to your email. It’s definitely not a “no” and we look forward to working with you.

  12. By Jeremy Randolph on May 15, 2010 | Reply

    I emailed a few days ago and haven’t received a reply back. I’d also like to know about changing the rate.

  13. By charlie on May 17, 2010 | Reply

    We are a few days behind on email with regards to VIN API and its 20 requests a month limit. A lot more interest than we anticipated 🙂

  14. By John Sig on Nov 3, 2010 | Reply

    DO you have an example of using this with
    PHP 5 and curl?

  15. By charlie on Nov 3, 2010 | Reply

    Hey John,

    I can help you come up with one, but other than the curl example at the bottom of vinapi.skizmo.com, I don’t have anything for you.
    I know that vinapi has been used with php, hopefully one of those users can offer up an example for you.

  16. By Vitalik on Nov 16, 2010 | Reply

    Here is an example of how to use this with php:



    In this instance I have this script triggered when a vin is set in the url (example.com/vin.php?vin=VIN_NUMBER_HERE)

    You can just remove the if statement and set your own way to retrieve the vin and just use ## echo decodeVIN($vin); ## to trigger the function.


  17. By Vitalik on Nov 16, 2010 | Reply

    Apparently the PHP script was cut out from above, so here it is below (hope it works this time).



  18. By Mike on Jan 14, 2011 | Reply

    Anyone having success with the PHP implementation?

    I’m getting “The XML page cannot be displayed” (IE8), “Invalid at the top level of the document. Error processing resource…” (FF3.5 always returns “1”).


  19. By charlie on Jan 14, 2011 | Reply

    Maybe we have some invalid XML? I’ll try the PHP version tonight and see what I get.

  20. By charlie on Jan 15, 2011 | Reply

    Ok, so I think I figured it out.

    curl_exec return true or false, not what we want, we want it to return the result set if it is works and false if it fails.

    To do this, we need to set the return transfer option, so I added this line:
    curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);

    The php example has been updated to reflect this change.

    @Mike – Let me know how it goes for you.

  21. By Mike on Jan 17, 2011 | Reply

    That worked like a charm! Thanks!

  22. By Ruben Kazantsev on Jan 18, 2011 | Reply

    We are about to launch a Automotive CRM/ILM software and wanted to know if you would be able to support unlimited vin decode? I know currently you only support 20. Or would you know where I can get past and current vin decoder download where we can upload to our data base?


  23. By charlie on Jan 19, 2011 | Reply

    We have been bumping people to 2000 VINs per month, since we don’t have a pricing plan. Legally there is no way to offer unlimited VIN decodings, unless you want to sign a lot of contracts and pay some non-trivial amount of money. Sorry about that, but give me a solid estimate of VINs per month and we will work something out. I’ll tell you this though, our pricing plans will only have soft limits, meaning you will be charged the monthly rate for some number of VINs then charged for any additional VINs (based on whatever plan you pick), so it may work out, such that it seems unlimited 🙂

  24. By charlie on Jan 19, 2011 | Reply

    Oh and btw – I’ve upped your account to the 2000 VINs per month, so you can at least do something while we work out merchant account issues and pricing plans 🙁

  25. By Sage on Feb 26, 2012 | Reply

    Looks like not much discussion on this as of late. I’m wondering if this is still being worked on, and if, eventually, the api will be able to provide more detailed returns — like base and trim-package features like antilock brakes, sunroof, etc, etc…

  26. By charlie on Feb 26, 2012 | Reply

    Hey Sage – VIN API is still running solid. Right now, we are still limited on the data we are allowed to provide. We are working on those issues and will let you know.

  27. By RenPro Motorsports on Apr 24, 2012 | Reply

    Hey guys, just got done taking a beating with a competitor who decided we should upgrade even though we were not close to being maxed out, so we decided to “move on.” As I try to absorb all that is written, I guess I’d like to ask, is there a “no charge” trial period we could try to see if it’s a fit for us? If not, it’s ok but, how do we go about starting out on a small scale and then adding/expanding if we think this is a good fit for us?

    So far, everything looks and sounds good and it appears that you are trying to offer a needed service without the customer taking a bath trying to utilize it. I can see why it is something that you should charge for, as it is a lot of work but, some of the fee’s that some competitors are getting is nothing short of highway robbery.

    Look forward to hearing back as I will continue to wade through all of the info to try and resolve/get started.

    Ren w/RenPro Motorsports

  28. By charlie on Apr 24, 2012 | Reply

    Hiya Ren –

    There isn’t a credit card requirement, just sign up and you’ll get 20 free VIN requests.
    Then when you’re ready, purchase a VIN package from our pricing page.
    And if you need more trial VIN requests before making a purchase, just let me know and I’ll get you squared away.

    And there are no fees, taxes, or anything like that, just the price you see on our pricing page.

    – Charlie

  29. By Alex on May 21, 2012 | Reply

    Your VIN API is exactly what we need. The problem is that we need complete set of data but most VINs still return basic info even if “complete” is set to true. Only small percent of VINs return complete data even for a few years old popular brands such Toyota, Subaru, BMW, GMC etc. Do you have any set target date when every VIN would return complete set of data? Your API works great, your pricing model is great too. It is ideal for us to buy number of decodes and use them over any period of time and not to worry about monthly payments. But we really need the complete data. Please let us know when it will be available for all VINs. Thank you.

  30. By charlie on May 21, 2012 | Reply

    Good morning Alex – thanks for the feedback and concern. The complete dataset is not rolling out as quickly as we had hoped, mainly b/c of licensing issues around terms of usage and cost. At this time, I’m not sure of the ETA, I’ll be the first to let everyone know.

  1. 1 Trackback(s)

  2. Simple VIN API for decoding Vehicle Identification Numbers « Gooder Code - web development blog, php, java, asp.net, html, javascript

Sorry, comments for this entry are closed at this time.