# 🇺🇸🚘craigslistdata scraper US 🇺🇸(💰0.99) (`jordan-byte/craigslistdata-scraper-us-0-99`) Actor

Craigslist autos search URLs (or direct listing URLs) and extracts detailed data for every car listing it finds: title, year, make, model, price, odometer reading, condition, transmission, fuel type, images, seller location, and more.

- **URL**: https://apify.com/jordan-byte/craigslistdata-scraper-us-0-99.md
- **Developed by:** [Jordan Byte](https://apify.com/jordan-byte) (community)
- **Categories:** E-commerce, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Craigslist Car Data Scraper

Extract structured car listing data from [Craigslist](https://www.craigslist.org/) search results without writing a single line of code.

### What does Craigslist Car Data Scraper do?

This Actor takes one or more **Craigslist autos search URLs** (or direct listing URLs) and extracts detailed data for every car listing it finds: title, year, make, model, price, odometer reading, condition, transmission, fuel type, images, seller location, and more. Just paste a search URL like `https://www.craigslist.org/search/area/sfbay?cat=aut`, hit run, and get clean JSON, CSV, or Excel data back.

Because it runs on the [Apify platform](https://apify.com), you get automatic proxy rotation, scheduling, API access, and integrations with tools like Google Sheets, Make, and Zapier — all without maintaining any scraping infrastructure yourself.

### Why use Craigslist Car Data Scraper?

- **Market research** — track used car prices, inventory, and trends across any Craigslist region.
- **Lead generation** — build a feed of new listings matching your criteria (dealers, flippers, car buyers).
- **Price monitoring** — compare listings across cities to spot underpriced vehicles.
- **Data enrichment** — feed structured listing data into your own CRM, spreadsheet, or app.

### How to use Craigslist Car Data Scraper

1. Go to a Craigslist region's autos search (e.g. `https://www.craigslist.org/search/area/sfbay?cat=aut`), narrow it down with any filters you like (price, make, model, keyword), and copy the resulting URL.
2. Paste that URL into the **Start URLs** field on the Input tab of this Actor.
3. Optionally set **Max Items per Start URL** to control how many listings to scrape per URL.
4. Click **Start** and wait for the run to finish.
5. Open the **Dataset** tab to view, download, or export your results.

You can also paste direct listing URLs (e.g. `https://www.craigslist.org/view/d/napa-2015-ford-f250-diesel-4x4/...`) if you only want specific listings.

### Input

| Field                | Type    | Description                                                                                        |
| -------------------- | ------- | -------------------------------------------------------------------------------------------------- |
| `startUrls`          | array   | Craigslist search URLs or direct listing URLs to scrape.                                           |
| `maxItems`           | integer | Maximum number of listings to scrape per start URL (default: 5).                                   |
| `useCache`           | boolean | When enabled (default), listings already delivered in a previous run are skipped automatically.    |
| `proxyConfiguration` | object  | Apify Proxy configuration. Proxy is required — Craigslist blocks direct traffic patterns at scale. |

See the **Input** tab for the full schema and defaults.

### Output

Each dataset item represents one car listing:

```json
{
    "url": "https://www.craigslist.org/view/d/napa-2015-ford-f250-diesel-4x4/fz7xHKmjebsLHMh8Sq1WX6",
    "postId": "7952589080",
    "title": "2015 Ford F250 Diesel 4x4",
    "year": 2015,
    "make": "ford",
    "model": "f-250",
    "makeModel": "ford f-250",
    "price": 21000,
    "priceCurrency": "USD",
    "odometer": 200000,
    "attributes": {
        "fuelType": "diesel",
        "titleStatus": "clean",
        "transmission": "automatic",
        "bodyType": "pickup"
    },
    "features": ["cryptocurrency ok", "delivery available"],
    "description": "2015 Ford F250 Diesel 4x4 w/locking hubs automatic transmission...",
    "images": ["https://images.craigslist.org/00j0j_WG0geTclA5_0t20CI_600x450.jpg"],
    "location": {
        "neighborhood": "napa county",
        "region": "north bay",
        "city": "Napa",
        "state": "CA",
        "postalCode": "94581",
        "country": "US",
        "latitude": 38.2904,
        "longitude": -122.2841
    },
    "postedAt": "2026-08-09",
    "updatedAt": null
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data table

| Field                     | Description                                                                                                                                                                                 |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`                   | Listing title.                                                                                                                                                                              |
| `year` / `make` / `model` | Parsed vehicle year, make, and model.                                                                                                                                                       |
| `price` / `priceCurrency` | Asking price and currency.                                                                                                                                                                  |
| `odometer`                | Mileage, if listed.                                                                                                                                                                         |
| `attributes`              | All other vehicle attributes Craigslist provides (condition, fuel type, transmission, drive type, paint color, title status, body type, VIN, etc.) as key/value pairs — varies per listing. |
| `features`                | Boolean listing features with no value, e.g. "delivery available".                                                                                                                          |
| `description`             | Full listing description text.                                                                                                                                                              |
| `images`                  | Full-size image URLs.                                                                                                                                                                       |
| `location`                | Neighborhood, region, city, state, postal code, country, and geo-coordinates.                                                                                                               |
| `postedAt` / `updatedAt`  | Listing posted/updated dates.                                                                                                                                                               |

### How much does it cost to scrape Craigslist?

This Actor uses lightweight HTTP requests (no browser), so runs are fast and cheap. Scraping a handful of listings for a daily monitoring run typically costs a fraction of a cent in compute units, plus Apify Proxy usage. Use **Max Items per Start URL** to keep runs small and predictable while testing.

### Tips and known limitations

- Craigslist's search results page returns a capped number of listings per query (roughly 350). For complete coverage of a large category, split your search into narrower start URLs (by price range, make, or sub-area) instead of relying on one broad query.
- Proxy is required for this Actor to run reliably — do not disable it in the Input tab.
- Expired or removed listings are skipped automatically and logged as warnings rather than failing the run.
- **Repeat runs skip listings you already have.** With **Skip Previously Scraped Listings** enabled (the default), each run remembers which listings it already delivered and only returns new ones on subsequent runs — ideal for scheduled daily/weekly monitoring. Turn it off if you want a full re-scrape.

### FAQ, disclaimers, and support

This Actor only extracts publicly visible listing data and does not collect seller contact details. It is intended for research, monitoring, and lead-generation use cases; please review [Craigslist's Terms of Use](https://www.craigslist.org/about/terms.of.use) before using scraped data commercially. Craigslist's page structure may change over time, which can affect extraction — if you notice missing fields or broken runs, please open an issue in the Actor's Issues tab. Need a custom version of this scraper (different fields, sites, or scale)? Reach out through the Issues tab or Apify's contact form.

# Actor input Schema

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

Craigslist search URLs (e.g. area or category autos search) or direct listing URLs to scrape.

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

Maximum number of listings to scrape per start URL.

## `useCache` (type: `boolean`):

When enabled, listings already delivered in a previous run are skipped, so repeat runs only return new listings.

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

Apify Proxy is required for this Actor to reliably access Craigslist without being blocked.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.craigslist.org/search/area/sfbay?cat=aut&excats=69-50-3-2-36-3-1-4-23-1-1-1-1-1-5-1-1-1-1-1-2-1"
    }
  ],
  "maxItems": 5,
  "useCache": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

# 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": [
        {
            "url": "https://www.craigslist.org/search/area/sfbay?cat=aut&excats=69-50-3-2-36-3-1-4-23-1-1-1-1-1-5-1-1-1-1-1-2-1"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jordan-byte/craigslistdata-scraper-us-0-99").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": [{ "url": "https://www.craigslist.org/search/area/sfbay?cat=aut&excats=69-50-3-2-36-3-1-4-23-1-1-1-1-1-5-1-1-1-1-1-2-1" }],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("jordan-byte/craigslistdata-scraper-us-0-99").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": [
    {
      "url": "https://www.craigslist.org/search/area/sfbay?cat=aut&excats=69-50-3-2-36-3-1-4-23-1-1-1-1-1-5-1-1-1-1-1-2-1"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call jordan-byte/craigslistdata-scraper-us-0-99 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jordan-byte/craigslistdata-scraper-us-0-99"
        }
    }
}

```

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/j049dGACHyht89UDX/builds/qbP6k90fUCEjg9ozd/openapi.json
