🔥 Craigslist Cars and Trucks Scraper ⚡ avatar

🔥 Craigslist Cars and Trucks Scraper ⚡

Pricing

from $2.00 / 1,000 new listings

Go to Apify Store
🔥 Craigslist Cars and Trucks Scraper ⚡

🔥 Craigslist Cars and Trucks Scraper ⚡

Scrapes Craigslist cars and trucks from any city - by owner, by dealer, or both. Returns only what was posted since your last check, so you can run it on a schedule instead of re-downloading the whole market. Price, mileage, photo and link, ready as JSON or CSV.

Pricing

from $2.00 / 1,000 new listings

Rating

5.0

(2)

Developer

Digital User

Digital User

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

14 days ago

Last modified

Share

See used cars and trucks on Craigslist seconds after the seller posts them — for sale by owner, by dealer, or both, with the price, mileage, photo and a link to every one.


What is Craigslist Cars and Trucks Scraper?

It is a Craigslist cars scraper that watches a market instead of searching it. You describe the car once — price, mileage, year, seller type — and the ones that match arrive while the listing is still warm, rather than after someone else has already called.

Cars, trucks, SUVs and vans, in any city Craigslist runs in. Put it on a schedule and each run brings only what appeared since the last one, so nothing repeats.


What can Craigslist Cars and Trucks Scraper do?

⚡ A listing reaches you seconds after it goes up, and a full page of them takes about two seconds to pull

⏱️ Get only what was posted in the last N minutes — not the same cars you saw an hour ago

🏙️ Watch one city exactly, or a ZIP code and radius spanning several markets at once

👤 Filter by seller: for sale by owner, by dealer, or both

🎯 Narrow by price, mileage, model year, keyword, clean title

🔗 Get a permanent link and photo for every listing

🔓 Run it with no login and no proxy — nothing to configure

📄 Export as JSON, JSONL, CSV, XML, HTML table, or Excel

🔌 Send results to n8n, Make, Zapier, Google Sheets, Slack, or a webhook

🕒 Put it on a schedule and let it watch the market for you


What Craigslist car data can I extract?

🚗 Title, year, make and model💵 Asking price, as a number
🛣️ Odometer reading📍 Neighbourhood and city
🖼️ Photo🔗 Permanent listing link
🕒 Exact posting time⏱️ Age in minutes when you pulled it
🆔 Posting id, stable for de-duplication

How do I scrape Craigslist cars and trucks?

  1. Click Save & Start. The optional URL field is already filled in, so this works before you change anything.
  2. Swap in your own city. Search on Craigslist as usual, copy the address bar url, paste it over the example.
  3. Narrow it down. Set price, mileage, year, keyword or seller type. Leave the rest alone.
  4. Only want what is new? Set the age filter to 15 minutes. Every run then brings just the fresh listings.

Which URL you paste decides how wide the search goes:

the URL you pastewhat you get
a plain city page, e.g. craigslist.org/search/area/sfbay?cat=ctathat city exactly
the same page after you set a ZIP and distancethat range, neighbouring cities included

🤖 Using this scraper with an AI agent

This Actor runs from Claude Code, ChatGPT, Cursor or any other agent that speaks MCP, because every Apify Actor is exposed through Apify's MCP server. Point your agent at it and ask in plain language:

"Find Toyota pickups under $15,000 posted in Phoenix in the last hour, with under 100,000 miles, and put them in a table."

The agent fills in the input, runs it and reads the results back. Nothing to wire up — your Apify token is the only thing it needs.


Does Craigslist have an API?

No public one. There is no Craigslist API key to request and no official Craigslist API documentation. That is why people look for a Craigslist scraper.

This Actor is the practical answer: one endpoint, clean JSON, nothing for you to maintain.


Input

{
"startUrl": "https://www.craigslist.org/search/area/sfbay?cat=cta",
"newerThanMinutes": 15,
"minPrice": 5000,
"maxPrice": 25000,
"maxMiles": 120000,
"minYear": 2015,
"purveyor": "owner",
"cleanTitleOnly": true,
"maxItems": 25
}

Output sample

{
"id": 7972408404,
"title": "2020 Toyota Prius L eco LOW MILES",
"price": 21500,
"miles": 44800,
"city": "belmont, sfbay",
"url": "https://www.craigslist.org/view/d/belmont-2020-toyota-prius-eco-low-miles/jkfU797Jj1wGhpzSDDMJkg",
"image": "https://images.craigslist.org/00G0G_h5PsYXKiMLJ_0t20CI_300x300.jpg",
"postedAt": "2026-09-24T23:29:46.000Z",
"ageMinutes": 785
}

Price and mileage are numbers, not strings. Links are permanent. Timestamps are real.


Who uses Craigslist car data?

🔧 Flippers and small dealers who need to see a mispriced car while it is still for sale, not after someone else has driven it away.

🔎 Buyers hunting one model — keyword, year range, mileage cap, checked every fifteen minutes so the search runs even when you are not at a screen.

📊 Anyone tracking prices — a steady feed of what is listed, where, and for how much, across as many cities as you care to watch.

🗂️ Dealers building inventory lists from several markets at once, anywhere Craigslist operates.

🔔 People who want an alert, not a browser tab — new listings pushed to Slack, email or an app you wrote yourself.


How fast is this Craigslist scraper?

About two seconds per run. No browser to boot, nothing to warm up, no pages crawled one after another.

⚡ A car can be in front of you about 20 seconds after the seller posts it. That is the whole gap, end to end — most of what is left is Craigslist's own, and no scraper can go under it.

🥇 Twenty seconds is first in line. A good listing is gone in an hour; the people who get it are the ones who wrote first, not the ones who looked hardest. Put this on a schedule and you are the first message in the seller's inbox.


How much does scraping Craigslist cost?

$2.00 per 1,000 listings, plus $0.01 per check.

You pay for the check, then only for what the check found. That is what makes a tight schedule affordable — the usual way to price a scraper bills every row of every run, so you pay again for the same listings each time.

watching one cityhereif every row were billed each run
once an hour~$12 / month~$1,000 / month
every 15 minutes~$33 / month~$4,100 / month
once a day~$5 / month~$43 / month, data up to 24h old

About $33 a month for listings minutes old, against about $43 for a once-a-day snapshot. Less money, fresher data.

A quiet market costs almost nothing. Nothing new, nothing to pay for — this is a real run on a real city:

360 listings fetched, 0 passed the filters
charged: 1 check ($0.01), 0 listings ($0.00) -> $0.01 for that run

Maximum results caps the rest. Listings come back newest first, so setting it to 25 means "the 25 freshest and no more". One search matched 50 cars; capped at 25 it cost $0.06 instead of $0.11.

Apify also lets you set a hard spending cap on any run or schedule. Use it.


Integrations: n8n, Make, Zapier and more

Results land in a standard Apify dataset, so they go wherever you already work. No glue code — pick the tool, point it at this Actor, and new listings arrive on their own.

How do I connect this Craigslist scraper to n8n?

n8n talks to Apify directly, so a workflow is three nodes: a schedule, this Actor, and wherever you want the cars to land — a database, a sheet, a Telegram message, your own endpoint. Point the Apify node at digital_user/craigslist-cars-scraper, paste the same JSON input you see above, and read the dataset items back as the node's output.

Self-hosting n8n works the same way; all it needs is your Apify token.

Make, Zapier and Google Sheets

Make and Zapier both have Apify integrations: trigger on a finished run, then map the listing fields onto whatever comes next — a spreadsheet row, a message, an email. Google Sheets is where most people start, because a sheet filling up with fresh cars explains itself to anyone you share it with.

Webhooks and your own code

Fire a webhook on run completion and a fresh listing can reach your phone before the seller has answered anyone. For anything custom there is the API below, with official clients for JavaScript and Python.


Using this Craigslist scraper with the Apify API

curl -X POST "https://api.apify.com/v2/acts/digital_user~craigslist-cars-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"startUrl": "https://www.craigslist.org/search/area/sfbay?cat=cta",
"newerThanMinutes": 15
}'

Official clients exist for JavaScript and Python. The Apify CLI works too.


Ready-made setups

Each of these is this scraper already configured for one job. Open one, press Save & Start, and change the city afterwards if you want a different market.

setupwhat it pulls
Cars and trucks for sale by ownerprivate sellers only, Los Angeles
Cars and trucks under $10,000the affordable end, San Francisco Bay Area
New car listing alertsonly the last hour, New York
Trucks for salepickups, Dallas
Low-mileage used cars2018 or newer, under 80,000 miles, Chicago
Cheap cars under $5,000the budget end, Atlanta
Toyota cars for saleone brand, San Francisco Bay Area
Honda cars for saleone brand, Seattle
Cars for sale in Houstonone city, nothing from next door
Cars for sale in Phoenixone city, nothing from next door

FAQ

Do I need a Craigslist account to scrape it?

No. No login, no cookies and no proxy configuration. It reads the listings Craigslist shows to anyone, which is why there is nothing for you to set up.

Is there a free Craigslist scraper?

Apify gives every new account free monthly usage, so small runs cost you nothing to try. Beyond that this Actor charges $0.01 per check and $2.00 per 1,000 listings — and a check that finds nothing new costs only the check.

How many listings can I scrape at once?

Maximum results sets the ceiling per search, and listings come back newest first — so 25 means the 25 freshest. Watch several cities by giving several search URLs, each with its own ceiling.

Web scraping is legal when you are collecting publicly available data, and a Craigslist listing is public by design — it is posted so that people can read it. What you should respect are the boundaries around it: personal data and intellectual property.

This scraper stays well inside both. It returns only what the listing shows on its own card — title, price, mileage, location, photo and a link — and no personal data at all: no seller names, no phone numbers, no email addresses. Descriptions and photos are never republished; every row points back to the original post on Craigslist.

If your own plans go further than that, check the rules that apply where you are before you start.

How do I get alerted when a car is listed?

Set the age filter to the window you want — fifteen minutes, an hour — then put the Actor on a schedule. Each run brings back only what appeared since, and a webhook or an n8n, Make or Zapier step sends it to Slack, email or your phone. Nothing to sit and watch.

How do I watch a market without checking it myself?

Point it at a city, set a schedule, and let it run. You pay for the check and for whatever it found, so a quiet market costs a cent — which is what makes watching several cities at once affordable rather than theoretical.

Why is the age filter better than scraping everything?

Because you pay for listings, not for repeating yourself. A market does not change much in fifteen minutes; asking only for what is new means a quiet run costs a cent instead of re-downloading the same two hundred cars.

Craigslist Cars and Trucks Scraper not working?

I keep improving this scraper. If something breaks, a city misbehaves, or you want a field it does not return yet, create an issue on the Actor's Issues tab.

You can also write to goto.nature.mood@gmail.com. I read everything.


More scrapers

Actorwhat it does
LinkedIn Jobs Scraperjobs on LinkedIn, minutes after they are posted