Kelley Blue Book Scraper — KBB Used Cars for Sale
Pricing
from $30.00 / 1,000 vehicle listing extracteds
Kelley Blue Book Scraper — KBB Used Cars for Sale
Scrape KBB used cars for sale from Kelley Blue Book search pages: price, mileage, make, model, KBB price badge and seller. USD 40 per 1,000 listings.
Pricing
from $30.00 / 1,000 vehicle listing extracteds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 hours ago
Last modified
Categories
Share
Kelley Blue Book Scraper collects KBB used cars for sale, plus new and certified listings, from public kbb.com cars-for-sale search pages and returns one record per vehicle with title, year, make, model, trim, advertised price, mileage, KBB price badge, seller, distance, badges, image and listing URL. It is built for dealers, automotive analysts and pricing teams who track listed inventory, and it costs USD 40 per 1,000 vehicle listings on the FREE tier (USD 30 on GOLD and above).
What data does the Kelley Blue Book scraper return?
Each dataset row is one vehicle listing card from a KBB cars-for-sale results page:
| Field | What it contains |
|---|---|
listingUrl | KBB vehicle page, normalized to https://www.kbb.com/cars-for-sale/vehicle/<id> |
listingType | Condition label the card shows, for example Used, New or a certified label such as Porsche Certified |
title | Vehicle title as displayed, for example 2018 Chevrolet Silverado 1500 |
year, make, model | Parsed from the title (Land Rover, Mercedes-Benz and Rolls-Royce stay whole makes); null when the title cannot be parsed |
trim | Trim shown on the card after the title, for example LT or Targa 4 GTS; null when the card shows none |
price | Advertised price in USD, as a number |
mileage | Advertised mileage in miles (35K mi becomes 35000) |
priceRating | KBB price badge such as Great Price, Good Price or Fair Price |
sellerName | Dealer or seller name when the card shows it, for example Porsche Fort Wayne |
distanceMiles | Distance from the search location when the card shows one (cards without a search location usually do not) |
badges | Visible badges from a fixed list: price badges, No Accidents, One Owner, Online Paperwork, Buy Online, Hybrid, Electric |
imageUrl | Primary listing image |
rawText | The card's visible text, kept for auditing and your own parsing |
sourceUrl, scrapedAt | Results page the card came from, and collection time |
The run summary is saved as SUMMARY in the key-value store: pages visited, cards seen, records saved, charged listing events and warnings for pages that could not be loaded.
How do I scrape KBB used cars for sale for one model or ZIP code?
Set the filters you want on kbb.com (make, model, ZIP code, radius, price, condition), copy the results URL and put it in startUrls. The Actor reads that page, follows further pages by adding a page number to the URL, and stops at maxPages per URL or maxItems in total.
{"startUrls": [{ "url": "https://www.kbb.com/cars-for-sale/used" }],"maxItems": 25,"maxPages": 2}
startUrls: 1 to 10 URLs onkbb.comwhose path contains/cars-for-sale/. Other hosts or paths stop the run with an input warning before any page is requested.maxItems: 1 to 200 unique listings per run (default 25).maxPages: 1 to 10 result pages per start URL (default 2).
Listings are deduplicated by KBB vehicle ID across pages and URLs, so a car that appears on two searches is saved and charged once.
Does it return Kelley Blue Book values or trade-in prices?
No. The Actor returns the advertised asking price and KBB's price badge from cars-for-sale listings. It does not return KBB Fair Market Range, trade-in, private-party or dealer values, VIN history reports, or dealer feeds. Use price with priceRating to see how KBB labels a listed car against the market.
When should I use it, and when not?
Use it when you need a snapshot of cars listed on KBB for a make, model or area: price and mileage tracking, competitor inventory checks for a dealership, used-car market research, or a feed of listings for an AI agent to compare.
Use something else when:
- You need VINs, full specifications or dealer details from other marketplaces: CARFAX Used Car Listings Scraper, CarMax Scraper or Cars For Sale Scraper.
- You need salvage or insurance auction vehicles: Copart Public Search Scraper.
- You need enthusiast car auctions: Cars & Bids Auction Scraper or Bring a Trailer Auctions Scraper.
- You need more than 200 listings in one run: split the search into several runs, for example by ZIP code or model.
How do I run it from code?
JavaScript with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/kelley-blue-book-scraper').call({startUrls: [{ url: 'https://www.kbb.com/cars-for-sale/used' }],maxItems: 25,maxPages: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const car of items) console.log(car.year, car.make, car.model, car.price, car.mileage, car.priceRating);
Python with apify-client:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/kelley-blue-book-scraper").call(run_input={"startUrls": [{"url": "https://www.kbb.com/cars-for-sale/used"}],"maxItems": 25,"maxPages": 2,})for car in client.dataset(run.default_dataset_id).iterate_items():print(car["title"], car.get("price"), car.get("mileage"), car.get("sellerName"))
Use it from an AI assistant
Kelley Blue Book Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/kelley-blue-book-scraper to your client and ask, for example: "Get 20 used cars listed on KBB from this search URL and list the ones marked Great Price with under 50,000 miles." Each saved listing is charged at the prices below.
What does the output look like?
A record from the 2026-10-27 run of the default input (rawText shortened):
[{"listingUrl": "https://www.kbb.com/cars-for-sale/vehicle/794025729","sourceUrl": "https://www.kbb.com/cars-for-sale/used","listingType": "CarBravo Certified","title": "2018 Chevrolet Silverado 1500","year": 2018,"make": "Chevrolet","model": "Silverado 1500","trim": "LT","price": 28372,"mileage": 66000,"priceRating": "Great Price","sellerName": "Laura Buick GMC, Inc.","distanceMiles": null,"badges": ["Great Price", "No Accidents", "Online Paperwork", "Buy Online"],"imageUrl": "https://atcimages.kbb.com/hn/c/75703e7133034415a998496a21ed342e.jpg?format=auto&width=408&height=306","rawText": "CarBravo Certified 2018 Chevrolet Silverado 1500 LT 66K mi 28,372 See payment Great Price Dealer Fees Included No Accidents ...","scrapedAt": "2026-10-27T12:47:51.807Z"}]
How much does the KBB scraper cost?
The Actor uses pay-per-event pricing, and platform usage is included in the event prices. Each unique listing saved to the dataset is one charged event; pages that fail to load are not charged.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Vehicle listing extracted | USD 0.04 | USD 0.04 | USD 0.04 | USD 0.03 | USD 0.03 |
| Actor start (per started GB of allocated memory) | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 |
Worked totals on the FREE tier at the default 512 MB memory (one start event):
- 5 listings (the Store example input): 5 × USD 0.04 + USD 0.005 = USD 0.205
- 200 listings (the per-run maximum): 200 × USD 0.04 + USD 0.005 = USD 8.005
The status message and SUMMARY estimate use the live event prices. If you set a maximum charge per run, the Actor stops before saving a listing it could no longer charge, so every saved listing is a charged listing.
Limits and reliability
- Access: KBB uses bot protection that blocks most datacenter traffic. The Actor fetches pages over US residential connections and retries each page up to 3 times with a fresh session. It does not log in or solve CAPTCHAs.
- Failures are reported, not hidden: a page that still fails is listed in
SUMMARY.warnings. If no listing is saved and any page failed, the run fails with the first reason instead of returning an empty success. - Parsing: fields come from listing cards. If KBB changes its card markup,
rawTextstill holds the visible text, and parsed fields such assellerNamecan benull. - Run size: at most 10 start URLs, 10 pages per URL and 200 listings per run; the default run timeout is 10 minutes.
- Freshness: prices and availability are what KBB showed at
scrapedAt. Re-run before making purchase or pricing decisions.
FAQ
Is there a Kelley Blue Book API for cars for sale?
KBB licenses data products to businesses through its B2B site. For listings, this Actor is a self-serve option: it reads the public cars-for-sale pages and returns structured JSON, CSV or Excel through Apify, with no API key.
Does it return KBB values or trade-in values?
No. It returns advertised listing prices and KBB's price badge, not valuation figures.
Can I scrape KBB used cars near a specific ZIP code?
Yes. Set the ZIP code and radius on kbb.com, then paste the resulting cars-for-sale URL into startUrls.
Does it return VINs or full vehicle specifications?
No. It reads search result cards, which do not carry the VIN or full specifications. For VINs, use the CARFAX or CarMax scrapers listed below.
How many listings can I get per run?
Up to 200 unique listings per run, from up to 10 start URLs. Schedule several runs with different searches for larger coverage.
What happens if KBB blocks a request?
The page is retried up to 3 times with a new session. Persistent failures appear in SUMMARY, and a run that saves nothing because of failures ends as failed with no listing charges.
Can I monitor KBB prices over time?
Yes. Save your input as an Apify task, schedule it daily or weekly, and compare price and priceRating by listingUrl between runs.
Related Actors
- CARFAX Used Car Listings Scraper: used-car listings with VINs and history signals
- CarMax Scraper: CarMax used-vehicle inventory
- Copart Public Search Scraper: auction vehicles, bids and damage
- Cars & Bids Auction Scraper: enthusiast car auctions
- LiveAuctioneers Scraper: auction lots, bids and estimates for collectibles
Legal and compliance
The Actor reads publicly accessible kbb.com cars-for-sale pages without logging in and does not bypass access controls or CAPTCHAs. Respect Kelley Blue Book's terms of use, keep request volumes reasonable, and verify prices with the seller before acting on them. This tool is not affiliated with or endorsed by Kelley Blue Book or Cox Automotive, and this is not legal advice.
Last verified: 2026-10-27