This is your brief introduction to the Aerpro API.

There are two main interfaces, the basic "jQuery plugin" interface, which is as simple to use as any other jQuery plugin, install into your page and tell where to output, it handles the rest with up to date information from our servers.

The second, more complicated API is now in version 2! (api/id etc calls are now deprecated). To make calls to the new v2 API, you'll need to practice with curl, or use jQuery.ajax to make the requests on your behalf. They are now simple GET queries (like most simple API's). To try it out, simply visit: to get a JSON encoded representation of the product with SKU: AP10

Information about vehicles, headunits and the relationships between them are also available, however, to protect our IP they are not available as a dump. Please don't ask for this.

The homepage uses the new system, basically it listens for event: 'aerpro-status' and detects status: 'api-ready', then uses the data object attached. Obviously, doesn't actually need to make any API calls, but we listen for that anyway, as it means we can use the url for the vehicle which is in the data object. Sound complicated? Well, maybe, but it works!

You don't HAVE to register a function to use the plugin, for instance this is all we need on

    (function($) {
        $(document).on('aerpro-status', function(e, a) {        
          if ((a.message == 'model-selected' && a.url) || (a.message == 'make-selected' && a.models == 0 && a.url)) {
              console.log('Navigating to: ' + a.url);
            window.location =  a.url;
        console.log("Aerpro selector has loaded.");

Of course, if you want more than simple redirection to our website for the vehicle, then you'll likely want to do something else., like this in your function:

   $("#output-box a")
      this.href = this.href.replace(/^https:\/\/aerpro\.com/, 

Ideally, you'd integrate it with your own platform, so a successful selection creates checkboxes for adding to a cart, comparing with other products, whatever you actually want the end user to do.

The minimum required to get a functioning version:

Insert iframe code.

The minimum required to get it integrated:

Basically though:

  1. Load jQuery
    <script src="""></script>
  2. Load the plugin:
    <script src="""></script>
  3. Define a callback function:
    <script>window.WhatDoWeDo = function(data){ // Write whatever you like! }></script>
  4. Create a place for the plugin to exist:
    <div id="aerpro-selector-here"></div>
  5. Finally, tell the plugin to use the callback function on Model Select completion:

Essentially we use the as a datasource for vehicle data on the homepage selector, then register a function to operate on the success of that selection. For a fully working version on a foreign site, check out

Basically though: <

Sound good?

Please view the source to see how this works:

Alternately, we have hosted a copy on another server: Try the foreign server demo here.

Feedback extremely welcome, ideas/updates/changes etc, please feel free to help us make this service better!

Deprecated API:

We encourage you to use the following system to access product SKU information related to vehicles, TDJ/Aerpro have spent a lot of time and money compiling this data, however if it helps you, please, use it! :D


You'll need a curl switch to send post data, or use javascript/php etc. Something that can send a POST request to our Rest service.

Parameters/Options in REST API

Basically, make your calls to, and send a JSON object via POST. Example from CLI, a search for a vehicle:

$ curl -d '{"type":"vehicle","term":"camry"}'


  {"received_request":{"type":"vehicle","term":"camry"},"warnings":[],"errors":[],"vehicle":[{"id":"18795","title":"Toyota Camry 1987-1992 SV21","url":"vehicles\/toyota\/toyota_camry_sv21_1987_1992","image":"images\/photo\/camry_sv21.png?itok=4xLAbBkJ"},{"id":"18792","title":"Toyota Camry ACV36R\/MCV36R  2002-08\/2006","url":"vehicles\/toyota\/toyota_camry_acv36r\/mcv36r_2002_08\/2006","image":"images\/photo\/ACV36R%29_Altise_sedan_08.jpg?itok=Q0AbfdEY"},{"id":"18793","title":"Toyota Camry ACV40R\/AHV40R  08\/2006-2011 (MY10)","url":"vehicles\/toyota\/toyota_camry_acv40r\/ahv40r_08\/2006_2011_my10","image":"images\/photo\/RAWRTHISONEEEEEE%5D_Camry_LE.jpg?itok=84VZ-j6L"},{"id":"19110","title":"Toyota Camry ASV50R 2012 -","url":"vehicles\/toyota\/toyota_camry_asv50r_2012","image":"images\/photo\/%20X50Camry_SE_--_02-29-2012.JPG?itok=W7WBpujH"},{"id":"18794","title":"Toyota Camry MCV20R\/SCV20R  1997-2002","url":"vehicles\/toyota\/toyota_camry_mcv20r\/scv20r_1997_2002","image":"images\/photo\/CURRENT_Toyota_Camry_%28MCV20R%29_Conquest_sedan_01.jpg?itok=ARCgqo7K"},{"id":"18796","title":"Toyota Camry XV10\/SDV10\/SXV10R  1993-1997","url":"vehicles\/toyota\/toyota_camry_xv10\/sdv10\/sxv10r_1993_1997","image":"images\/photo\/800px-1994-1995_Toyota_Camry_Vienta_%28VDV10%29_CSX_sedan_02.jpg?itok=ZbRRT2DJ"}]}
So, what if we wanted to see the products attached to those vehicles, what about the speakers spacer data? Another curl request!
You'll note, each of those returned Vehicle nodes has an "id" attribute, that is the one you need, eg:
  $  curl -d '{"type":"vehicle","id":"18795"}'
Will return:
  {"received_request":{"type":"vehicle","id":"18795"},"warnings":[],"errors":[],"vehicle":{"make":"Toyota","model":"Camry","submodel":"SV21","year":"1987 - 1992","speaker_spaces":"Front: 3-1\/2\u0022, 5-1\/4\u0022|Rear: 6-3\/4\u0022|Dash: 3-1\/2\u0022|Front door: 5-1\/4\u0022|Rear deck: 6-3\/4\u0022","picture":"http:\/\/\/sites\/default\/files\/styles\/original\/public\/images\/photo\/camry_sv21.png?itok=Z-j-fovQ","dash":"http:\/\/\/sites\/default\/files\/styles\/original\/public?itok=tlUvutFR","products":["AP138","AP1398T","APP0140"]}}
As you can see, it includes the Dash image, the speaker spacer data, the list of SKU's associated. And an array of products! Each product object contains details about the product. EG: weight, last-update, images, categories, full HTML description etc. Current API limits on SKU fetching is 30 nodes, just cause, if you need more, let us know, we can change it!
  • Main Parameter: "type"
    • "vehicle"
    • "product"
  • Secondary Parameters, dependant on first!
    • when {"type":"vehicle"}
      • Fetch by id, eg: {"type":"vehicle","id":"12345"}, will fetch details about a Vehicle with the id: 12345.
        Example usage:, sending {"type": "vehicle", "id":"18480"} to /api/rest would return:
      • Search by term, eg: {"type":"vehicle","term":"camry"}, will fetch a small amount of information about all matching vehicles. You can use the "id" attribute of results to perform detail requests as above.
    • when {"type":"product"}
      • Fetch by sku, eg: {"type":"product","products":["ABC123","ABC124"]}, will fetch details about BOTH products listed: ABC123 & ABC124.
      • Additional data available, just ask!