# Craigslist Cars & Vehicles Scraper: By Owner, VIN & Miles (`unitbytes/craigslist-cars-vehicles-scraper`) Actor

\[💰 From $0.50/1k] Scrape Craigslist cars, trucks, motorcycles, RVs, boats, heavy equipment & auto parts by owner or dealer across 700+ cities. Filter by make/model, year, odometer mileage, clean title & VIN.

- **URL**: https://apify.com/unitbytes/craigslist-cars-vehicles-scraper.md
- **Developed by:** [UnitBytes | Enterprise Web Data](https://apify.com/unitbytes) (community)
- **Categories:** E-commerce, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.35 / 1,000 search results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

<p align="center">
  <a href="https://apify.com/unitbytes/craigslist-cars-vehicles-scraper?fpr=939u3w&fp_sid=readme" target="_blank">
    <img src="https://raw.githubusercontent.com/unitbytes/.github/main/assets/banners/unitbytes-craigslist-leads-housing-cars-scraper-banner.jpg" alt="Craigslist Scraper API by UnitBytes" width="100%" />
  </a>
</p>

<p align="center">
  <a href="https://apify.com/unitbytes/craigslist-cars-vehicles-scraper?fpr=939u3w&fp_sid=readme" target="_blank">
    <img src="https://raw.githubusercontent.com/unitbytes/.github/main/assets/try-it-for-free.svg" width="240" height="48" alt="Try it for Free">
  </a>
  <br>
  <sub>⚡ <b>1-Click Free Trial:</b> Test live queries using Apify's free monthly credit • No credit card required</sub>
</p>

## 🚗 Craigslist Cars, Trucks & Vehicles Scraper: By Owner, VIN, Mileage, RVs & Boats \[From $0.50💰]

<p align="center">
  <img src="https://img.shields.io/badge/Coverage-Worldwide%20(700%2B%20Metros)-22c55e?style=for-the-badge&logo=globe" alt="Worldwide Coverage" />
  <img src="https://img.shields.io/badge/Targeting-Any%20Borough%20or%20Subarea-3b82f6?style=for-the-badge&logo=googlemaps" alt="Subarea Targeting" />
  <img src="https://img.shields.io/badge/Status_Checker-Active_%7C_Deleted_%7C_Expired-f97316?style=for-the-badge" alt="Listing Status Checker" />
  <img src="https://img.shields.io/badge/Currencies-USD%20%7C%20CAD%20%7C%20GBP%20%7C%20EUR%20%7C%20AUD%20%7C%20JPY-8b5cf6?style=for-the-badge" alt="Multi-Currency" />
  <img src="https://img.shields.io/badge/Pricing-From%20%240.50%2F1k%20(%240%20Duplicates)-eab308?style=for-the-badge" alt="Pricing" />
</p>

Supercharge your automotive arbitrage, real estate & property sourcing, job market monitoring, electronics resale, and classifieds intelligence with the **fastest, most complete Worldwide Craigslist Scraper**. Extract 100% structured vehicle specs (VIN, odometer mileage, clean title, make/model), property & housing attributes (beds, baths, sqft, pets, parking), job compensation & remote status, electronics brand/model, live `listingStatus` (`active`, `deleted`, `expired`, `flagged`), exact map coordinates, full-resolution photo galleries, and optional contact details (when included in descriptions) across **700+ metropolitan areas worldwide** in seconds.

Simply paste **any Craigslist search or borough URL**, choose from 75+ pre-indexed global metros, or enter your target keywords—with multi-currency extraction (`$`, `C$`, `£`, `€`, `A$`, `¥`) and automatic 24-hour deduplication so you only pay for brand-new listings!

<p align="center">
  <a href="https://apify.com/unitbytes/craigslist-cars-vehicles-scraper?fpr=939u3w&fp_sid=readme" target="_blank">
    <img src="https://raw.githubusercontent.com/unitbytes/Craigslist-OfferUp-Scraper-API/main/assets/craigslist-cars-vehicles-scraper-output-sample.png" alt="Craigslist Cars & Vehicles Scraper Sample Dataset Output" width="100%" />
  </a>
</p>

***

#### 🌍 Supported Worldwide Coverage (No Geographic Limits)

- 🇺🇸 **United States:** All 50 states, 400+ cities & subareas (New York, Los Angeles, SF Bay Area, Chicago, Miami, Dallas, Seattle, Atlanta, Phoenix, Boston...)
- 🇨🇦 **Canada:** Toronto, Vancouver, Montreal, Calgary, Ottawa, Edmonton, Quebec City, Victoria, Winnipeg...
- 🇬🇧 **United Kingdom & Ireland:** London, Manchester, Edinburgh, Birmingham, Glasgow, Dublin, Belfast...
- 🇦🇺 **Australia & New Zealand:** Sydney, Melbourne, Brisbane, Perth, Adelaide, Auckland, Wellington, Christchurch...
- 🇪🇺 **Europe:** Paris, Berlin, Amsterdam, Rome, Madrid, Vienna, Brussels, Zurich, Stockholm, Copenhagen...
- 🌏 **Asia & Americas:** Tokyo, Singapore, Hong Kong, Dubai, Seoul, Mexico City, Puerto Rico, Buenos Aires...

***

#### 💡 How to Target Any Neighborhood, Borough, or Town Worldwide

> **The Easiest Method (Zero Configuration):**
>
> 1. Open craigslist.org in your browser.
> 2. Pick your city, click your desired neighborhood or borough (e.g., *East Bay*, *Manhattan*, *Westside*, *Brooklyn*, *North Shore*), and apply any filters.
> 3. Copy the URL from your browser address bar (e.g., `https://sfbay.craigslist.org/eby/cta` or `https://newyork.craigslist.org/mnh/apa`).
> 4. Paste it into **Search or Listing URL** (`searchUrl`) or **Start URLs** (`startUrls`) and hit **Start**!
>
> *The scraper automatically decomposes the city, subarea, category, keywords, price bounds, and dealer/owner filters with 100% precision.*

***

<table>
  <tr>
    <td colspan="3" style="padding:10px 14px;background:#2563EB;color:#FFFFFF;font-size:13px;font-weight:700;border-radius:6px 6px 0 0">
      ⚡ UnitBytes · Global Local Marketplaces & Classifieds Intelligence Ecosystem
    </td>
  </tr>
  <tr>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33%">
      <span style="white-space:nowrap">🛒 <b><a href="https://apify.com/unitbytes/Facebook-Marketplace-Scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">FB Marketplace</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">Cars, Rentals & Items</span><br>
      <span style="color:#64748B;font-size:11px">40+ fields & full HD galleries</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FFF4ED;vertical-align:top;width:33%">
      <span style="white-space:nowrap">🏷️ <b><a href="https://apify.com/unitbytes/craigslist-cars-vehicles-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#C2410C;text-decoration:none;font-size:13px">Craigslist Scraper</a></b></span><br><span style="color:#EA580C;font-size:11px;font-weight:700">📍 You are here</span><br>
      <span style="color:#64748B;font-size:11px">Phones, emails, VINs & housing</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33%">
      <span style="white-space:nowrap">📱 <b><a href="https://apify.com/unitbytes/offerup-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">OfferUp Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">Local Deals & Motors</span><br>
      <span style="color:#64748B;font-size:11px">ZIP radius, vehicle specs & ratings</span>
    </td>
  </tr>
</table>

***

### 🌟 Why This Craigslist Scraper Outperforms the Rest

| Feature / Metric | ⚡ **UnitBytes Craigslist Scraper** | Other Scrapers on Apify |
| :--- | :--- | :--- |
| **Search Discovery Price** | **$0.50 / 1,000 results** 💰 | $1.80 – $6.00 / 1,000 results |
| **Full Detail Price** | **$1.50 / 1,000 results** | $1.80 – $6.00 / 1,000 results |
| **Global Geographic Coverage** | **700+ Metros Worldwide** (US, CA, UK, AU, NZ, EU, Asia) 🌍 | US only or crashes on international cities |
| **Multi-Metro Regional Clusters** | **YES (SoCal, NorCal, FL, TX, Tri-State NY, PNW, etc.)** 🗺️ | ❌ No (Single city only, must run 10 separate scrapers) |
| **Custom Multi-City Lists** | **YES (`subdomains: ["miami", "orlando", "tampa"]`)** 🏙️ | ❌ No (Requires multiple actor runs) |
| **Real-Time Delta Feed** | **YES (`onlyNewListings: true` stops at frontier)** ⚡ | ❌ No (Re-scrapes and charges for existing items) |
| **Listing Freshness Filter** | **YES (`maxHours: 12`, `24`, `48`)** ⏱️ | ❌ No (Manual post-processing required) |
| **Neighborhood & Subarea Targeting** | **Yes (Manhattan, East Bay, Brooklyn, Westside, etc.)** 🏙️ | Scrapes whole metro with heavy city leakage |
| **Multi-Currency Support** | **USD ($), CAD (C$), GBP (£), EUR (€), AUD (A$), JPY (¥)** 💱 | Hardcoded to USD or missing currency symbols |
| **Phone & Email Extraction** | **FREE (Included)** ✅ | Surcharged (up to +$0.05/email) or not parsed |
| **Delta Deduplication (Monitoring)** | **YES (24-Hour Cache)** ✅ | ❌ No (Charged repeatedly for duplicates) |
| **Filtered Duplicate Costs** | **$0.00 (Completely Free)** | Pay full price for duplicates |
| **Anti-Blocking Shield** | **Enterprise Proxy Rotation & Retries** ✅ | Basic / Static |
| **Category Coverage** | **All 15+ Categories** (Jobs, Gigs, Housing, Services, Cars, For Sale) | Limited to 1-2 categories |
| **Speed (200 items discovery)** | **4.16 seconds** ⚡ | 15 – 30+ seconds |

#### Key Technical Capabilities

- **🗺️ Multi-Metro Regional Clustering**: Run a single job across entire economic corridors using built-in presets (`socal`, `norcal_bayarea`, `florida`, `texas`, `tri_state_ny`, `pacific_northwest`, `midwest_chicago`) or specify arbitrary cities (`subdomains: ["miami", "orlando", "tampa"]`) with automatic quota balancing and cross-city deduplication.
- **⚡ Real-Time Delta Monitoring (`onlyNewListings`)**: Configure scheduled hourly runs. The scraper monitors the live feed, stops automatically when it hits previously seen listings, suppresses duplicates, and charges **$0.00 for skipped items**.
- **⏱️ Instant Listing Freshness Filter (`maxHours`)**: Extract listings posted in the last 6, 12, 24, or 48 hours directly from discovery timestamps without wasting detail credits on stale posts.
- **🌍 Worldwide Metros & Subarea Routing**: Target over 700+ metropolitan regions across the United States, Canada, UK, Australia, New Zealand, Europe, and Asia. Drill down into specific boroughs or neighborhoods (e.g. `mnh`, `eby`, `wst`) with zero city leakage.
- **🎯 Precise Postal / ZIP & Radius Targeting**: Filter by specific ZIP or postal code (`postal`) and search radius in miles (`radius`) to hone in on local deals.
- **⚡ Advanced Sorting Controls**: Sort listings by Newest First (`date`), Price: Low to High (`priceasc`), Price: High to Low (`pricedsc`), or Relevance (`rel`).
- **✨ 6-Tier Item Condition Filtering**: Target specific item quality tiers: New (10), Like New (20), Excellent (30), Good (40), Fair (50), or Salvage (60).
- **📞 Direct-Contact Extraction for Lead Generation**: Automatically parses real **phone numbers** and **email addresses** directly from the listing description. Filter by un-obfuscated contacts for outbound sales, recruiting, automotive buying, or real estate wholesaling—at **no extra fee**.
- **⚡ High-Speed Direct Search Engine**: Fast architecture retrieving thousands of matching postings in seconds in seconds with zero setup or unnecessary loading delays.
- **🔄 24-Hour Deduplication & Delta Monitoring**: Turn on `enableDeduplication` to skip listings seen in the past 24 hours. Perfect for hourly or daily monitoring schedules—you **only pay for newly posted listings** ($0.00 for filtered duplicates)!
- **🚗 Deep Automotive Intelligence**: Extract vehicle year, make, model, trim, odometer mileage, full **17-character VIN**, transmission, fuel type, and clean/salvage title status directly from car and truck postings.
- **🏠 Comprehensive Real Estate & Housing Data**: Scrape apartments, homes for rent, commercial listings, and vacation rentals with **bedrooms**, **bathrooms**, **square footage (sqft)**, laundry, and parking details.
- **💱 Multi-Currency Architecture**: Fully supports international commerce with automatic currency identification (`USD`, `CAD`, `GBP`, `EUR`, `AUD`, `JPY`, `BRL`, `SEK`).
- **🔗 Direct Search & Listing URL Support**: Simply copy and paste any Craigslist search URL, category page, or direct listing URL from your browser. Subareas (e.g. `/wst/apa`), filters, keywords, metros, and price bounds are automatically parsed and applied.
- **👤 Owner vs. Dealer Classification**: Instantly distinguish between private party sellers (`for sale by owner`) and commercial dealerships before reaching out.
- **📸 Full-Resolution Photo Galleries**: Extract up to 24 high-resolution photo URLs (1200x900) per post for visual inspection, computer vision training, or catalog syndication.
- **🛡️ Enterprise Anti-Blocking & High Availability**: Automated proxy management, smart session rotation, and automatic retry handling ensure maximum reliability across high-volume runs.
- **💰 100% Free Server Compute**: Backed by Pay-Per-Event (PPE) monetization—you pay **$0 for server compute and RAM**, and are only billed for verified listings saved to your dataset.
- **⚙️ Multi-Format Data Export**: Download clean, structured data directly to **Excel, CSV, JSON**, or integrate seamlessly with Python, Node.js, Webhooks, Google Sheets, or Zapier.

***

### 🎯 Popular Use Cases

- **📞 Sales Lead Generation & Wholesale Outbound**: Capture live seller phone numbers and emails for cars, equipment, real estate, and professional services for automated outreach.
- **🚙 Automotive Flippers & Dealerships**: Track undervalued cars, trucks, and motorcycles as soon as they are listed. Filter by price, private owner status, and mileage to find profitable flips before anyone else.
- **🏠 Real Estate, Rentals & Housing Intelligence**: Scrape apartments, houses for rent, commercial real estate, and vacation properties with location coordinates, bedroom counts, and square footage.
- **📦 E-commerce & Resale Arbitrage**: Source discounted electronics, smartphones, power tools, musical instruments, and vintage collectibles to resell on eBay, Amazon, Mercari, or Facebook Marketplace.
- **🛋️ Moving Sales & Estate Liquidations**: Monitor neighborhood garage sales, estate liquidations, and deep discounts on furniture and appliances.
- **💼 Lead Generation & Service Contractor Sourcing**: Discover local service providers, home contractors, freelancers, and gig workers across metropolitan regions.

***

### 🔗 Supported URL Formats & Examples

You can paste URLs directly into the `searchUrl` or `startUrls` input fields:

| URL Type | Example URL | What Gets Extracted |
| :--- | :--- | :--- |
| **Search with Filters** | `https://losangeles.craigslist.org/search/cta?query=tacoma&min_price=5000&max_price=20000` | Keyword, category, price bounds, and metro are auto-applied |
| **Filtered by Owner** | `https://sfbay.craigslist.org/search/cto?query=civic` | Auto-detects Cars & Trucks by Owner (`cto`) |
| **Category Browsing** | `https://chicago.craigslist.org/search/sss` | Automatically scrapes all items in the For Sale category |
| **Apartments / Housing** | `https://newyork.craigslist.org/search/apa?min_price=2000&max_price=3500` | Rental housing with beds, baths, sqft, and location details |
| **Paginated Search URL** | `https://miami.craigslist.org/search/cta?s=120` | Starts scraping from result offset 120 |
| **Modern Direct Listing** | `https://www.craigslist.org/view/d/santa-monica-2015-nissan-nv2500/7782194820` | Deep detail extraction for that exact listing |
| **Legacy Direct Listing** | `https://losangeles.craigslist.org/wst/cto/d/culver-city-2018-toyota-camry/7782194820.html` | Resolves canonical listing and extracts all attributes |

***

### 🔄 Pagination & High-Volume Sourcing

Unlike traditional scrapers that slowly click through paginated HTML pages, this Actor utilizes a high-efficiency **two-step query engine**:

1. **Query Initialization**: Analyzes your search filters, resolves the target metro area, and determines total matching results.
2. **Batch Ingestion**: Streams matching results directly from Craigslist server-side cache in batches of hundreds or thousands of postings in seconds.
3. **Offset & Depth Control**: Use the `maxItems` parameter to specify exactly how many results you need (from 1 up to 10,000+). Use `offset` (or paste a URL with `?s=120`) to skip already-scraped listings or resume previous jobs.

***

### 🛡️ Failure Handling & Anti-Blocking Architecture

This Actor is engineered for mission-critical reliability:

- **Intelligent Anti-Blocking**: Built-in automatic proxy rotation and exponential backoff retry handling ensure your runs complete smoothly without manual intervention.
- **Deleted & Expired Listing Fallback**: If a listing is removed or returns HTTP 404/410 between search discovery and detail fetch, the Actor gracefully falls back to the discovery summary. Every listing with a valid ID is preserved in your dataset and never dropped.
- **Incremental Dataset Flushing**: Data is pushed to your Apify dataset and billed in real-time batches of 10 items. Even if an Actor run is interrupted or aborted, all scraped data up to that second is securely saved in your dataset.

***

### 📥 Input Configuration

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `startUrls` | Array | `[]` | List of Craigslist search, category, borough, or direct listing URLs. |
| `searchUrl` | String | `""` | Single Craigslist search, borough, or listing URL (all filters auto-extracted). |
| `searchQuery` | String | `""` | Keyword to search for (e.g. `toyota tacoma`, `iphone 15`, `sofa`, `apartment`). |
| `category` | Select | `"sss"` | Category code (e.g. `sss` for all for sale, `cta` for cars, `apa` for housing, `jjj` for jobs, `bbb` for services). |
| `subdomain` | Select | `"losangeles"` | Select from top 75+ global metros (US, Canada, UK, Australia, Europe, Asia) or paste custom URLs for any region worldwide. |
| `subarea` | String | `""` | Optional sub-region or borough code (e.g., `mnh` for Manhattan, `eby` for East Bay, `wst` for Westside, `tor` for City of Toronto). |
| `minPrice` | Integer | `null` | Minimum listing price. |
| `maxPrice` | Integer | `null` | Maximum listing price. |
| `purveyor` | Select | `"all"` | Seller type: `all` (All Sellers), `owner` (By Owner), or `dealer` (By Dealer). |
| `hasImage` | Boolean | `false` | When enabled, only returns listings that include photos. |
| `postedToday`| Boolean | `false` | When enabled, only returns listings published in the last 24 hours. |
| `enableDeduplication` | Boolean | `false` | **24-Hour Delta Monitor**: Automatically skips listings already seen within the last 24 hours. Only brand-new posts are pushed to dataset. |
| `deduplicationHours` | Integer | `24` | Cache window in hours (default: 24h). Listings older than 24 hours are automatically evicted. |
| `hideDuplicates` | Boolean | `true` | Filters duplicate dealer reposts and spam with identical titles and prices. |
| `maxItems` | Integer | `50` | Maximum number of listings to extract (1 to 10,000). |
| `offset` | Integer | `0` | Number of initial results to skip for pagination or bookmarking. |
| `scrapeDetails`| Boolean | `true` | When `true`, fetches full listing pages for complete specs, VINs, contacts, and photo galleries. When `false`, executes ultra-fast discovery. |
| `maxConcurrency`| Integer | `5` | Maximum number of parallel detail page requests. |
| `proxyConfiguration`| Object | Apify Proxy | Managed Apify Proxy configuration with automatic IP rotation. |

***

### 📤 Sample Output Data

Each result is delivered in clean, structured JSON ready for analysis:

```json
{
  "listingId": "7987858896",
  "url": "https://www.craigslist.org/view/d/norwalk-2013-toyota-tacoma-trd-off-road/7987858896",
  "listingStatus": "active",
  "title": "2013 Toyota Tacoma TRD Off Road 4x4",
  "price": 14500.0,
  "currency": "USD",
  "subarea": "sfv",
  "condition": "excellent",
  "description": "Clean 2013 Toyota Tacoma TRD Off-Road. 104,500 miles, automatic transmission, clean title in hand.",
  "postDate": "2026-10-22T07:07:19-0700",
  "city": "Norwalk",
  "state": "CA",
  "zipCode": "90652",
  "latitude": 33.9022,
  "longitude": -118.0817,
  "isDealer": false,
  "isVehicle": true,
  "vehicleYear": 2013,
  "vehicleMake": "toyota tacoma trd off-road",
  "vehicleMiles": 104500,
  "vehicleVin": "5TFUX4EN4DX012345",
  "vehicleTransmission": "automatic",
  "vehicleFuelType": "gas",
  "vehicleTitleStatus": "clean",
  "thumbnailUrl": "https://images.craigslist.org/00B0B_1ZBm7qXYZ_600x450.jpg",
  "imageUrls": [
    "https://images.craigslist.org/00B0B_1ZBm7qXYZ_1200x900.jpg"
  ]
}
```

***

### 💰 Transparent Pay-Per-Event (PPE) Pricing

This Actor operates under Apify's **Pay-Per-Event (PPE)** model with zero hidden fees:

| Mode | Event | Price per 1,000 Results | What's Included |
| :--- | :--- | :--- | :--- |
| **Search Discovery** | `search-result` | **$0.50 / 1,000 items** ($0.0005/listing) 💰 | Listing ID, canonical URL, title, price, map coordinates (lat/lon), thumbnail, subarea. |
| **Full Detail Enrichment** | `detail-result` | **$1.50 / 1,000 items** ($0.0015/listing) | Everything in discovery + full description, up to 24 HD photos, vehicle VINs & specs, housing amenities, and **FREE verified seller phones & emails**. |

#### 🏷️ Official Apify Store Discounts (Automatic Tier Savings)

Paying Apify subscribers automatically receive tiered discounts on all runs:

| Subscription Tier | Search Discovery (`search-result`) | Full Details (`detail-result`) | Tier Discount |
| :--- | :--- | :--- | :--- |
| **Free Plan** | **$0.50** / 1k ($0.00050/item) | **$1.50** / 1k ($0.00150/item) | Base Rate |
| **Bronze** (Starter Plan) | **$0.45** / 1k ($0.00045/item) | **$1.35** / 1k ($0.00135/item) | **10% OFF** |
| **Silver** (Scale Plan) | **$0.40** / 1k ($0.00040/item) | **$1.20** / 1k ($0.00120/item) | **20% OFF** |
| **Gold / Platinum / Diamond** | **$0.35** / 1k ($0.00035/item) | **$1.05** / 1k ($0.00105/item) | **30% OFF** |

#### 🛡️ Why Our Pricing is the Most Cost-Effective on Apify:

- **FREE Phone & Email Leads**: Unlike other actors that charge up to **$0.05 PER EMAIL** ($50/1,000 emails!), all phone numbers and email addresses extracted from descriptions are **100% FREE** with no added charges.
- **FREE Delta Deduplication**: When running automated schedules with `enableDeduplication: true`, previously seen items that are filtered out cost **$0.00**. You only pay for newly discovered listings.
- **$0.00 Platform Compute & RAM**: Server runtime, CPU, and memory are completely free.
- **Fair Billing Guarantee**: If a query returns 0 matching results, you pay **$0.00**.

***

#### 🔌 MCP Server Setup: Claude Code, Cursor & AI Agents

Connect this scraper directly to **Claude Code**, **Claude Desktop**, **Cursor**, or any MCP-compatible AI agent via the hosted Apify MCP server:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=actors,docs,unitbytes/craigslist-cars-vehicles-scraper"
    }
  }
}
```

*No manual API token required in configuration if your client supports Apify OAuth sign-in. Alternatively, pass your Apify API Token in the authorization header.*

***

### ❓ Frequently Asked Questions (FAQ)

##### How do I scrape multiple cities or a whole region in one run?

You can target multi-metro corridors using either:

1. **Regional Presets (`regionPreset`)**: Select an economic cluster like `socal` (LA, Orange County, San Diego, Inland Empire, Bakersfield, Santa Barbara), `norcal_bayarea`, `florida`, `texas`, `tri_state_ny`, `pacific_northwest`, or `midwest_chicago`. The scraper automatically balances your requested quota across all metros with unified deduplication.
2. **Custom Multi-City Lists (`subdomains`)**: Provide an array of your favorite cities (e.g., `["miami", "orlando", "tampa"]`) to monitor custom combinations in a single run.

##### How do I set up an hourly real-time monitor for new listings?

Enable **Only Scrape New Listings (`onlyNewListings: true`)** and schedule the Actor to run hourly or daily on the Apify console. The crawler automatically stops fetching as soon as it reaches listings seen in previous runs, pushes only fresh listings to your dataset, and bills **$0.00 for duplicates**. You can also use **Listing Age Cutoff (`maxHours: 24`)** to enforce strict freshness.

##### Can I extract phone numbers and emails?

Yes! The Actor automatically scans every listing description for phone numbers and email addresses and includes them in `phoneNumbers[]` and `emails[]`. The `contactObfuscated` field is set to `false` whenever direct contact information is detected.

##### Can I paste a search URL directly from my browser?

Yes! Simply copy any search URL from your browser (e.g. `https://losangeles.craigslist.org/search/cta?query=tacoma&min_price=5000&max_price=20000`) and paste it into `searchUrl` or `startUrls`. The Actor automatically parses the metro subdomain, keyword, category, and price range.

##### How many listings can I scrape in one run?

You can scrape from a single listing up to 10,000+ items per run by adjusting `maxItems`.

##### Does it support housing and real estate attributes?

Yes! For housing and apartments (`apa`, `rea`, `roo`), the Actor extracts `bedrooms`, `bathrooms`, `sqft`, housing type, laundry, and parking details whenever available.

##### Which US metro areas are supported?

All 400+ official Craigslist US metro areas are supported. You can select from the top 50 metros directly in the dropdown or paste any regional URL for smaller cities.

##### How does the Actor handle deleted or sold listings?

Craigslist listings are occasionally deleted between when a search query runs and when the detail page is fetched. This Actor detects HTTP 404/410 status codes gracefully and preserves the discovery record (listing ID, URL, title, price, location) in your dataset rather than dropping it.

***

### 💬 Support & Feature Requests

Need help configuring your run, requesting custom fields, or reporting an issue?

- 💬 **Apify Issues**: Open a ticket in the [Apify Issues Tab](https://apify.com/unitbytes/craigslist-cars-vehicles-scraper/issues?fpr=939u3w)
- 📧 **Direct Email**: `contact@unitbytes.com`

### ⚖️ Compliance & Privacy

This actor extracts **strictly publicly available data** from Craigslist listings. It does not log in, bypass authentication walls, or access private user accounts. Personal data is protected by regulations such as GDPR and CCPA—see Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) and ensure you have a legitimate basis when processing public classified listings.

#### Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Craigslist, Inc. or any of its subsidiaries.

# Changelog

This Actor's version history is a separate document: https://apify.com/unitbytes/craigslist-cars-vehicles-scraper/changelog.md

# Actor input Schema

## `startUrls` (type: `array`):

List of Craigslist vehicle search, borough/subarea, or direct listing URLs (e.g. https://losangeles.craigslist.org/search/cto, https://sfbay.craigslist.org/eby/cta, https://dallas.craigslist.org/search/rva). Paste URLs directly from your browser to target any city, neighborhood, or custom filter set worldwide.

## `searchUrl` (type: `string`):

💡 Easiest method: Browse to any cars, trucks, motorcycles, RVs, or boats search on Craigslist, copy the URL from your browser address bar (e.g. https://losangeles.craigslist.org/search/cto?auto_make_model=tacoma or https://sfbay.craigslist.org/eby/cta), and paste it here. All cities, subareas, vehicle filters, and price ranges are automatically extracted.

## `searchQuery` (type: `string`):

Keyword to search for in listing titles and descriptions (e.g. 'toyota tacoma', 'honda civic', '4x4', 'cummins', 'sprinter'). Leave blank to scrape ALL vehicles in the selected category or city.

## `category` (type: `string`):

Craigslist category code.

## `subdomain` (type: `string`):

Select from top global metropolitan areas across US, Canada, UK, Australia, Europe, and Asia, OR simply paste any Craigslist URL above to target ANY city, town, or neighborhood worldwide.

## `subarea` (type: `string`):

Optional sub-region or borough code (e.g., 'mnh' for Manhattan, 'eby' for East Bay, 'wst' for Westside, 'tor' for City of Toronto). Leave empty to search the entire metropolitan area, or paste a URL above.

## `regionPreset` (type: `string`):

Target an entire regional market across multiple cities in a single run. Overrides the single Metro Area dropdown above.

## `subdomains` (type: `array`):

List of specific Craigslist metropolitan subdomains to scrape in a single run (e.g. \['miami', 'orlando', 'tampa'] or \['austin', 'dallas']).

## `scrapeDetails` (type: `boolean`):

Enabled by default ($1.50/1k). Extracts complete vehicle details including 17-character VIN, clean/salvage title status, transmission, fuel type, body type, drivetrain, cylinders, paint color, condition, full description, seller phones/emails, and up to 24 HD photos (1200x900). Disable for fast Search Discovery ($0.50/1k — returns title, price, odometer mileage, city/subarea, coordinates, and photo URLs; detail-only columns like VIN and Title Status will be empty).

## `minPrice` (type: `integer`):

Minimum listing price in USD.

## `maxPrice` (type: `integer`):

Maximum listing price in USD.

## `purveyor` (type: `string`):

Filter by owner or dealer.

## `hasImage` (type: `boolean`):

Only return listings that include photos.

## `postedToday` (type: `boolean`):

Only return listings published within the last 24 hours.

## `sort` (type: `string`):

Sort order for returned listings (Newest first, lowest price, highest price, or relevance).

## `postal` (type: `string`):

Target a specific postal or ZIP code (e.g. '90210', '10001', 'M5V 2T6'). Combine with Search Radius below.

## `radius` (type: `integer`):

Distance radius in miles around the specified Postal / ZIP Code.

## `condition` (type: `string`):

Filter listings by item condition (for vehicles, electronics, furniture, for sale).

## `autoMakeModel` (type: `string`):

Filter by vehicle make or model (e.g. 'toyota tacoma', 'honda civic', 'ford f150'). Executed server-side on Craigslist.

## `minAutoYear` (type: `integer`):

Minimum vehicle model year (e.g. 2015).

## `maxAutoYear` (type: `integer`):

Maximum vehicle model year (e.g. 2026).

## `minAutoMiles` (type: `integer`):

Minimum vehicle odometer reading in miles.

## `maxAutoMiles` (type: `integer`):

Maximum vehicle odometer reading in miles (e.g. 100000).

## `autoTitleStatus` (type: `string`):

Filter vehicles by title status.

## `autoTransmission` (type: `string`):

Filter vehicles by transmission type.

## `autoFuelType` (type: `string`):

Filter vehicles by fuel or powertrain type.

## `maxItems` (type: `integer`):

Maximum number of listings to extract.

## `offset` (type: `integer`):

Number of initial listings to skip for pagination or bookmarking (e.g., 120, 240, 360).

## `maxConcurrency` (type: `integer`):

Maximum simultaneous detail requests.

## `onlyNewListings` (type: `boolean`):

When enabled, checks against a persistent cache in your Apify Key-Value Store and outputs ONLY newly posted listings on subsequent scheduled runs. Perfect for Slack, Discord, Google Sheets, or Zapier automations with 0 duplicate spam ($0.00 charge for skipped duplicates).

## `maxHours` (type: `integer`):

Only scrape listings posted within the last N hours (e.g. 2, 6, 24). Automatically skips older postings during discovery.

## `enableDeduplication` (type: `boolean`):

When enabled, checks against a 24-hour cache in your Apify storage and automatically skips listings seen in the last 24 hours. Only brand-new listings are pushed to the dataset ($0.00 charge for filtered duplicates).

## `customStoreName` (type: `string`):

Optional Apify Key-Value Store name for persisting seen listings across scheduled runs (e.g. 'nyc-rentals-cache'). Defaults to 'craigslist-monitor-cache'. Useful for keeping separate caches across multiple scheduled monitors.

## `hideDuplicates` (type: `boolean`):

Automatically filters out duplicate dealer reposts and spam with identical titles and prices within the run.

## `proxyConfiguration` (type: `object`):

Managed Apify proxy configuration with automatic IP rotation. Highly recommended when Scrape Full Listing Details is enabled to prevent Craigslist IP blocks.

## Actor input object example

```json
{
  "startUrls": [],
  "category": "cto",
  "subdomain": "losangeles",
  "regionPreset": "none",
  "subdomains": [],
  "scrapeDetails": true,
  "purveyor": "all",
  "hasImage": false,
  "postedToday": false,
  "sort": "date",
  "condition": "all",
  "autoTitleStatus": "all",
  "autoTransmission": "all",
  "autoFuelType": "all",
  "maxItems": 50,
  "offset": 0,
  "maxConcurrency": 5,
  "onlyNewListings": false,
  "enableDeduplication": false,
  "hideDuplicates": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Scrape Craigslist cars, trucks, vehicles, motorcycles, RVs, boats, heavy equipment, and auto parts by owner or dealer. Filter by make, model, year, mileage, clean title, and VIN.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "searchUrl": "",
    "searchQuery": "",
    "subarea": "",
    "subdomains": [],
    "postal": "",
    "autoMakeModel": "",
    "customStoreName": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("unitbytes/craigslist-cars-vehicles-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "searchUrl": "",
    "searchQuery": "",
    "subarea": "",
    "subdomains": [],
    "postal": "",
    "autoMakeModel": "",
    "customStoreName": "",
}

# Run the Actor and wait for it to finish
run = client.actor("unitbytes/craigslist-cars-vehicles-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "searchUrl": "",
  "searchQuery": "",
  "subarea": "",
  "subdomains": [],
  "postal": "",
  "autoMakeModel": "",
  "customStoreName": ""
}' |
apify call unitbytes/craigslist-cars-vehicles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,unitbytes/craigslist-cars-vehicles-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BHQEtnxOj0LUVYhqh/builds/PZh6j3yoHjho7g9TO/openapi.json
