Craigslist Scraper | Fast & Reliable
Pricing
from $1.99 / 1,000 results
Craigslist Scraper | Fast & Reliable
Craigslist scraper to extract publicly available listings, titles, prices, locations, descriptions, seller details, posting dates, and categories from Craigslist 📋🏠🚗 Perfect for market research, lead generation, price monitoring, and classified ads analysis.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Hub
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Craigslist Scraper
An Apify actor that scrapes Craigslist listings — search results and full detail
pages — without a browser. It uses requests/curl_cffi for HTTP and parsel
(CSS/XPath selectors) for parsing. When Craigslist (Akamai) blocks a plain request,
the fetch is retried with a rotated browser TLS fingerprint (curl_cffi impersonation)
and a fresh residential proxy IP.
How it works
- Area resolution — each start URL's subdomain (
miami.craigslist.org→miami) is mapped to a CraigslistAreaIDvia the public reference API (reference.craigslist.org/Areas). - Search — one call to the Craigslist search API
(
sapi.craigslist.org/web/v8/postings/search/full) returns the whole result set as compact, delta-encoded arrays, which are decoded into listing stubs (id, price, geo, slug, url token, thumbnails, title). - Detail — each listing's
/view/d/{slug}/{token}page is fetched concurrently and parsed from its two JSON-LD blocks (BreadcrumbList+Product) plus stable CSS hooks (#postingbody,.attrgroup .attr,.mapaddress,time,[data-latitude]).
Input
| Field | Type | Description |
|---|---|---|
startUrls | array | Craigslist search URLs (required) |
category | string | Category abbr used when a start URL path has none (default sss) |
soldBy | string | "", owner, or dealer |
deliveryAvailable | bool | Only listings offering delivery |
freeOnly | bool | Only free (price = 0) listings |
hasPic | bool | Only listings with images |
hideDuplicates | bool | Bundle duplicate postings |
postedToday | bool | Only listings posted today |
limit | int | Max listings across all start URLs (default 50000) |
maxConcurrency | int | Parallel detail-page fetches (default 8) |
proxyConfiguration | object | Apify proxy — use RESIDENTIAL (datacenter IPs are blocked) |
Example input
{"startUrls": ["https://miami.craigslist.org/search/sss?query=apartment"],"category": "sss","hideDuplicates": false,"hasPic": false,"limit": 50000,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output (one item per listing)
Scraped At, Listing URL, Title, Price, Currency, Description, Location,
Neighborhood, Map Address, Latitude, Longitude, Price Text, Category,
Subcategory, Post ID, Posted At, Updated At, Attributes, Condition, Body,
Image URLs.
Notes
- Craigslist caps a single search at roughly a few thousand results;
limitabove that is honored only up to what the search API returns. - Run with residential proxies — datacenter and un-proxied requests get an Akamai block.