Craigslist Scraper | Listings, Prices & Details avatar

Craigslist Scraper | Listings, Prices & Details

Pricing

$1.00 / 1,000 craigslist listings

Go to Apify Store
Craigslist Scraper | Listings, Prices & Details

Craigslist Scraper | Listings, Prices & Details

Collect Craigslist listings across 50 US and Canadian regions. Search cars, housing, jobs, electronics, furniture, services, gigs and events with keyword, price, condition, image and date filters. Export unique listings with descriptions, images, post IDs, locations and category-specific attributes.

Pricing

$1.00 / 1,000 craigslist listings

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Collect Craigslist listings with prices, descriptions, images and category-specific attributes. Choose a city and category, add optional filters, or paste search and posting URLs. Export unique results for market research, inventory monitoring and classifieds analysis.

What this Actor does

The Actor searches Craigslist and returns one Dataset item per unique posting. The city selector contains 50 presets: 44 US regions and six Canadian regions. Categories cover general sale listings, cars and trucks, electronics, furniture, apartments and houses, rooms, sublets, jobs, gigs, services, community, resumes and events.

You can collect search-listing information alone or request full posting details. Full details include the published description, category-specific attributes, available gallery images, posting dates and location information. Phone numbers and email addresses are extracted only when present in the public description.

Use cases

  • Compare advertised vehicle prices, condition and mileage across cities.
  • Monitor housing listings by asking price, bedrooms and published features.
  • Collect job and gig descriptions with compensation when disclosed.
  • Track second-hand product availability and asking prices.
  • Build a deduplicated classifieds dataset with links back to each posting.

How to use

  1. Choose a City / region and Category, then optionally enter a keyword. Alternatively, paste Craigslist search or posting URLs.
  2. Set Maximum results and choose whether to include full details.
  3. Click Start and open the Dataset when the run finishes.
  4. Download results in JSON, CSV or Excel. Check the run summary if any sources or details could not be retrieved.

The run log shows processed listings versus the requested limit, percentage, successful and failed sources, collection speed, estimated time remaining and elapsed time. Updates are sent periodically while work is in progress. The final message distinguishes completion, an empty search and collection problems.

Input

FieldDefaultBehavior
startUrlsEmptyUp to 100 search, category or posting URL strings. URL filters are preserved. When supplied, all guided search settings below are ignored.
regionnewyorkOne of the 50 preset regions.
categorysssTop-level category code: sss For sale, cta Cars & trucks, ela Electronics, fua Furniture, apa Apartments & houses, roo Rooms & shares, sub Sublets & temporary, jjj Jobs, ggg Gigs, bbb Services, ccc Community, rrr Resumes, eee Events. Use startUrls for a specific subcategory.
searchTermEmptyOptional keyword, up to 500 characters.
priceMin, priceMaxUnsetPrice range in the listing's local currency, for applicable categories.
conditionanynew, like-new, excellent, good, fair or salvage, where supported.
hasImage, postedTodayfalseApply Craigslist's corresponding search filters.
sortdateNewest, relevance (rel), lowest price (priceasc) or highest price (pricedsc).
includeDetailstrueFetch full posting details. Individual posting URLs always receive detail extraction.
maxResults200Strict global limit across all sources. 0 allows up to 100,000 unique rows.
includeNearbyfalseInclude nearby-area suggestions when Craigslist supplies them.

The same posting appears only once across the run. Sources are processed in input order; the result limit can be reached before later sources are searched. Sorting applies within each search, not across all regions combined. The 100,000-row limit is an Actor safety cap, not a promise that Craigslist exposes that many matches.

The Canadian presets are Montreal, Toronto, Vancouver, Calgary, Ottawa and Edmonton. US presets include New York, Los Angeles, Chicago, San Francisco Bay Area, Seattle, Boston, Miami, Dallas, Houston and the other regions in the selector. Pasted URLs may identify additional Craigslist areas, but coverage outside the presets is not comprehensively verified.

Example input:

{
"region": "seattle",
"category": "ela",
"searchTerm": "20uf",
"maxResults": 1
}

Output

Results are stored in the default Dataset. Each item identifies the original posting and the search or URL that produced it. Prices use the listing's local currency and are not converted to US dollars. Category attributes vary by posting, and absent information remains null, an empty array or an empty object.

detailsStatus distinguishes complete detail extraction (ok), listing-only output (not_requested), confirmed deletion (deleted) and detail retrieval problems such as not_found, blocked or network_error. If an optional detail request fails, the valid search listing is retained with the failure status. A direct URL that cannot be retrieved produces a summary error rather than an invented listing.

isDeleted is true only for an explicit deletion message, false for a valid fetched posting, and otherwise unknown (null). isNearby marks suggestions from outside the requested area. contactObfuscated is false when public contact text was found, true when only a reply button was observed, and otherwise null. Contact extraction does not verify ownership or deliverability.

Craigslist may show a Reply button without publishing the seller's email address or phone number in the public posting. The Actor does not open that private reply flow, solve its verification challenge or reconstruct its relay address. In those cases emails and phoneNumbers correctly remain empty arrays; replyToken identifies the public reply link and is not a contact address.

This is the complete Dataset item from a real successful run:

{
"url": "https://www.craigslist.org/view/d/clinton-new-20uf-400v-motor-start-run/jcKfSpd4HtqMRBcrfaqHjX",
"postId": "7926770440",
"title": "NEW!!! 20uf 400V Motor Start run Capacitor",
"price": 25.0,
"currency": "USD",
"region": "seattle",
"categorySlug": "ela",
"categoryLabel": "Electronics",
"subcategorySlug": "ele",
"subcategoryLabel": "electronics - by owner",
"location": "South End of Whidbey",
"neighborhood": null,
"latitude": 47.9508,
"longitude": -122.3916,
"mapAccuracy": null,
"postedAt": "2026-04-09T20:13:58-0700",
"updatedAt": "2026-09-05T08:41:45-0700",
"description": "*** if you are reading this the item is still available***\nWhat you see is what you get. I am assuming if you are reading this then you are familiar with what you are looking at so no other description should be needed.",
"attributes": {},
"imageUrls": [
"https://images.craigslist.org/00d0d_9llB9E1MrRC_0oZ0t2_600x450.jpg",
"https://images.craigslist.org/00h0h_jOekMWAiA3s_0ki0t2_600x450.jpg",
"https://images.craigslist.org/00s0s_gMRdXUH4WJP_0bh0oN_600x450.jpg",
"https://images.craigslist.org/01111_jy8jhXGnKU9_0k80eR_600x450.jpg"
],
"hasImages": true,
"phoneNumbers": [],
"emails": [],
"contactObfuscated": true,
"replyToken": "sea/ele/7926770440",
"sellerListingsUrl": null,
"isDeleted": false,
"isNearby": false,
"detailsStatus": "ok",
"sourceUrl": "https://www.craigslist.org/search/area/seattle?cat=ela&sort=date&query=20uf",
"scrapedAt": "2026-09-05T18:15:35.875261+00:00"
}

Pricing

The Actor charges for each unique listing delivered to the Dataset. The active introductory price is $0.001 per listing ($1.00 per 1,000 listings). Apify has scheduled the following tiered prices for the next pricing period:

TierPrice per listingEquivalent per 1,000 listings
Free$0.001000$1.00
Bronze$0.000950$0.95
Silver$0.000900$0.90
Gold$0.000850$0.85
Platinum$0.000850$0.85
Diamond$0.000850$0.85

The equivalent column is only a comparison; billing remains per delivered listing. Empty searches, failed requests, discarded duplicates and run-summary records are not charged. A valid search listing can still be returned when its optional detail enrichment fails; check detailsStatus when evaluating these results. Check the Pricing tab for the effective tier and current billing details before starting a run.

ActorBest for
Built In Jobs Scraper | Salaries & SkillsResearch technology jobs with employers, skills and published salary information.
Fotocasa Spain Property Listings ScraperCollect Spanish property listings with prices, rooms, photos and agency information.

Limits and data quality

Default memory is 256 MB, with a supported range of 256–512 MB.

Craigslist listings change while a run is in progress. Counts, ordering and availability can differ between requests. Seller-entered prices, condition and attributes are returned as published; a low price may describe a payment or deposit rather than the full purchase price. Keywords can match description text, so a matching title is not required.

Coordinates describe the location published by Craigslist and should not be treated as a verified street address. Search timestamps can differ from the original posting dates available in the full detail page. Image links are returned as supplied or as search-gallery images; their availability can change after extraction.

When Craigslist publishes a neighborhood label, it is returned in neighborhood. mapAccuracy is the source map precision value when present, and sellerListingsUrl is the public link to additional listings by the seller when Craigslist exposes it. These three fields are nullable and are not inferred when the source omits them.

The Actor collects public content without signing in. Email addresses are returned only when the seller publishes them in visible posting text, a public mailto: link or an obfuscated form such as name [at] example [dot] com. It does not solve CAPTCHAs or reveal contact information hidden behind Craigslist's reply flow. Temporary access failures receive a bounded automatic retry when permitted by the source response. Failed searches are recorded in the summary; successful sources can still return results. Reduce request concurrency and retry later if access is restricted. Long-running stability and maximum coverage depend on source availability.

Frequently asked questions

Does this work in the United States and Canada?

Yes. The region selector contains 44 US presets and six Canadian presets. The currency field distinguishes published USD and CAD prices when that information is available.

Can I mix searches and individual posting URLs?

Yes. Supply them as plain strings in startUrls. Existing URL filters take precedence over guided search fields, and deduplication applies across the entire run.

Can I collect listings without their descriptions?

Yes. Set includeDetails to false for search URLs. Search fields such as title, price, location, images and posting ID remain available. Individual posting URLs are always fetched as details.

Why are there fewer results than requested?

The requested maximum is a cap. Searches may contain fewer matches, duplicate postings, excluded nearby results or unavailable records. Access restrictions and the run's spending limit can also stop collection early.

Why are emails or phoneNumbers empty?

Those fields contain only contact information that the seller publishes in the visible description, a public mailto: link or an obfuscated text form. Craigslist often keeps contact details behind its Reply flow, which may require an interactive verification challenge. This Actor leaves that contact hidden and returns empty arrays instead of guessing or exposing a relay token.

Responsible use

Use the data for lawful purposes and comply with applicable Craigslist terms and privacy requirements. Publicly visible contact information should not be treated as permission for unsolicited messaging. Verify listing details directly before making purchasing, housing or employment decisions.

Support

Open an issue in the Actor's Issues tab with your run ID, a reproducible input and a description of the expected result. Do not include account credentials or other secrets.

Public guide and API examples

See the Craigslist Scraper web guide, API examples and sample dataset for no-code instructions, Python, JavaScript and cURL examples, and sanitized output files.