Cars.com Scraper with Contacts
Pricing
from $0.69 / 1,000 vehicles
Cars.com Scraper with Contacts
Scrape Cars.com vehicle listings from any search or vehicle URL: price, mileage, VIN, trim, dealer, rating, location, photos, deal badges, and optional dealer phone numbers and vehicle history.
Pricing
from $0.69 / 1,000 vehicles
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
Cars.com Scraper with Contacts
Cars.com Scraper extracts vehicle listings from Cars.com, one of the largest new and used car marketplaces in the United States. Paste any Cars.com search URL or vehicle URL and get the price, mileage, VIN, year, make, model, trim, dealer, rating, location, photos, deal badges, and optionally the dealer's phone number and vehicle history, as clean JSON, CSV, or Excel.
| Use any Cars.com search with all its filters (make, model, ZIP, radius, price, year, mileage, body style, color, seller type) and get 50+ fields per vehicle, plus dealer phone numbers and accident, owner, and title history on demand. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/cars-com-scraper. Scrapes vehicle listings from Cars.com (US new and used car marketplace). Call via ApifyClient: client.actor("parsebird/cars-com-scraper").call(run_input={"startUrls": ["https://www.cars.com/shopping/results/?makes[]=toyota&models[]=toyota-rav4&maximum_distance=50&zip=60606&sort=best_match_desc"], "limit": 100, "get_contacts": true}). Inputs: startUrls (array of strings, Cars.com search result URLs /shopping/results/?... with any Cars.com filters, or vehicle URLs /vehicledetail/<id>/), limit (integer, vehicles per URL, default 100, 0 = no limit), get_contacts (boolean, adds the dealer phone number, default false), include_details (boolean, adds accident history, single owner, clean title, personal use, open recall, interior color, category and seller type, default false), proxyConfiguration (object, optional). Output: one record per vehicle with id, title, source_context {seed_id, seed_type, seed_value, page_index, position_on_page}, listing {id, url, location, distance_miles, delivery, attribution_type, sponsored_type}, vehicle {stock_type, year, make, model, trim, vin, mileage, mileage_numeric, body_style, fuel_type, drivetrain, exterior_color, certified_pre_owned, interior_color}, pricing {price, price_numeric, display_price, msrp, price_drop, monthly_payment_estimate}, seller {name, is_private_seller, zip, customer_id, rating, phone_number, phone_number_formatted, phone_type}, media {primary_image_url, image_count, images}, badges [{label, description, variant}], history {no_accidents, single_owner, clean_title, personal_use_only, open_recall}. Pricing: pay per vehicle, plus per dealer phone found. Full API spec: https://apify.com/parsebird/cars-com-scraper/api. Get your token: https://console.apify.com/settings/integrations.
What is Cars.com Scraper?
Cars.com Scraper turns Cars.com listings into a structured dataset. Set up your search on Cars.com the way you normally would, copy the URL, and paste it into the Actor. Every filter in the URL is applied: make, model, trim, ZIP code and radius, price, year, mileage, body style, fuel type, drivetrain, color, deal rating, seller type, keyword, and sort order.
It works as a Cars.com API alternative: you don't need a Cars.com account, an API key, or a browser. Turn on dealer contacts to add the dealer's phone number to each vehicle, which makes it a simple car dealer lead source.
What can Cars.com Scraper do?
- 🔎 Any Cars.com search. Paste search result URLs with any filters and sort order. Several URLs can run in one go, each with its own limit.
- 🚗 Single vehicles. Paste vehicle detail URLs to collect specific cars from a curated list.
- 📞 Dealer phone numbers. Add the dealer phone number Cars.com shows for each listing.
- 🧾 Vehicle history. Add accident history, single-owner, clean title, personal use, and open recall flags, plus interior color and seller type.
- 💰 Pricing details. Price, MSRP for new cars, recent price drop, and Cars.com's estimated monthly payment with its term, APR, and sales tax assumptions.
- 🏷️ Deal badges. Great Deal, Good Deal, Fair Deal, High Demand, award badges, and their explanations.
- 🖼️ Photos. Main photo, total photo count, and the photo gallery shown in search results.
- ♻️ No duplicates. Sponsored listings that repeat across pages or URLs are saved once.
- 📅 Scheduling and monitoring. Run daily with Apify Schedules to track prices and new inventory.
- 🔌 API and integrations. Use the Apify API, or send vehicles to Google Sheets, Zapier, Make, Slack, or webhooks with Apify integrations. Export as JSON, CSV, Excel, XML, or HTML.
What data can you extract from Cars.com?
| Field | Description |
|---|---|
id / listing.url | Cars.com listing ID and vehicle page |
title | Listing title, like "Used 2025 Toyota RAV4 XLE" |
vehicle.year / make / model / trim | Year, make, model, and trim |
vehicle.vin | Vehicle identification number |
vehicle.stock_type / certified_pre_owned | New or used, and certified pre-owned status |
vehicle.mileage_numeric | Mileage |
vehicle.body_style / fuel_type / drivetrain / exterior_color | Body style, fuel type, drivetrain, and exterior color |
pricing.price_numeric / display_price / msrp | Price, price as shown, and MSRP (new cars) |
pricing.price_drop | Recent price drop, as shown on Cars.com |
pricing.monthly_payment_estimate | Cars.com's estimated monthly payment, with down payment, term, APR, and sales tax |
seller.name / rating / zip / customer_id | Dealer name, dealer review rating, ZIP code, and Cars.com dealer ID |
seller.is_private_seller | Whether the car is sold by a private seller |
seller.phone_number / phone_number_formatted / phone_type | Dealer phone number (with Get dealer phone numbers on) |
listing.location / distance_miles | City, state, and distance from the ZIP code in your search |
listing.delivery | Home delivery offer, like "$399 delivery from Delaware, OH (263 mi)" |
listing.sponsored_type / attribution_type | Sponsored placement type, as Cars.com labels it |
media.primary_image_url / image_count / images | Main photo, number of photos, and photo URLs with alt text |
badges | Deal and demand badges with descriptions |
history | Accident, single owner, clean title, personal use, open recall, report source (with Add vehicle history and details on) |
vehicle.interior_color / vehicle.category / seller.type | Interior color, vehicle category, and seller type (with details on) |
source_context | Which input URL, page, and position each vehicle came from |
images holds the photos Cars.com shows in its search results (up to 6); image_count is the listing's total photo count. Fields are empty when the listing doesn't have them, for example price on "Not Priced" listings.
How to scrape Cars.com
- Go to Cars.com, search for cars, and set your filters (make, model, ZIP, distance, price, and so on).
- Copy the URL from your browser's address bar. It looks like
https://www.cars.com/shopping/results/?makes[]=toyota&.... - Open Cars.com Scraper on Apify Store and click Try for free.
- Paste the URL into Cars.com URLs. Add more URLs or vehicle detail URLs if you like.
- Set Max vehicles per URL.
- Optionally turn on Get dealer phone numbers and Add vehicle history and details.
- Click Start. When the run finishes, download the vehicles as JSON, CSV, Excel, XML, or HTML from the Output tab, or read them with the API.
How much does it cost to scrape Cars.com?
Cars.com Scraper uses pay-per-event pricing. You pay for each vehicle saved, and for each dealer phone number found when Get dealer phone numbers is on. Compute and proxy costs are included in the event prices. Add vehicle history and details has no extra charge.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
vehicle-listing (per vehicle) | $0.00099 | $0.00089 | $0.00079 | $0.00069 |
dealer-contact (per phone number) | $0.00059 | $0.00049 | $0.00039 | $0.00039 |
| Per 1,000 vehicles | $0.99 | $0.89 | $0.79 | $0.69 |
| Per 1,000 dealer phone numbers | $0.59 | $0.49 | $0.39 | $0.39 |
For example, 1,000 vehicles cost $0.99 on the Free plan, or $1.58 with dealer phone numbers for all of them. Private-seller listings have no dealer line, so no contact charge applies to them. You can set a maximum cost per run in Apify Console, and the Actor stops when it's reached.
Input
See the Input tab for the full form.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | Yes | — | Cars.com search result URLs (/shopping/results/?...) or vehicle URLs (/vehicledetail/...) |
limit | integer | No | 100 | Vehicles to save per URL. 0 = no limit |
get_contacts | boolean | No | false | Add the dealer phone number |
include_details | boolean | No | false | Add vehicle history, interior color, category, and seller type |
proxyConfiguration | object | No | none | Not needed; see the FAQ |
Toyota RAV4s within 50 miles of Chicago
{"startUrls": ["https://www.cars.com/shopping/results/?makes%5B%5D=toyota&models%5B%5D=toyota-rav4&maximum_distance=50&zip=60606&sort=best_match_desc"],"limit": 25}
One vehicle with the dealer's phone number and history
{"startUrls": ["https://www.cars.com/vehicledetail/fb188ced-a597-47f1-a45d-1289eb6451e9/"],"get_contacts": true,"include_details": true}
Two cities, 50 vehicles each
{"startUrls": ["https://www.cars.com/shopping/results/?maximum_distance=100&zip=10001&sort=best_match_desc","https://www.cars.com/shopping/results/?maximum_distance=100&zip=90001&sort=best_match_desc"],"limit": 50}
Output example
Each vehicle is one row in the dataset. Only two photos are shown here.
{"id": "bf95e377-bf7a-4702-9f59-84da051d7a8d","title": "Used 2025 Toyota RAV4 LE","source_context": {"seed_id": "a74086b40592","seed_type": "search_url","seed_value": "https://www.cars.com/shopping/results/?makes%5B%5D=toyota&models%5B%5D=toyota-rav4&maximum_distance=50&zip=60606&sort=best_match_desc","domain": "cars.com","scrape_method": "graphql","page_index": 1,"position_on_page": 1},"listing": {"id": "bf95e377-bf7a-4702-9f59-84da051d7a8d","url": "https://www.cars.com/vehicledetail/bf95e377-bf7a-4702-9f59-84da051d7a8d/","location": "Calumet City, IL (20 mi)","distance_miles": 20,"delivery": null,"attribution_type": "PREMIER","sponsored_type": "PREMIER","is_saved": false,"new_vdp_eligible": true},"vehicle": {"title": "Used 2025 Toyota RAV4 LE","stock_type": "Used","year": 2025,"make": "Toyota","model": "RAV4","trim": "LE","vin": "2T3H1RFV4SC309025","mileage": "51221","mileage_numeric": 51221,"body_style": "SUV","fuel_type": "Gasoline","drivetrain": "Front-wheel Drive","exterior_color": "black","certified_pre_owned": false,"interior_color": "Black","category": "crossover_compact"},"pricing": {"price": "27699","price_numeric": 27699.0,"currency": "USD","display_price": "$27,699","msrp": null,"msrp_numeric": null,"price_drop": 651.0,"price_drop_display": "$651","monthly_payment_estimate": {"amount": 522.0,"display": "$522","currency": "USD","down_payment": 0.0,"term_months": 72,"apr_percent": 7.0,"sales_tax_percent": 10.5}},"seller": {"name": "Advantage Toyota of River Oaks","is_private_seller": false,"zip": "60409","customer_id": "8eeaf4e2-f1ce-5f40-8a55-8ae6bfec8a03","rating": 4.6,"type": "dealership","phone_number": "18558914131","phone_number_formatted": "(855) 891-4131","phone_type": "DYNAMIC"},"media": {"primary_image_url": "https://platform.cstatic-images.com/large/in/v2/8eeaf4e2-f1ce-5f40-8a55-8ae6bfec8a03/07c4d8a6-f225-42a5-b5d8-5b59f94d59ad/3Fj_uJoIUXXnae3oyjwCwj1l1d0.jpg","image_count": 29,"images": [{"url": "https://platform.cstatic-images.com/large/in/v2/8eeaf4e2-f1ce-5f40-8a55-8ae6bfec8a03/07c4d8a6-f225-42a5-b5d8-5b59f94d59ad/3Fj_uJoIUXXnae3oyjwCwj1l1d0.jpg","alt_text": "Midnight Black Metallic 2025 Toyota RAV4 LE"},{"url": "https://platform.cstatic-images.com/large/in/v2/8eeaf4e2-f1ce-5f40-8a55-8ae6bfec8a03/07c4d8a6-f225-42a5-b5d8-5b59f94d59ad/RHXMa1H_0I0HB_CXV2kDb6tK-LU.jpg","alt_text": "Midnight Black Metallic 2025 Toyota RAV4 LE"}]},"badges": [{"label": "Good Deal","description": "Based on the dealership's total vehicle list price, this vehicle may present a good buying opportunity in comparison to ...","variant": "good-deal"}],"history": {"no_accidents": true,"single_owner": true,"clean_title": true,"personal_use_only": false,"open_recall": false,"report_source": "autocheck"}}
Use the Cars.com Scraper API
Call the Actor from your own code with the Apify API client. Find your token in Apify Console → Settings → Integrations.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("parsebird/cars-com-scraper").call(run_input={"startUrls": ["https://www.cars.com/shopping/results/?stock_type=used&makes[]=honda&models[]=honda-civic&zip=10001&maximum_distance=100"],"limit": 200,"get_contacts": True,})for car in client.dataset(run["defaultDatasetId"]).iterate_items():print(car["title"], car["pricing"]["display_price"], car["seller"]["name"], car["seller"].get("phone_number_formatted"))
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('parsebird/cars-com-scraper').call({startUrls: ['https://www.cars.com/shopping/results/?makes[]=ford&models[]=ford-f_150&zip=75201&maximum_distance=75'],limit: 100,include_details: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((car) => console.log(car.title, car.vehicle.vin, car.history?.no_accidents));
You can also start runs over plain HTTP from the API tab, or connect the Actor to AI agents through the Apify MCP server.
Use cases
- Dealer lead generation. Build lists of dealers carrying a make or model in a region, with their phone numbers, ZIP codes, and ratings.
- Price monitoring. Track prices, price drops, and deal ratings for the models you buy or sell.
- Inventory analysis. See what competitors have in stock by trim, mileage, color, and price.
- Market research. Compare used car prices by year, mileage, region, and history.
- Car buying. Collect every clean-title, single-owner listing that matches your search into one spreadsheet.
How it works
- The Actor reads the filters and sort order from each search URL.
- It loads the matching vehicles from Cars.com, 100 per page, until it reaches your limit or the end of the results. Cars.com counts at most "10,000+" for a search, but the Actor keeps going past 10,000 when you set no limit.
- Vehicle URLs are looked up one by one. A vehicle that has been sold or removed is skipped with a warning and not charged.
- With dealer contacts on, the Actor asks Cars.com for the dealer's phone number for each vehicle. With details on, it reads the vehicle's history and extra details.
FAQ
Do I need a Cars.com account? No. The Actor only reads public listings that anyone can see on Cars.com.
Which Cars.com URLs work?
Search result pages (cars.com/shopping/results/?...) with any filters, and vehicle pages (cars.com/vehicledetail/<id>/). Other pages, like research or dealer pages, are skipped with a warning.
What kind of phone number do I get?
The number Cars.com shows for the dealer on the listing, returned with phone_type. Cars.com uses call-tracking numbers (DYNAMIC) that forward to the dealer, so the same dealer can get a different number on different runs. Private sellers don't have a dealer line, so they have no phone number and no contact charge.
Why do some vehicles have no price or photos? Some dealers list cars as "Not Priced" or without photos. The Actor saves what Cars.com shows.
Why are the first results different from what I see on Cars.com? Cars.com rotates sponsored listings, so the first few positions can change between visits. The other results follow the same sort order as the website.
Do I need a proxy? No. The Actor connects directly and switches to US Apify Proxy on its own if Cars.com starts refusing requests. Proxy costs are included in the event prices.
Can I schedule runs or export to Google Sheets? Yes. Use Apify Schedules for recurring runs and integrations for Google Sheets, Zapier, Make, Slack, and webhooks.
Something is missing or broken? Open an issue on the Issues tab. Feedback and feature requests are welcome there too.
Is it legal to scrape Cars.com?
The Actor collects only public vehicle listings that Cars.com shows to every visitor. It doesn't log in or access any account data. Listings can include private sellers' first names and dealers' business phone numbers, so follow data protection and telemarketing laws, like the CCPA and the TCPA, when you store or contact them. Read more in Apify's blog post Is web scraping legal?
Other vehicle scrapers
| Actor | What it does |
|---|---|
| AutoTrader.co.uk Scraper | Scrape UK car listings from AutoTrader.co.uk |
| AutoTrader Canada Scraper | Scrape Canadian car listings from AutoTrader.ca |
| IAAI Vehicles Scraper | Scrape salvage and insurance auction vehicles from IAAI |