Craigslist Search Scraper
Pricing
from $1.00 / 1,000 results
Craigslist Search Scraper
Fast craigslist search scraper. Search any of 666 craigslist cities by category, keyword, price range, or map radius. Extracts title, price, posting timestamp, latitude and longitude, location, neighborhood, image urls, and post url. Reads craigslist's own JSON search API, no headless browser.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Craigslist Search Scraper extracts classified listings from any craigslist city in structured JSON. Search by city, category, keyword, price range, or map radius, and get back the title, price, posting timestamp, latitude and longitude, location, neighborhood, image urls, and a working link to every post.
This craigslist scraper reads craigslist's own JSON search API directly. There is no headless browser, so runs are fast and cheap, and the data arrives already structured rather than parsed out of HTML.
What Craigslist Search Scraper extracts
Every record includes:
postingId- craigslist's canonical posting identifierurl- direct link to the posttitle- the seller's post titlepriceandpriceLabel- numeric price plus the formatted display pricepostedAt- UTC timestamp when the post went live, ISO 8601latitudeandlongitude- real coordinates for mappinglocationNameandneighborhood- the place craigslist assigns to the postcitySubdomainandsubareaAbbr- craigslist city and subareacategoryIdandsearchCategory- the post's categoryimagesandimageCount- direct image urlsodometer- vehicle mileage on car and truck categoriesbedroomsandareaSqft- on housing categories such asapaandhhhcurrency- the currency the price is quoted in, so international cities are not misread as USD
Why this craigslist scraper
Coordinates and posting timestamps are the two fields most craigslist scraping tools drop. This actor returns both on every record, because it reads them from the same API response that supplies the title and price. If you are plotting listings on a map, deduplicating a feed over time, or tracking how long inventory sits, those fields are the ones you need.
Input
Set cities to one or more craigslist city subdomains. The subdomain is the first part of the site url, so newyork.craigslist.org is newyork. All 666 craigslist cities are supported, including international ones such as london, toronto, berlin, and sydney.
Set category to a craigslist category abbreviation. The top level categories are sss for sale, jjj jobs, hhh housing, bbb services, ggg gigs, and ccc community. Subcategories work too, such as cta for cars and trucks, apa for apartments, or ele for electronics.
Optional filters include a search keyword, minimum and maximum price, posted today, has image, and a latitude, longitude, and radius for searching around a point.
{"cities": ["newyork", "phoenix"],"category": "sss","query": "mountain bike","maxPrice": 500,"maxItems": 1000}
Output
One row per craigslist post. Results are written to the default dataset and can be exported as JSON, CSV, or Excel, or pulled through the Apify API from Python, JavaScript, or any HTTP client.
{"postingId": "dddMNaNcqeTRK4g1CBCwPd","url": "https://www.craigslist.org/view/d/wilton-recycle-52-cm-derosa-super/dddMNaNcqeTRK4g1CBCwPd","title": "ReCyCle 52 cm, DeRosa Super Prestige","price": 1000,"priceLabel": "$1,000","postedAt": "2026-08-08T19:26:23Z","latitude": 41.1958,"longitude": -73.4304,"locationName": "Wilton","citySubdomain": "newyork","categoryId": 68,"images": ["https://images.craigslist.org/00Y0Y_4bBm2CcrZZj_0t20CI_600x450.jpg"],"imageCount": 1}
How many results you can get
Craigslist exposes roughly 2000 results per city and category through search, even when the category reports far more posts in total. To collect more, add more cities, split the search by subcategory, or split it by price band. Records are deduplicated across the whole run, so overlapping searches will not produce duplicate rows.
Pricing
Pay per result. You are charged per post written to the dataset.
If a search matches nothing at all, the actor writes a single row explaining that instead of finishing with an empty dataset, so a search that finds no posts costs one result.
Notes on data quality
Price is absent on genuinely free posts and on most job and community posts, so it comes back null there rather than as a zero. Neighborhood is only present when craigslist has assigned one, which is common in dense cities and rare elsewhere. Odometer appears only on vehicle categories, and bedrooms and area only on housing categories.
Coordinates come from the poster, and on cross posted listings they can disagree with the craigslist location label, so both fields are reported exactly as craigslist supplies them and are not reconciled.
Some international cities, including berlin and sydney, do not include coordinates in craigslist's search response at all. For those cities latitude and longitude come back null while the location name and city are still populated. London does return coordinates.
Prices are passed through exactly as craigslist reports them. A small number of joke listings carry absurd values, up to the 64 bit integer maximum, so filter on a sane upper bound before averaging.