Edmunds Used Cars Scraper - Listings, Prices & Deal Ratings
Pricing
from $4.52 / 1,000 results
Edmunds Used Cars Scraper - Listings, Prices & Deal Ratings
Scrape Edmunds used car listings: price, deal rating, mileage, VIN, specs, dealer and photo for any search URL or ZIP code. Export to CSV, JSON, Excel or XML.
Pricing
from $4.52 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

🚗 Edmunds Used Cars Scraper
🚀 Export Edmunds used car listings in seconds. Paste any Edmunds search URL, set a ZIP code and a radius, and get every listing as a flat 56-field row: price, deal rating, market value, mileage, VIN, engine, MPG, accident history, dealer contact and the main photo. A five-listing verification run finished in 3.3 seconds.
Edmunds is one of the largest used car marketplaces in the United States. Its search results page embeds the full listing data that the site renders, and this Actor reads that data directly: no browser, no screenshots, no guessing from HTML. You get the same numbers a shopper sees on Edmunds, including the Edmunds deal rating (Great, Good, Fair) and the estimated market value behind it, in one table ready for CSV, JSON, Excel or XML.
The live coverage is large: the default search (used and certified pre-owned within 100 miles of Beverly Hills, CA) matched 220,381 listings at verification time, and Edmunds carries about 4.7 million VINs nationally. Each search URL yields up to 9,996 listings (476 pages of 21); narrow by make, model, ZIP code or radius to reach the rest.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Dealerships and dealer groups | Watch competitor prices, price drops and days on market for the models you stock |
| Used car buyers and brokers | Rank every listing within a radius by savings against Edmunds market value |
| Automotive analysts and lenders | Build price, mileage and age curves by make, model and region |
| Lead generation and marketing teams | Collect dealer names, addresses and phone numbers for the inventory they carry |
📋 What the Edmunds Used Cars Scraper does
💡 Why it matters: Edmunds shows 21 listings per page and hides most of the specs behind a click. Copying a few hundred cars by hand takes a day and misses the fields that matter for a decision, such as the market value estimate, the price drop and the accident count. This Actor collects all of them in one run and never bills for a row it did not deliver.
- 🔗 Any Edmunds search: paste a search results URL from edmunds.com with the filters you set on the site (make, model, year, price, body type, features, sort) or a make and model page such as
https://www.edmunds.com/used-toyota-camry/. Pagination is automatic. - 📍 Your location, not the proxy's: Edmunds centres a search on the visitor's location. Set a ZIP code and a radius (10 to 500 miles) and the Actor sends them the way the site does, so the results are the ones a shopper in that ZIP code would see.
- 💰 Price intelligence: list price, advertised price, recent price drop, Edmunds market value estimate, deal rating, savings in dollars and percent, and the estimated monthly loan payment.
- 🔧 Specs and history: VIN, stock number, trim, style, body type, mileage, colours, drivetrain, transmission, engine, horsepower, fuel type, EPA MPG, seats, accident count, owner count, usage type and clean title flag.
- 🏢 Dealer contact: dealer name, dealer group, street address, city, state, ZIP code, phone number, Edmunds sales rating and review count, and the distance from your ZIP code.
- 🖼️ Photos: the main listing photo URL and the photo count, plus the direct link to the listing on Edmunds.
- 🔁 Clean data: one VIN per row (duplicates across pages are removed), the same 56 columns on every row, and
Not Disclosedinstead of blank cells when Edmunds does not carry a value for that car.
🎬 Full Demo (🚧 Coming soon)
A short walkthrough video is in production.
📊 Output
Each row is one used car listing. Fields, in dataset order:
| Field | Description |
|---|---|
🖼 imageUrl | Main listing photo (600 x 400) |
🚗 title | Year, make, model and trim |
🔗 url | Listing page on Edmunds |
🔑 vin / 🆔 listingId / 🏷 stockNumber | Identifiers |
📋 listingType | Used or Certified Pre-Owned |
🏭 make / 🚘 model / 📅 year / ✨ trim / 🎨 styleName / 🚙 bodyType | Vehicle identity |
💰 price / 💱 currency / 🏷 advertisedPrice / 📉 priceDrop | List price in USD, the dealer's advertised price and the latest change |
📊 marketValue / ⭐ dealRating / 💵 savings / % savingsPercent | Edmunds market value estimate, deal rating (Great, Good, Fair) and the savings against it |
🗓 monthlyPayment | Estimated monthly loan payment shown by Edmunds |
🛣 mileage / 🎨 exteriorColor / 🪑 interiorColor | Odometer and colours |
⚙️ drivetrain / 🔧 transmission / 🔩 engine / 🐎 horsepower / ⛽ fuelType | Powertrain |
🏙 mpgCity / 🛤 mpgHighway / 🔀 mpgCombined / 💺 seats | EPA fuel economy and seating |
💥 accidents / 👤 owners / 🧾 usageType / 📄 cleanTitle | Vehicle history summary |
🏢 dealerName / 🏬 dealerGroup / 🏠 dealerStreet / 🌆 dealerCity / 🇺🇸 dealerState / 📮 dealerZip / 📞 dealerPhone | Dealer contact |
🌟 dealerRating / 🗣 dealerReviewCount / 📍 distanceMiles | Edmunds sales rating, review count and distance from your ZIP code |
⏳ daysOnEdmunds / 🕐 listedAt / 🕑 firstPublishedAt | Time on market |
📝 sellersComments / 📷 photoCount / 🧩 features | Seller text, photo count and the feature highlights Edmunds shows on the card |
🕒 scrapedAt | ISO timestamp of the collection |
❌ error | null on success; error rows carry only this field and are never charged |
Three real records from the verification run (default search URL, ZIP 90210, Max Items 5):
[{"imageUrl": "https://www.edmunds.com/assets/m2/for-sale/10-SLATV4C05MU207071/img-1-600x400.jpg","title": "2021 Rolls-Royce Cullinan Base","url": "https://www.edmunds.com/rolls-royce/cullinan/2021/vin/SLATV4C05MU207071/","vin": "SLATV4C05MU207071","listingId": "87f3627dedfc36a2e92a5bbc06d57c07","stockNumber": "MMU207071","listingType": "Used","make": "Rolls-Royce","model": "Cullinan","year": 2021,"trim": "Base","styleName": "4dr SUV AWD (6.7L 12cyl Turbo 8A)","bodyType": "SUV","price": 250077,"currency": "USD","advertisedPrice": 250077,"priceDrop": -6000,"marketValue": 331817,"dealRating": "Great","savings": 81740,"savingsPercent": 24.6,"monthlyPayment": 4326.77,"mileage": 15667,"exteriorColor": "Gray","interiorColor": "Black leather","drivetrain": "all wheel drive","transmission": "Automatic","engine": "6.7L 12-cylinder gas","horsepower": 563,"fuelType": "premium unleaded (required)","mpgCity": 12,"mpgHighway": 20,"mpgCombined": 14,"seats": 5,"accidents": 0,"owners": 1,"usageType": "Lease","cleanTitle": "Yes","dealerName": "Mercedes-Benz of Calabasas","dealerGroup": "Sonic Automotive","dealerStreet": "24181 Calabasas Rd","dealerCity": "Calabasas","dealerState": "CA","dealerZip": "91302","dealerPhone": "818-591-2377","dealerRating": 4.905,"dealerReviewCount": 42,"distanceMiles": 14.3,"daysOnEdmunds": 6,"listedAt": "2026-07-24T07:00:00.000Z","firstPublishedAt": "2026-09-02T01:47:22.000Z","sellersComments": "Only 15,667 Miles! Boasts 20 Highway MPG and 12 City MPG! Carfax One-Owner Vehicle. This Rolls-Royce Cullinan boasts a Twin Turbo Premium Unleaded V-1...","photoCount": 33,"features": ["AWD/4WD", "Bluetooth", "Navigation", "Leather Seats", "Sunroof/Moonroof"],"scrapedAt": "2026-09-08T04:55:50.065Z","error": null},{"imageUrl": "https://www.edmunds.com/assets/m2/for-sale/40-JM1DKDC76K0414463/img-1-600x400.jpg","title": "2019 Mazda CX-3 Touring","url": "https://www.edmunds.com/mazda/cx-3/2019/vin/JM1DKDC76K0414463/","vin": "JM1DKDC76K0414463","listingId": "13af962ed186fbf329231d443aafa187","stockNumber": "K0414463B","listingType": "Used","make": "Mazda","model": "CX-3","year": 2019,"trim": "Touring","styleName": "Touring 4dr SUV (2.0L 4cyl 6A)","bodyType": "SUV","price": 16685,"currency": "USD","advertisedPrice": 16685,"priceDrop": -300,"marketValue": 21067,"dealRating": "Great","savings": 4382,"savingsPercent": 20.8,"monthlyPayment": 288.68,"mileage": 22225,"exteriorColor": "Snowflake White Pearl Mica","interiorColor": "Black leatherette/cloth","drivetrain": "front wheel drive","transmission": "Automatic","engine": "2.0L 4-cylinder gas","horsepower": 148,"fuelType": "regular unleaded","mpgCity": 29,"mpgHighway": 34,"mpgCombined": 31,"seats": 5,"accidents": 0,"owners": 4,"usageType": "Personal Use","cleanTitle": "Yes","dealerName": "California Motors Direct Montclair","dealerGroup": "LA Auto Exchange","dealerStreet": "10385 Central Ave","dealerCity": "Montclair","dealerState": "CA","dealerZip": "91763","dealerPhone": "909-895-4459","dealerRating": 3,"dealerReviewCount": 2,"distanceMiles": 41.5,"daysOnEdmunds": 39,"listedAt": "2026-07-27T07:00:00.000Z","firstPublishedAt": "2026-07-31T16:32:56.000Z","sellersComments": "Experience refined driving in this 2019 Mazda CX-3 Touring, featuring a premium BOSE 7-Speaker Audio Sound System and a Power Sliding-Glass Moonroof f...","photoCount": 23,"features": ["Back-up camera", "Bluetooth", "Sunroof/Moonroof", "Keyless Entry/Start", "Blind Spot Monitoring"],"scrapedAt": "2026-09-08T04:55:50.065Z","error": null},{"imageUrl": "https://www.edmunds.com/assets/m2/for-sale/4e-W1Y4KBHY4ST196362/img-1-600x400.jpg","title": "2025 Mercedes-Benz Sprinter 2500 144\" WB Cargo","url": "https://www.edmunds.com/mercedes-benz/sprinter/2025/vin/W1Y4KBHY4ST196362/","vin": "W1Y4KBHY4ST196362","listingId": "7450e127f0e95c781b95b75dd51c25eb","stockNumber": "4L1027","listingType": "Used","make": "Mercedes-Benz","model": "Sprinter","year": 2025,"trim": "2500 144\" WB Cargo","styleName": "2500 144\" WB Cargo 3dr Van (2.0L 4cyl Turbodiesel 9A)","bodyType": "Full Size Van","price": 42995,"currency": "USD","advertisedPrice": 42995,"priceDrop": -500,"marketValue": 62057,"dealRating": "Great","savings": 19062,"savingsPercent": 30.7,"monthlyPayment": 743.89,"mileage": 21600,"exteriorColor": "Arctic White","interiorColor": "Maturin Black cloth","drivetrain": "rear wheel drive","transmission": "Automatic","engine": "2.0L 4-cylinder diesel","horsepower": 170,"fuelType": "diesel","mpgCity": "Not Disclosed","mpgHighway": "Not Disclosed","mpgCombined": "Not Disclosed","seats": 2,"accidents": 0,"owners": 1,"usageType": "Personal Use","cleanTitle": "Yes","dealerName": "Mercedes-Benz of Valencia","dealerGroup": "Trophy Automotive Group","dealerStreet": "23355 Valencia Blvd","dealerCity": "Valencia","dealerState": "CA","dealerZip": "91355","dealerPhone": "661-724-4385","dealerRating": "Not Disclosed","dealerReviewCount": "Not Disclosed","distanceMiles": 23.8,"daysOnEdmunds": 46,"listedAt": "2026-07-23T07:00:00.000Z","firstPublishedAt": "2026-07-24T09:39:43.000Z","sellersComments": "Acoustic Package, Active Distance Assist DISTRONIC®, Active Lane Keeping Assist, Blind Spot Assist, Cargo Protection Package, Digital Rearview Mirror,...","photoCount": 30,"features": ["Back-up camera", "Bluetooth", "Tire Pressure Warning", "USB Inputs", "Stability Control"],"scrapedAt": "2026-09-08T04:55:50.065Z","error": null}]
✨ Why choose this Actor
| What you get | |
|---|---|
| Edmunds' own numbers | The deal rating, market value estimate, savings and monthly payment come from the data Edmunds renders, not from a formula of ours. |
| Location that works | Edmunds ignores a zip parameter in the URL and centres on the visitor's IP. This Actor sends the location the way the site does, so ZIP 90210 really returns Los Angeles cars and ZIP 10001 returns New York cars. |
| 56 columns, one shape | Every row has the same keys in the same order, so CSV imports, joins and Excel filters behave. |
| No blanks, no nulls | A value Edmunds does not carry for a car is Not Disclosed, never an empty cell. |
| Honest ceilings | The Actor reports how many listings match the search and how many pages Edmunds serves, and stops at that page instead of looping. |
| Fast and cheap | HTTP only, 1 GB of memory, about 21 listings per second per search. No browser to warm up. |
📈 How it compares to alternatives
Other Edmunds actors on the Store take a URL and return a handful of card fields, or rely on a headless browser that costs several times more per run. The public surface has one hard limit for everyone, and this Actor states it.
| Feature | This Actor | Typical Edmunds scrapers | By hand |
|---|---|---|---|
| Fields per listing | 56 | 10 to 25 | Whatever you copy |
| Market value, deal rating, savings | Yes | Rarely | Visible one car at a time |
| ZIP code and radius that Edmunds honours | Yes, via the site's own location mechanism | Often ignored (results follow the proxy IP) | Yes |
| Accident count, owners, usage type, clean title | Yes | Rarely | Behind a click |
| Dealer phone, address, rating, distance | Yes | Partly | Behind a click |
| Listings per search URL | Up to 9,996 (476 pages), 630 on make and model pages | Same public limit | 21 per page |
| Duplicate VINs across pages | Removed | Varies | Manual |
| Memory and speed | 1 GB, about 3 s for the first page | 2 to 4 GB with a browser | Hours |
🚀 How to use
- Create a free Apify account with $5 in credit.
- Open the Edmunds Used Cars Scraper.
- Paste one or more Edmunds search URLs (or keep the default used and certified search), set the ZIP code and radius, choose Max Items and click Start.
- Download the dataset as CSV, Excel, JSON or XML from the Storage tab, or read it through the API.
A first run:
{"startUrls": [{ "url": "https://www.edmunds.com/inventory/srp.html?inventorytype=used%2Ccpo&radius=100" }],"maxItems": 10,"zipCode": "90210","radius": "url"}
To scrape a specific model, build the search on edmunds.com and paste its URL, for example https://www.edmunds.com/inventory/srp.html?inventorytype=used%2Ccpo&make=toyota&model=toyota%7Ccamry, or use the model page https://www.edmunds.com/used-toyota-camry/.
Free-plan runs return up to 10 listings as a preview. Upgrade your Apify plan to collect up to 1,000,000 listings per run.
💼 Business use cases
🏷️ Competitive prices for dealerships. A dealer group runs the Actor every morning for the ten models it stocks within 50 miles, sorts by savingsPercent and priceDrop, and re-prices the cars that have slipped below the market.
📉 Days-on-market analysis. An inventory manager tracks daysOnEdmunds and priceDrop for a make and model across several ZIP codes to learn how long comparable cars sit before their price moves.
📞 Dealer lead lists. A marketing team scrapes certified pre-owned inventory for a brand in a state, groups by dealerName, dealerPhone and dealerGroup, and builds a list of dealers carrying the models its product targets.
💳 Lending and residual value. An auto lender collects price, mileage, year and marketValue for thousands of listings to fit depreciation curves by segment and check its own valuations.
🔌 Automating Edmunds Used Cars Scraper
- Make and Zapier: run the Actor on a schedule and append new listings to Google Sheets or Airtable.
- Slack: post a message when a run returns a listing with
dealRating: Greatand apriceDropbelow zero for a model you watch. - Airbyte: sync the dataset into BigQuery, Snowflake or Postgres for price dashboards.
- GitHub Actions: refresh a market snapshot every night and commit the CSV.
- Google Drive: save each run as an Excel file in a shared folder.
Every integration starts from the Apify API or the ApifyClient for JavaScript and Python.
🌟 Beyond business use cases
- Research: collect listings for the same model across ten metro areas to study regional price differences.
- Personal: watch the cars that match your next purchase within 25 miles and get notified when one drops in price.
- Non-profit: a community credit union checks whether the cars its members are quoted sit above the Edmunds market value.
- Experimentation: feed
sellersCommentsandfeaturesinto an LLM to prototype a listing quality score.
🤖 Ask an AI assistant about this scraper
Give an AI agent live access to Edmunds listings through the Model Context Protocol:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/edmunds-used-cars-scraper"
Then ask in plain language, for example "Find certified Toyota Camrys within 25 miles of 10001 with a Great deal rating and sort them by savings".
❓ Frequently Asked Questions
🔗 Which Edmunds URLs can I paste?
Any inventory search results URL (https://www.edmunds.com/inventory/srp.html?...) with the filters you set on the site, and any make and model page such as https://www.edmunds.com/used-honda-civic/. Editorial pages such as https://www.edmunds.com/used-cars/ carry no inventory and produce an error row.
📍 Why does the ZIP code matter?
Edmunds centres every search on the visitor's location and ignores a zip parameter in the URL. The Actor sends the ZIP code through the same mechanism the site uses, so the listings, distances and dealer set are the ones a shopper in that ZIP code would see. Leave it empty and the results follow the location of the proxy IP.
📏 Which radius values work?
10, 25, 50, 75, 100, 200 and 500 miles, exactly the options Edmunds offers. "Keep the URL setting" leaves the radius in your URL untouched (Edmunds defaults to 100 miles).
📦 How many listings can I collect per search?
Edmunds serves 21 listings per page and at most 476 pages for a search results URL, so up to 9,996 listings per URL. Make and model pages stop at 30 pages (630 listings). Use several URLs or narrower filters (make, model, ZIP code, radius) to go beyond that; the run log prints the total that matched and the page ceiling.
🔑 Do I need an API key or an Edmunds account?
No. Everything comes from the public search results pages.
🛡️ Do I need a proxy?
Yes. Edmunds is protected by Akamai and blocks datacenter IPs, so the Actor uses Apify residential proxies in the United States by default. Keep the default unless you have your own residential proxy.
⭐ What is dealRating?
Edmunds' own label (Great, Good, Fair, and so on) comparing the list price with its market value estimate for that car in that area. marketValue, savings and savingsPercent are the numbers behind that label as Edmunds shows them.
🖼️ Why is imageUrl sometimes Not Disclosed?
Some listings have no dealer photos. When Edmunds shows a stock image instead, the Actor reports Not Disclosed and photoCount: 0 rather than a placeholder.
⚠️ What do Not Disclosed values mean?
Edmunds does not carry that value for that car: for example MPG on commercial vans, a dealer rating for dealers without reviews, or the owner count when the history report is missing. The column is still present so every row has the same shape.
🔁 Can the same car appear twice?
No. Listings are de-duplicated on VIN across all pages and all start URLs in a run.
⏰ Can I run this on a schedule?
Yes. Use the Apify scheduler to run it hourly, daily or weekly, and add a webhook or an integration to push new rows downstream.
📄 What output formats are supported?
JSON, CSV, Excel, XML, HTML table and RSS, from the Storage tab or through the API.
❌ What happens when Edmunds blocks a request?
The Actor retries up to four times, switching to a fresh proxy session each time. If a page still does not answer, it writes one error row with the URL and continues; error rows are never charged.
🔌 Integrate with any app
The dataset is available through the Apify API the moment the run finishes. Use the run-sync-get-dataset-items endpoint for one-shot calls, webhooks to trigger downstream jobs, or the Make, Zapier, Airbyte and LangChain integrations listed on the Actor page.
🔗 Recommended Actors
- Autolist Scraper
- Healthgrades Doctor & Provider Scraper
- Website Content Crawler
- USAspending Awards Scraper
💡 Pro Tip: browse the complete ParseForge collection.
🆘 Need Help? Open our contact form with your run ID, your input and what you expected.
⚠️ Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Edmunds.com, Inc. It collects only publicly available data. You are responsible for using the data in compliance with Edmunds' terms of use and applicable data-protection laws.