- Previous:
- Up:
- Next: The Editorial API V1
API Documentation
Let's dive right into the API documentation. If you're still unsure about what APIs are and how to get started, we highly recommend watching this video.
- Getting Started
- The Edmunds APIs at a Glance
- Available APIs
- Static Value Sets
- API Call Rate Limit
- Common Errors
- Known Issues
Getting Started
Before you you will be able go use the Edmunds API, you will need to read and agree to our Terms of Use.
Ready to rock and roll? Awesome.
- Register an account
- Get your API Key(s)
- Read the API Documentation or test it in the API Console
The Edmunds APIs at a Glance
All our API calls have the following format:
http://api.edmunds.com/{version}/{call path}?{call parameters}&fmt={format}&api_key={api_key}&callback={fn}
So let's break it down:
| Base URI | http://api.edmunds.com/ |
| API Version | {version} |
| HTTP methods | GET, POST |
| Response Format | JSON |
Now let's take a look at what lies within the braces within the API call.
Common Parameters
The following parameters may or may not be required in every single API call:
| Name and Description | Required? | Default Value |
|
The API version |
Yes |
Note: If the version of a particular API is different, it will be called out on that API's documentation page |
|
The API response format |
Yes |
Note: The format has to be always set to |
|
The API Key |
Yes | Get your API Key now |
|
JSONP Callback function |
No | Pass the name of a JavaScript function in your code and our response will be wrapped around it |
The {call path} and {call parameters} are specific to the API endpoints and will be called out explicitly for each endpoint.
Available APIs
The following APIs are currently available:
The Vehicle API
Everything you need to know about a vehicle from specs, features, photos, pricing, maintenace, and incentives to vehcile ratings, reviews, and VIN decoding capabilities.
The Editorial API
Access to Edmunds.com's quality editorial content from editor reviews to vehicle-specific articles.
The Inventory API (partner-only)
All the data you need to help build a meaningful automotive experience for dealerships and their customers
The Dealer API
Get dealership information, ratings and reviews. All dealership details are available through this API
Examples
Request 1:
Get all information on BMW M3 2011
http://api.edmunds.com/v1/api/vehicle/bmw/m3/2011?api_key={api_key}&fmt=json
Response 1:
{
"modelYearHolder": [
{
"makeId": 200000081,
"makeName": "BMW",
"makeNiceName": "bmw",
"modelId": "BMW_M3",
"modelName": "M3",
"modelNiceName": "m3",
"id": 100531349,
"styles": [
{
"link": "/api/vehicle/style/101287988",
"publicationState": "NEW",
"id": "101287988",
"name": "4dr Sedan (4.0L 8cyl 6M)"
},
{
"link": "/api/vehicle/style/101287990",
"publicationState": "NEW",
"id": "101287990",
"name": "2dr Convertible (4.0L 8cyl 6M)"
},
{
"link": "/api/vehicle/style/101287989",
"publicationState": "NEW",
"id": "101287989",
"name": "2dr Coupe (4.0L 8cyl 6M)"
}
],
"newDefaultStyle": {
"link": "/api/vehicle/style/101287988"
},
"equipment": [
{
"link": "/api/vehicle/equipment/200074965"
},
{
"link": "/api/vehicle/equipment/200074964"
},
{
"link": "/api/vehicle/equipment/200074967"
},
{
"link": "/api/vehicle/equipment/200074992"
}
],
"subModels": [
{
"identifier": "Sedan",
"name": "M3 Sedan",
"ruleType": "body",
"styleIds": [
101287988
],
"publicationStates": [
"NEW"
],
"submodelNewDefaultStyle": {
"link": "/api/vehicle/style/101287988"
}
},
{
"identifier": "Coupe",
"name": "M3 Coupe",
"ruleType": "body",
"styleIds": [
101287989
],
"publicationStates": [
"NEW"
],
"submodelNewDefaultStyle": {
"link": "/api/vehicle/style/101287989"
}
},
{
"identifier": "Convertible",
"name": "M3 Convertible",
"ruleType": "body",
"styleIds": [
101287990
],
"publicationStates": [
"NEW"
],
"submodelNewDefaultStyle": {
"link": "/api/vehicle/style/101287990"
}
}
],
"midYear": false,
"year": 2011,
"model": {
"link": "/api/vehicle/bmw/m3",
"id": "BMW_M3",
"name": "M3"
},
"name": "2011",
"attributeGroups": {
"MAIN": {
"id": 1,
"name": "MAIN",
"attributes": {
"NAME": {
"id": 1,
"name": "NAME",
"value": "M3"
},
"USE_IN_NEW": {
"id": 10,
"name": "USE_IN_NEW",
"value": "Y"
},
"YEAR": {
"id": 2,
"name": "YEAR",
"value": "2011"
},
"USE_IN_USED": {
"id": 11,
"name": "USE_IN_USED",
"value": "N"
},
"USE_IN_PRE_PRODUCTION": {
"id": 12,
"name": "USE_IN_PRE_PRODUCTION",
"value": "N"
},
"USE_IN_FUTURE": {
"id": 595,
"name": "USE_IN_FUTURE",
"value": "N"
},
"MODEL_LINK_CODE": {
"id": 20,
"name": "MODEL_LINK_CODE",
"value": "M030046"
}
}
},
"LEGACY": {
"id": 64,
"name": "LEGACY",
"attributes": {
"ED_MODEL_ID": {
"id": 3,
"name": "ED_MODEL_ID",
"value": "100531349"
}
}
}
},
"categories": {
"PRIMARY_BODY_TYPE": [
"Car"
],
"Vehicle Size": [
"Midsize"
],
"Vehicle Style": [
"Convertible",
"Sedan",
"Coupe"
],
"Vehicle Type": [
"Car"
],
"Tier Five - Vehicle Market Perception": [
"Factory Tuner",
"Luxury",
"Performance",
"High-Performance"
]
},
"publicationStates": [
"NEW"
]
}
]
}
Request 2:
Get the True Market Valuetm on BMW M3 2011 4dr Sedan (4.0L 8cyl 6M)
http://api.edmunds.com/v1/api/tmv/tmvservice/calculatetypicallyequippedusedtmv?styleid=101287988&zip=90404&api_key={api_key}&fmt=json
Response 2:
{
"tmv": {
"certifiedUsedPrice": 0,
"colorAdjustment": {
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"conditionAdjustment": {
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"estimatedTmv": false,
"mileageAdjustment": {
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"nationalBasePrice": {
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"optionTMVPrices": {
"200074977": {
"baseInvoice": 2640,
"baseMSRP": 2900,
"deliveryCharges": 0,
"estimateTmv": false,
"tmv": 2713,
"tmvRecommendedRating": 0,
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"200074983": {
"baseInvoice": 955,
"baseMSRP": 1050,
"deliveryCharges": 0,
"estimateTmv": false,
"tmv": 982,
"tmvRecommendedRating": 0,
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"200074993": {
"baseInvoice": 365,
"baseMSRP": 400,
"deliveryCharges": 0,
"estimateTmv": false,
"tmv": 375,
"tmvRecommendedRating": 0,
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
}
},
"regionalAdjustment": {
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
},
"totalWithOptions": {
"usedPrivateParty": 0,
"usedTmvRetail": 0,
"usedTradeIn": 0
}
}
}
Static Value Sets
Here's a list of values that will help you get the most of the Edmunds APIs.
Vehicle Types:
| Car | Truck | SUV |
| Van | Minivan | |
Vehicle Styles:
| 4dr Hatchback | Coup | Convertible | Sedan |
| 2dr Hatchback | Wagon | Regular Cab Pickup | Extended Cab Pickup |
| Crew Cab Pickup | 2dr SUV | 4dr SUV | Convertible SUV |
| Cargo Van | Passenger Van | Cargo Minivan | Passenger Minivan |
Vehicle Sizes:
| Compact | Midsize | Large |
API Call Rate Limit
All our APIs come with the standard 2 queries per second, and 5000 queries per day. Should an API offer a different call rate, we will note that out in the API's documentation page. Some API Keys might have different call rate limit. If you want us to increase your rate limit, please contact us at api [at] edmunds [dot] com.
Common Errors
While using our APIs, you might receive one or more of the following errors:
| HTTP Status | Description |
|---|---|
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
414 |
Request-URI Too Long |
502 |
Bad Gateway |
503 |
Service Unavailable |
504 |
Gateway Timeout |
Sample Error Response
JSON Response:
{ "error": {"code":400, "message":"Bad Request"}}
JSONP Response:
somefunction({ "error": {"code":400, "message":"Bad Request"}});
Known Issues
We are aware and working on the following issues:
- RESOLVED on 10/06/2011 - API response errors are formated in XML and not JSON. This breaks JSONP implementation of the API.
- Previous:
- Up:
- Next: The Editorial API V1
29 Comments
Jo8n – 2 years ago
Loving the API.
The api [at] edmunds [dot] com address is bouncing saying security is required. Where should we send info about typos, etc. in the docs?
Thanks!
Ismail Elshareef – 2 years ago
Thank you. We are fixing the problem right now.
Ismail Elshareef – 2 years ago
Hi, the api [at] edmunds [dot] com address is now open tor receive emails. It's always best to send private messages to that email. For bugs and documentation related questions, please feel free to post in the Forum.
Thanks again for your feedback.
John_Donnelly – 2 years ago
Great API thanks for this. I have been checking out the vehicle API and the few methods I have used work great. However today I am getting an error. I am using the vehicle API as follows:
http://api.edmunds.com/v1/api/makerepository/findnewandusedmakesbymodelyear?year=2005&api_key=xxxxxxxxxxxxxxxxxx&fmt=json
I'm getting a 596 error as follows:
Exception calling "DownloadString" with "1" argument(s): "The remote server returned an error: (596)."
Can you give me some guidance?
Thanks!
smichaels – 2 years ago
has the Photos Repository been removed?
Ismail Elshareef – 2 years ago
We're having several issues with the Photo service at the moment. Developers that have started using it are continuing to do so, but we took it off temporarily until the fix is implemented and will put it up next week.
Are you using the repository at the moment? If yes, please email us at api [at] edmunds.com and will assist you further.
Thank you.
CarChat24 – 2 years ago
Does Edmunds API have Automotive data for Canada as well?
Ismail Elshareef – 2 years ago
We only have US data at this point in time.
Ismail Elshareef – 2 years ago
The Photo Repository is now back up.
Mikhail Kozlov – 1 year ago
Would be really awesome if you made equipment details available on per style ID or in any the way so it does not requer trip to the server for each item.
I know they all returned with style, but equipment link has data that can actually be used and not guessed. Thanks.
Ismail Elshareef – 1 year ago
Mikhail,
You can get all related information on a style ID by using the fmt "full_json" instead of "json" Try it!
Greg Melton – 1 year ago
I have tried "full_json" but I am still getting links for the equipment detail links. For instance.{"link":"/api/vehicle/equipment/-10092082630"}. I am using the api/vehicle/stylerepository/findbyid? path as well as the find by vin version.
Ismail Elshareef – 9 months ago
Greg, that's the only way you can get equipment information on a style. It's tedious, I agree. We're working on simplifying it with version 2.
y4d – 7 months ago
Great API, just starting to use it. Just curious what's the easiest way to get all vehicles of a certain body type (sedan, coup, van, etc)? I can accomplish this with a great many calls but I'm wondering if there's an easier way.
Thanks!
Ismail Elshareef – 7 months ago
Unfortunately, there's not a single easy call to accomplish this at this time. What are the calls you're trying out now?
Atitkumar Shah – 7 months ago
I am trying to access Dealer API but I am continuously getting error as: java.lang.IllegalAccessError: com/google/gson/ExclusionStrategy I am able to access Vehicle API successfully but this is only happening for Dealer API. I tried in API Console also but no luck. I'm wondering what is it that I am doing wrong here. Can someone please guide me?
Ismail Elshareef – 7 months ago
Atitkumar,
We're running into issues with the API. We're working on fixing it right now.
Thanks!
Yogen – 7 months ago
We want to get options (option name, price etc., so that end user can select appropriate options) based on selected style Id.
Thanks!
Ismail Elshareef – 7 months ago
In the Style object (i.e. the response to all your Style Repository calls), you will find an "Equipment" object which contains URLs to all options and colors and other equipments that belong to this vehicle. You will be able to access them that way.
Thanks! Ismail
bertomart123 – 3 months ago
Hi, thanks for the great api. I can't seem to get a list of submodels. For example, if I have a make say "Acura" and a model say "MDX", (and also a year), which call do I make to get a list of sub-models. Looking over the functions, I didn't see one. Thanks!
ek2758 – 3 months ago
Hi, the amount of data is great! But is there away for to limit the fields to only those I am interested in (i.e., for the Style Repository, id, makeName, tmv, and usedTmvRetail)? Thanks!
Ismail Elshareef – 3 months ago
List of submodels are available in the models repository. Please check the API Console for more info. http://developer.edmunds.com/io-docs
Ismail Elshareef – 3 months ago
We're actually doing that in API 2.0 which will be available this year.
J – 1 month ago
When I try to get the format from the API call back as XML it comes in an odd character set. When I make the call in JSON it comes out normal to where it is readable. In suggestions direction?
Ismail Elshareef – 1 month ago
XML isn't supported for all API calls. Please use the API Console to test out the calls and all its possible formats.
Thanks, Ismail
westche – 1 month ago
Hello - How can I get this API working in wordpress? Any pointers or help would be great !!!!!
Ismail Elshareef – 1 month ago
Hi,
You can use the API on the client side using JavaScript and add that snippet as an HTML widget on your page. Does this make sense?
Easy Trade In – 2 weeks ago
i have website building for other. i'm working on it inside localhost (in my computer). but when use jQuery.ajax , can not query data :(. but same link i paste into address browser then it working fine. How can i use apis first for test and working website
Easy Trade In – 2 weeks ago
nevermind, sorry for above comment. i was found my problem. This start from my side. sorry for wrong question :). Your APIs if so pro !!
Please sign in to post a comment.