Craigslist Scraper: Full Details & Contacts avatar

Craigslist Scraper: Full Details & Contacts

Pricing

from $0.80 / 1,000 listing delivereds

Go to Apify Store
Craigslist Scraper: Full Details & Contacts

Craigslist Scraper: Full Details & Contacts

Scrape US and Canadian Craigslist listings with full descriptions, photos and public contacts. Search items, housing, jobs, gigs and services across cities. Keep website filters, export JSON/CSV and skip previously delivered ads. Details included by default.

Pricing

from $0.80 / 1,000 listing delivereds

Rating

0.0

(0)

Developer

Arjun Data

Arjun Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🔎 Craigslist data with full details included

Turn US and Canadian Craigslist searches into listing data for resale research, local market analysis, job feeds and AI apps. Collect full descriptions, photo URLs, prices, locations and publicly displayed contacts across for sale, housing, jobs, gigs and services.

Paste a filtered search URL or choose cities, a category and keywords. Full details are enabled by default and included in the per-ad price. No proxy configuration is needed.

  • Compare markets: collect several cities or categories in one run and retain each ad's source search.
  • Keep useful details: export descriptions, photos and category attributes, including housing and job fields.
  • Collect new arrivals: skip previously delivered posting IDs when running a saved search again.
  • Automate your workflow: use JSON/CSV exports, scheduled Tasks, the API or an AI client connected through MCP.

🚀 How to scrape Craigslist

  1. Try the prefilled example: up to 20 Sony electronics ads in New York.
  2. Adjust the cities, category and keyword, or paste your Craigslist search URLs. Keep Include full details and public contacts enabled.
  3. Select Start, then open Complete listings (JSON) or Listings (CSV). Check Messages and next steps for any collection notices.

To compare Sony electronics priced $20–$1,000 in New York and the San Francisco Bay Area:

{
"cities": ["newyork", "sfbay"],
"category": "ela",
"searchTerm": "sony",
"sort": "priceasc",
"minPrice": 20,
"maxPrice": 1000,
"hasImage": true,
"maxItems": 20,
"maxItemsPerSearch": 10,
"includeDetails": true
}

💵 How much does it cost?

Pay a startup fee plus each unique ad delivered. Descriptions, available photo URLs, attributes and publicly displayed contacts are included. There is no detail surcharge or separate platform-usage charge for this Actor.

Apify discount tierPrice per 1,000 ads
FREE$1.20
BRONZE$1.00
SILVER$0.90
GOLD, PLATINUM, DIAMOND$0.80

Startup is $0.0005 at the default 512 MB memory, at every tier. Up to 1 GB incurs one startup event; 2 GB incurs two, costing $0.001. At the FREE-tier rate and default memory, 20 ads cost $0.0245, and 1,000 ads cost $1.2005. FREE is a tier name; runs consume your available Apify credits.

Notices, failed ads and IDs skipped by newOnly incur no listing charge. Startup still applies when a started run delivers no ads. Search-only records have the same per-ad price. Ads delivered again in a later run are charged again unless history skips them.

Set a run spending limit of at least $0.01. This is a budget setting, not a minimum charge: you pay for actual events, not the entire budget. The Pricing tab shows your applicable rate.

Supported categories and search filters

This version covers US and Canadian Craigslist regions in five sections:

SectionMain codeExamples
For salesssela electronics, fua furniture, cta cars, mca motorcycles, zip free items
Housinghhhapa apartments, roo rooms, sub sublets, rea real estate
Jobsjjjtrp transportation, sof software
Gigsggglbg labor, dmg domestic
Servicesbbbhss household, sks skilled trades

Choose US cities such as newyork and sfbay, or Canadian cities such as toronto, vancouver and montreal. All 55 Canadian sites in the current Craigslist directory are selectable. Subareas also work: newyork/brk selects Brooklyn and toronto/tor selects the city of Toronto. Community, events, resumes and countries outside the US and Canada are outside this version.

Canadian data stays local: prices use CAD, vehicle odometers use kilometers, and original French or English titles and descriptions are preserved without translation. Standard category and attribute labels are requested in English. US and Canadian phone numbers both use +1. Each ad includes country and currency, including cross-border nearby results.

For a Canadian market comparison, use "cities": ["toronto", "vancouver", "montreal"] with your category and keyword. Price bounds use each search region's local currency; there is no currency conversion.

Keep filters from the website

Apply filters on Craigslist and paste the resulting URL into Craigslist search or listing URLs. You can mix categories and name each search:

{
"startUrls": [
{
"url": "https://chicago.craigslist.org/search/jjj?query=driver&employment_type=1&sort=date",
"userData": {"label": "Chicago full-time driving jobs"}
},
{
"url": "https://losangeles.craigslist.org/search/hss?query=cleaning&sort=date",
"userData": {"label": "Los Angeles cleaning services"}
}
],
"maxItems": 20,
"maxItemsPerSearch": 10,
"includeDetails": true
}

URLs replace the guided city, category, keyword, sorting and filter fields. Limits, detail settings, posting age, nearby suggestions and history still apply. Regional searches, /search/area/, /search/city/ and individual ad links are accepted. Individual ad links always receive details. For API calls, each URL must be an object containing url, as above.

Input guide

InputsHow to use them
searchTerm / searchTermsOne keyword query, or several independent queries across each city. Use one field, not both.
sortNewest, oldest, nearest, price ascending/descending, relevance or upcoming, where the category supports it. Jobs, gigs and services do not support price sorting.
maxItems / maxItemsPerSearchTotal unique ads; default 50, starter example 20. The optional per-search cap limits each city/query or URL.
includeDetailsDefault true. Includes full text, available photo URLs, attributes and public contacts.
minPrice, maxPriceWhole-number price bounds in each region's currency (USD or CAD), with no currency conversion. Housing retains its original rental period.
hasImage, postedToday, searchTitlesOnlyRequire photos, use the website's posted-today filter, or match keywords only in titles.
sellerType, conditionsOwner/dealer and item-condition choices, where supported.
freeOnly, deliveryAvailable, cryptocurrencyOkNative free-price, delivery and cryptocurrency-acceptance filters, where supported.
postalCode, radiusMiles, radiusKmOptional US ZIP or Canadian postal code. Choose one radius unit; the Actor converts it for each search region. Nearest-first sorting requires a radius; without a postal code, each city's center is used.
showDuplicatesChoose how Craigslist groups repeat ads. Omit to follow the website default.
postedWithinDays, includeNearbyA rolling posting-age window, or nearby US/Canadian suggestions. Radius searches already cover their requested circle.
filtersAdvanced category-specific URL parameters. For example, {"rent_period":[3],"pets_cat":1} selects monthly, cat-friendly rentals.

Paste a filtered URL when you are unsure of parameter codes. Do not set the same condition in both a named input and filters. Decimal bathroom bounds require checking listing details, even if includeDetails is off. Invalid options produce an explanatory notice. Native URL/filter distances and odometers use miles in US regions and kilometers in Canadian regions. Pasted URL radii are kept as entered. Craigslist can round the converted radius; the collection summary shows the applied radius.

📦 What data do you get?

Open Complete listings (JSON) for all ad fields, Listings (CSV) for spreadsheet columns, and Collection summary by input for counts and applied filters. Messages and next steps explains empty, partial or limited results.

DataFields
Identity and sourcepostId, url, title, section, category, categoryName, matchedSearches
Price and locationprice, priceRaw, currency, country, region, subarea, location, neighborhood, address, latitude, longitude, distanceMiles, distanceKm
Text, photos and contactsdescription, imageUrls, attributes, phoneNumbers, emails, contactStatus, contactSources
Items and vehiclessellerType, isFree, condition, year, makeModel, mileage, mileageUnit, monthlyPayment
HousingrentPeriod, bedrooms, bathrooms, area, areaUnit, areaRaw, propertyType, availableFrom, upcomingDate, openHouseDates
Jobs and gigscompensation, jobTitle, employmentType, companyName
Dates and historypostedAt, updatedAt, scrapedAt, repostOf, listingUuid, detailStatus, isNew, firstSeenAt

Category-specific fields appear where relevant. Missing values remain null or empty arrays. attributes preserves original source attributes. Jobs retain compensation as text; Free-category ads have isFree: true and price: 0.

Complete real output example

This electronics record came from the two-city Sony example above, with the current country and distance fields shown. It has three photos and no publicly extracted contact match. Housing and job records contain their own category fields.

{
"recordType": "listing",
"postId": "7967835342",
"listingUuid": "7MAp1G35G4QJ1LLHB6BxkM",
"url": "https://www.craigslist.org/view/d/san-jose-sony-speaker/7MAp1G35G4QJ1LLHB6BxkM",
"title": "Sony Speaker",
"section": "for_sale",
"category": "ele",
"categoryName": "electronics - by owner",
"price": 20,
"priceRaw": "$20",
"currency": "USD",
"country": "US",
"sellerType": "owner",
"region": "sfbay",
"subarea": "sby",
"location": "south bay",
"neighborhood": "san jose north",
"address": null,
"latitude": 37.4031,
"longitude": -121.8585,
"distanceMiles": null,
"distanceKm": null,
"description": "Sony Speaker\nGood Condition\n$20\ncall or text",
"imageUrls": [
"https://images.craigslist.org/00404_7fNGZXwtZ01_0CI0t2_1200x900.jpg",
"https://images.craigslist.org/00D0D_afOwTZ4cRNw_0CI0t2_1200x900.jpg",
"https://images.craigslist.org/00b0b_8D5odmuYAo2_0CI0t2_1200x900.jpg"
],
"attributes": {
"condition": "good"
},
"postedAt": "2026-10-11T18:42:55+00:00",
"updatedAt": "2026-10-11T18:37:55+00:00",
"scrapedAt": "2026-11-04T06:58:00.384756+00:00",
"repostOf": "7922304132",
"detailStatus": "collected",
"firstSeenAt": null,
"isNew": null,
"matchedSearches": [
{
"inputPosition": 2,
"inputLabel": "sfbay / ela / sony",
"inputUrl": "https://www.craigslist.org/search/area/sfbay?cat=ela&query=sony&sort=priceasc&min_price=20&max_price=1000&hasPic=1",
"searchRegion": "sfbay"
}
],
"phoneNumbers": [],
"emails": [],
"contactSources": [],
"contactStatus": "not_found",
"isFree": false,
"year": null,
"makeModel": null,
"mileage": null,
"mileageUnit": null,
"monthlyPayment": null,
"condition": "good"
}

The default dataset includes recordType: "listing" ads and recordType: "notice" explanations. Notices do not count toward maxItems. Ad-only exports are LISTINGS.json and LISTINGS.csv; notices are in NOTICES.json, and the summary is RUN_SUMMARY.

JSON retains every field. CSV selects 53 columns, omitting recordType, listingUuid, contactSources, upcomingDate and openHouseDates. Nested values are JSON strings in CSV.

Repeat collection and scheduled Tasks

Enable newOnly to skip posting IDs previously delivered to the same history. Optionally set watchName, save an Apify Task and add a schedule. Reuse the same search configuration and run sequentially; use different watch names for independent workflows.

The first run can include older ads. Changes to a previously delivered ID, including price changes, are skipped. Reposts with a new ID count as new ads. This feature does not track price changes or identify the same item across different posts.

Frequently asked questions

Are full details and contacts included?

Yes. includeDetails defaults to true, with no additional detail fee. Contacts are extracted from publicly visible text and links. Hidden Reply contacts and captcha-protected information are not retrieved. contactStatus is found, not_found or not_requested; a missing match does not mean the seller has no contact information.

Why are there fewer results than on Craigslist?

maxItems is a ceiling. Deleted ads, filters, duplicate grouping, spending limits and the source's accessible search window can reduce the total. Read Messages and next steps and the input summary before changing your search. The same posting ID is delivered once per run, with its matching inputs retained in matchedSearches.

How are multiple searches and photos handled?

Each search keeps its requested sort order; the combined output is not globally sorted. Full details include the image URLs supplied by the source, while search-only records can contain fewer images. Images are linked, not downloaded, and links can expire.

🤖 AI Agents & LLM Apps

Connect an AI client through the Apify MCP server, select arjun_code/craigslist-scraper, and use the input JSON above. Example instruction: “Compare up to 20 Sony electronics ads from New York and San Francisco, priced $20–$1,000. Include details, cite the source links and explain any collection notices.”

For direct API calls, send the same input JSON to:

POST https://api.apify.com/v2/acts/arjun_code~craigslist-scraper/runs?maxTotalChargeUsd=0.05
Authorization: Bearer YOUR_APIFY_TOKEN
Content-Type: application/json

Wait for the returned run ID to finish. Fetch LISTINGS.json and RUN_SUMMARY from its defaultKeyValueStoreId, or use its defaultDatasetId and retain only recordType: "listing" rows. Keep postId, source URLs and matchedSearches when presenting results. Read notices before interpreting an empty result. See the Apify run API.

More Craigslist tools

ActorBest fit
This general scraperMixed categories, multiple cities and filtered Craigslist URLs
Craigslist Cars ScraperVehicle research with dedicated car-search filters
Craigslist Rentals ScraperRental research with dedicated housing-search filters

For help, open this Actor's Issues tab with your run link and affected search URL. This Actor is independent of Craigslist and is not endorsed by Craigslist.