Craigslist Classifieds Scraper with Category Attributes
Scrape Craigslist search results and individual posts across any city subdomain, with category-specific attributes for jobs, housing, autos, and for-sale posts. No login or proxy required.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect: keyword search, a category browse, specific Craigslist URLs, or the region/subarea reference list. |
region | string | optional | Craigslist city/region to search (mode=search/category). Pick a common region, or use Custom region for any of the 707 Craigslist sites. |
customRegion | string | optional | Any Craigslist hostname or abbreviation (e.g. humboldt, tokyo, sfbay). Overrides Region. (mode=search/category) |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect: keyword search, a category browse, specific Craigslist URLs, or the region/subarea reference list. |
region | string | optional | Craigslist city/region to search (mode=search/category). Pick a common region, or use Custom region for any of the 707 Craigslist sites. |
customRegion | string | optional | Any Craigslist hostname or abbreviation (e.g. humboldt, tokyo, sfbay). Overrides Region. (mode=search/category) |
subarea | string | optional | Optional Craigslist subarea abbreviation inside the region (e.g. sfc, eby, brk). Leave blank for the whole region. (mode=search/category) |
category | string | optional | Craigslist category to search or browse. The default is all for-sale listings. |
searchQueries | array | optional | One or more keywords. Each query is searched separately; results are de-duplicated. Leave empty for a category browse. (mode=search) |
startUrls | array | optional | Craigslist search pages, new-style /view/d/... post URLs, or old /region/category/post-id.html URLs. (mode=byUrl) |
minPrice | integer | optional | Only listings at or above this price. Posts without a price are excluded when a price filter is set. |
maxPrice | integer | optional | Only listings at or below this price. Posts without a price are excluded when a price filter is set. |
postedToday | boolean | optional | Only listings posted in the last 24 hours (Craigslist's posted-today filter). |
hasImage | boolean | optional | Only listings with at least one photo. |
titlesOnly | boolean | optional | Match the keywords against titles only instead of titles and descriptions. |
sellerType | string | optional | Filter by owner, dealer, or either. |
sortBy | string | optional | Order of results within each query. |
condition | string | optional | For for-sale and auto categories: only items in this condition. |
minBedrooms | integer | optional | Housing only. |
maxBedrooms | integer | optional | Housing only. |
minBathrooms | integer | optional | Housing only. |
maxBathrooms | integer | optional | Housing only. |
minSqft | integer | optional | Housing only. |
maxSqft | integer | optional | Housing only. |
autoMakeModel | string | optional | Auto categories only, e.g. honda civic. |
minAutoYear | integer | optional | Auto categories only. |
maxAutoYear | integer | optional | Auto categories only. |
maxAutoMiles | integer | optional | Auto categories only. |
postalCode | string | optional | Optional ZIP/postal code to anchor the search geographically. Use with Search radius. |
searchRadiusMiles | integer | optional | Distance around the postal code. Requires Postal code. |
hideDuplicates | boolean | optional | Ask Craigslist to group duplicate/reposted listings together. |
deliveryAvailable | boolean | optional | For-sale and auto categories: only listings offering delivery. |
cryptoOk | boolean | optional | For-sale and auto categories: only listings that accept crypto. |
countryCode | string | optional | Two-letter country code to filter the areas list (mode=areas), e.g. US, CA, GB. Leave blank for all 707 sites. |
maxItems | integer | optional | Hard cap across all queries and URLs. Craigslist returns at most 10,000 results per search. |
includeDetails | boolean | optional | Fetch each listing's full description, attributes, images, coordinates, and repost status. Turn off for faster search-card-only results. |
Download the published input schema
View complete JSON
{
"description": "Search Craigslist by keyword or browse a category, scrape specific post URLs, or list the 707 Craigslist regions.",
"properties": {
"autoMakeModel": {
"description": "Auto categories only, e.g. honda civic.",
"editor": "textfield",
"title": "Vehicle make and model",
"type": "string"
},
"category": {
"default": "sss",
"description": "Craigslist category to search or browse. The default is all for-sale listings.",
"editor": "select",
"enum": [
"sss",
"foa",
"for",
"fod",
"sya",
"sys",
"syd",
"waa",
"wan",
"wad",
"tia",
"tix",
"tid",
"bia",
"bik",
"bid",
"mca",
"mcy",
"mcd",
"bka",
"bks",
"bkd",
"sga",
"spo",
"sgd",
"cla",
"clo",
"cld",
"cba",
"clt",
"cbd",
"ela",
"ele",
"eld",
"hsa",
"hsh",
"hsd",
"msa",
"msg",
"msd",
"baa",
"bab",
"bad",
"ema",
"emd",
"emq",
"tla",
"tls",
"tld",
"boo",
"boa",
"bod",
"jwa",
"jwl",
"jwd",
"pta",
"pts",
"ptd",
"rva",
"rvs",
"rvd",
"taa",
"tag",
"tad",
"gra",
"grd",
"grq",
"bfa",
"bfs",
"bfd",
"ara",
"art",
"ard",
"maa",
"mat",
"mad",
"pha",
"pho",
"phd",
"fua",
"fuo",
"fud",
"cta",
"cto",
"ctd",
"ppa",
"app",
"ppd",
"ata",
"atq",
"atd",
"vga",
"vgm",
"vgd",
"haa",
"hab",
"had",
"moa",
"mob",
"mod",
"sna",
"snw",
"snd",
"hva",
"hvo",
"hvd",
"mpa",
"mpo",
"mpd",
"bip",
"bop",
"bdp",
"syp",
"sop",
"sdp",
"bpa",
"bpo",
"bpd",
"wta",
"wto",
"wtd",
"tra",
"tro",
"trb",
"ava",
"avo",
"avd",
"bar",
"gms",
"zip",
"hhh",
"rea",
"reo",
"reb",
"apa",
"hou",
"roo",
"sha",
"sub",
"off",
"prk",
"sbw",
"swp",
"vac",
"rew",
"jjj",
"web",
"bus",
"mar",
"etc",
"wri",
"sof",
"acc",
"ofc",
"med",
"hea",
"ret",
"npo",
"lgl",
"egr",
"sls",
"sad",
"tfr",
"hum",
"tch",
"edu",
"trd",
"gov",
"sci",
"csr",
"trp",
"spa",
"rej",
"mnu",
"fbh",
"lab",
"sec",
"ggg",
"tlg",
"cwg",
"cpg",
"lbg",
"wrg",
"dmg",
"crg",
"evg",
"bbb",
"biz",
"cps",
"crs",
"evs",
"hss",
"lss",
"lbs",
"sks",
"lgs",
"fns",
"rts",
"aos",
"bts",
"wet",
"trv",
"fgs",
"pas",
"mas",
"cys",
"cms",
"hws",
"ccc",
"com",
"vol",
"act",
"rid",
"pet",
"kid",
"mis",
"ats",
"muc",
"pol",
"laf",
"rnr",
"grp",
"vnn",
"eee",
"eve",
"cls",
"rrr",
"res"
],
"enumTitles": [
"for sale",
"general",
"general for sale - by owner",
"general for sale - by dealer",
"computers",
"computers - by owner",
"computers - by dealer",
"wanted",
"wanted - by owner",
"wanted - by dealer",
"tickets",
"tickets - by owner",
"tickets - by dealer",
"bikes",
"bicycles - by owner",
"bicycles - by dealer",
"motorcycles",
"motorcycles",
"motorcycles",
"books",
"books",
"books",
"sporting",
"sporting goods - by owner",
"sporting goods - by dealer",
"clothes+acc",
"clothes+acc",
"clothes+acc",
"collectibles",
"collectibles - by owner",
"collectibles - by dealer",
"electronics",
"electronics - by owner",
"electronics - by dealer",
"household",
"household items - by owner",
"household items - by dealer",
"music instr",
"musical instruments - by owner",
"musical instruments - by dealer",
"baby+kids",
"baby & kid stuff - by owner",
"baby & kid stuff - by dealer",
"cds/dvd/vhs",
"cds / dvds / vhs - by owner",
"cds / dvds / vhs - by dealer",
"tools",
"tools - by owner",
"tools - by dealer",
"boats",
"boats - by owner",
"boats - by dealer",
"jewelry",
"jewelry - by owner",
"jewelry - by dealer",
"auto parts",
"auto parts - by owner",
"auto parts - by dealer",
"RVs",
"rvs - by owner",
"rvs - by dealer",
"toys+games",
"toys+games",
"toys+games",
"farm+garden",
"farm+garden",
"farm+garden",
"business",
"business/commercial - by owner",
"business/commercial - by dealer",
"arts+crafts",
"arts & crafts - by owner",
"arts & crafts - by dealer",
"materials",
"materials - by owner",
"materials - by dealer",
"photo+video",
"photo/video - by owner",
"photo/video - by dealer",
"furniture",
"furniture - by owner",
"furniture - by dealer",
"cars+trucks",
"cars+trucks",
"cars+trucks",
"appliances",
"appliances - by owner",
"appliances - by dealer",
"antiques",
"antiques - by owner",
"antiques - by dealer",
"video gaming",
"video gaming - by owner",
"video gaming - by dealer",
"beauty+hlth",
"health and beauty - by owner",
"health and beauty - by dealer",
"cell phones",
"cell phones - by owner",
"cell phones - by dealer",
"atvs/utvs/snow",
"atvs, utvs, snowmobiles - by owner",
"atvs, utvs, snowmobiles - by dealer",
"heavy equipment",
"heavy equipment - by owner",
"heavy equipment - by dealer",
"motorcycle parts",
"motorcycle parts - by owner",
"motorcycle parts - by dealer",
"bike parts",
"bicycle parts - by owner",
"bicycle parts - by dealer",
"computer parts",
"computer parts - by owner",
"computer parts - by dealer",
"boat parts",
"boat parts - by owner",
"boat parts - by dealer",
"auto wheels & tires",
"wheels+tires",
"wheels+tires",
"trailers",
"trailers - by owner",
"trailers - by dealer",
"aviation",
"aviation - by owner",
"aviation - by dealer",
"barter",
"garage sales",
"free stuff",
"housing",
"real estate for sale",
"real estate - by owner",
"real estate - by broker",
"apartments / housing for rent",
"wanted: apts",
"rooms & shares",
"wanted: room/share",
"sublets & temporary",
"office & commercial",
"parking & storage",
"wanted: sublet/temp",
"housing swap",
"vacation rentals",
"wanted: real estate",
"jobs",
"web design",
"business",
"marketing",
"etcetera",
"writing",
"software",
"finance",
"admin/office",
"media",
"healthcare",
"retail/wholesale",
"nonprofit",
"legal",
"engineering",
"sales",
"systems/networking",
"tv video radio",
"human resource",
"tech support",
"education",
"skilled trades",
"government",
"science",
"customer service",
"transport",
"salon/spa/fitness",
"real estate",
"manufacturing",
"food/bev/hosp",
"general labor",
"security",
"gigs",
"talent gigs",
"crew gigs",
"computer gigs",
"labor gigs",
"writing gigs",
"domestic gigs",
"creative gigs",
"event gigs",
"services",
"small biz ads",
"computer services",
"creative services",
"event services",
"household services",
"lessons & tutoring",
"labor & moving",
"skilled trade services",
"legal services",
"financial services",
"real estate services",
"automotive services",
"beauty services",
"write/edit/trans",
"travel/vacation",
"farm & garden services",
"pet services",
"marine services",
"cycle services",
"cell phone / mobile services",
"health/wellness",
"community",
"general",
"volunteers",
"activity partners",
"rideshare",
"pets",
"childcare",
"missed connections",
"artists",
"musicians",
"politics",
"lost & found",
"rants & raves",
"groups",
"local news and views",
"events/classes",
"events",
"classes",
"resumes",
"resumes"
],
"prefill": "sss",
"title": "Category",
"type": "string"
},
"condition": {
"default": "any",
"description": "For for-sale and auto categories: only items in this condition.",
"editor": "select",
"enum": [
"any",
"new",
"like-new",
"excellent",
"good",
"fair",
"salvage"
],
"enumTitles": [
"Any condition",
"New",
"Like new",
"Excellent",
"Good",
"Fair",
"Salvage"
],
"prefill": "any",
"title": "Condition",
"type": "string"
},
"countryCode": {
"description": "Two-letter country code to filter the areas list (mode=areas), e.g. US, CA, GB. Leave blank for all 707 sites.",
"editor": "textfield",
"title": "Country code",
"type": "string"
},
"cryptoOk": {
"default": false,
"description": "For-sale and auto categories: only listings that accept crypto.",
"prefill": false,
"title": "Cryptocurrency accepted",
"type": "boolean"
},
"customRegion": {
"description": "Any Craigslist hostname or abbreviation (e.g. humboldt, tokyo, sfbay). Overrides Region. (mode=search/category)",
"editor": "textfield",
"title": "Custom region",
"type": "string"
},
"deliveryAvailable": {
"default": false,
"description": "For-sale and auto categories: only listings offering delivery.",
"prefill": false,
"title": "Delivery available",
"type": "boolean"
},
"hasImage": {
"default": false,
"description": "Only listings with at least one photo.",
"prefill": false,
"title": "Has image",
"type": "boolean"
},
"hideDuplicates": {
"default": false,
"description": "Ask Craigslist to group duplicate/reposted listings together.",
"prefill": false,
"title": "Hide duplicate listings",
"type": "boolean"
},
"includeDetails": {
"default": true,
"description": "Fetch each listing's full description, attributes, images, coordinates, and repost status. Turn off for faster search-card-only results.",
"prefill": true,
"title": "Include full listing details",
"type": "boolean"
},
"maxAutoMiles": {
"description": "Auto categories only.",
"editor": "number",
"maximum": 1000000,
"minimum": 0,
"title": "Maximum vehicle mileage",
"type": "integer"
},
"maxAutoYear": {
"description": "Auto categories only.",
"editor": "number",
"maximum": 2100,
"minimum": 1900,
"title": "Maximum vehicle year",
"type": "integer"
},
"maxBathrooms": {
"description": "Housing only.",
"editor": "number",
"maximum": 20,
"minimum": 0,
"title": "Maximum bathrooms",
"type": "integer"
},
"maxBedrooms": {
"description": "Housing only.",
"editor": "number",
"maximum": 20,
"minimum": 0,
"title": "Maximum bedrooms",
"type": "integer"
},
"maxItems": {
"default": 100,
"description": "Hard cap across all queries and URLs. Craigslist returns at most 10,000 results per search.",
"editor": "number",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"title": "Maximum listings",
"type": "integer"
},
"maxPrice": {
"description": "Only listings at or below this price. Posts without a price are excluded when a price filter is set.",
"editor": "number",
"minimum": 0,
"title": "Maximum price",
"type": "integer"
},
"maxSqft": {
"description": "Housing only.",
"editor": "number",
"maximum": 100000,
"minimum": 0,
"title": "Maximum square feet",
"type": "integer"
},
"minAutoYear": {
"description": "Auto categories only.",
"editor": "number",
"maximum": 2100,
"minimum": 1900,
"title": "Minimum vehicle year",
"type": "integer"
},
"minBathrooms": {
"description": "Housing only.",
"editor": "number",
"maximum": 20,
"minimum": 0,
"title": "Minimum bathrooms",
"type": "integer"
},
"minBedrooms": {
"description": "Housing only.",
"editor": "number",
"maximum": 20,
"minimum": 0,
"title": "Minimum bedrooms",
"type": "integer"
},
"minPrice": {
"description": "Only listings at or above this price. Posts without a price are excluded when a price filter is set.",
"editor": "number",
"minimum": 0,
"title": "Minimum price",
"type": "integer"
},
"minSqft": {
"description": "Housing only.",
"editor": "number",
"maximum": 100000,
"minimum": 0,
"title": "Minimum square feet",
"type": "integer"
},
"mode": {
"default": "search",
"description": "What to collect: keyword search, a category browse, specific Craigslist URLs, or the region/subarea reference list.",
"editor": "select",
"enum": [
"search",
"category",
"byUrl",
"areas"
],
"enumTitles": [
"Search by keyword",
"Browse a category",
"Scrape specific URLs",
"List regions and subareas"
],
"prefill": "search",
"title": "Mode",
"type": "string"
},
"postalCode": {
"description": "Optional ZIP/postal code to anchor the search geographically. Use with Search radius.",
"editor": "textfield",
"title": "Postal code",
"type": "string"
},
"postedToday": {
"default": false,
"description": "Only listings posted in the last 24 hours (Craigslist's posted-today filter).",
"prefill": false,
"title": "Posted today",
"type": "boolean"
},
"region": {
"default": "sfbay",
"description": "Craigslist city/region to search (mode=search/category). Pick a common region, or use Custom region for any of the 707 Craigslist sites.",
"editor": "select",
"enum": [
"sfbay",
"newyork",
"losangeles",
"chicago",
"seattle",
"boston",
"washingtondc",
"atlanta",
"dallas",
"houston",
"denver",
"philadelphia",
"miami",
"austin",
"sandiego",
"phoenix",
"portland",
"minneapolis",
"detroit",
"nashville",
"raleigh",
"charlotte",
"baltimore",
"stlouis",
"orlando",
"tampa",
"lasvegas",
"sacramento",
"hartford",
"columbus",
"indianapolis",
"cincinnati",
"cleveland",
"kansascity",
"milwaukee",
"sanantonio",
"pittsburgh",
"newhaven",
"providence",
"richmond",
"salem",
"saltlakecity",
"anchorage",
"honolulu",
"hudsonvalley",
"longisland",
"newjersey",
"toronto",
"vancouver",
"montreal",
"calgary",
"ottawa",
"edmonton",
"london",
"manchester",
"birmingham",
"leeds",
"liverpool",
"edinburgh",
"glasgow",
"bristol",
"brighton"
],
"enumTitles": [
"SF bay area",
"new york",
"los angeles",
"chicago",
"seattle",
"boston",
"washington, DC",
"atlanta",
"dallas",
"houston",
"denver",
"philadelphia",
"south florida",
"austin",
"san diego",
"phoenix",
"portland",
"minneapolis",
"detroit metro",
"nashville",
"raleigh",
"charlotte",
"baltimore",
"st louis",
"orlando",
"tampa bay",
"las vegas",
"sacramento",
"hartford",
"columbus, OH",
"indianapolis",
"cincinnati",
"cleveland",
"kansas city",
"milwaukee",
"san antonio",
"pittsburgh",
"new haven",
"rhode island",
"richmond, VA",
"salem",
"salt lake",
"anchorage",
"hawaii",
"hudson valley",
"long island",
"north jersey",
"toronto",
"vancouver, BC",
"montreal",
"calgary",
"ottawa",
"edmonton",
"london, UK",
"manchester",
"birmingham, UK",
"leeds",
"liverpool",
"edinburgh",
"glasgow",
"bristol",
"brighton"
],
"prefill": "sfbay",
"title": "Region",
"type": "string"
},
"searchQueries": {
"default": [],
"description": "One or more keywords. Each query is searched separately; results are de-duplicated. Leave empty for a category browse. (mode=search)",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [
"bike"
],
"title": "Search queries",
"type": "array"
},
"searchRadiusMiles": {
"description": "Distance around the postal code. Requires Postal code.",
"editor": "number",
"maximum": 250,
"minimum": 1,
"title": "Search radius (miles)",
"type": "integer"
},
"sellerType": {
"default": "all",
"description": "Filter by owner, dealer, or either.",
"editor": "select",
"enum": [
"all",
"owner",
"dealer"
],
"enumTitles": [
"All sellers",
"Owner",
"Dealer"
],
"prefill": "all",
"title": "Seller type",
"type": "string"
},
"sortBy": {
"default": "newest",
"description": "Order of results within each query.",
"editor": "select",
"enum": [
"newest",
"oldest",
"relevance",
"priceAsc",
"priceDesc",
"distance"
],
"enumTitles": [
"Newest first",
"Oldest first",
"Most relevant",
"Price: low to high",
"Price: high to low",
"Closest first"
],
"prefill": "newest",
"title": "Sort by",
"type": "string"
},
"startUrls": {
"default": [],
"description": "Craigslist search pages, new-style /view/d/... post URLs, or old /region/category/post-id.html URLs. (mode=byUrl)",
"editor": "requestListSources",
"items": {
"type": "object"
},
"title": "Start URLs",
"type": "array"
},
"subarea": {
"description": "Optional Craigslist subarea abbreviation inside the region (e.g. sfc, eby, brk). Leave blank for the whole region. (mode=search/category)",
"editor": "textfield",
"title": "Subarea",
"type": "string"
},
"titlesOnly": {
"default": false,
"description": "Match the keywords against titles only instead of titles and descriptions.",
"prefill": false,
"title": "Titles only",
"type": "boolean"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "Craigslist Classifieds Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
listings | string | optional | Dataset containing scraped Craigslist listings, plus region records in areas mode. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Craigslist listings with prices, descriptions, photos, coordinates, category attributes, repost status, and region/subarea records.",
"properties": {
"listings": {
"description": "Dataset containing scraped Craigslist listings, plus region records in areas mode.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Craigslist listings",
"type": "string"
}
},
"title": "Craigslist Classifieds Scraper Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
This definition is not present in the default published build. See the published README for available documentation.
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Craigslist Classifieds Scraper with Category Attributes
Scrape Craigslist across 700+ local sites without a login, cookie, or proxy setup. Search by keyword or browse a category, follow individual post links, and get the full listing: price, description, every photo, map coordinates, posted and repost data, plus the category-specific attributes Craigslist shows for jobs, housing, autos, and for-sale items.
What this actor does
- Four modes: keyword search, category browse, specific URLs, and a region/subarea reference list
- 700+ regions: every Craigslist hostname, with 62 common regions ready in a dropdown and a custom-region field for the rest
- Filters that run on Craigslist: price, posted today, photos, titles-only, owner/dealer, sort, condition, bedrooms/baths/square feet, vehicle make/year/mileage, postal radius, and duplicate grouping
- Full detail records: body text, gallery images, attributes, coordinates, display address, repost link, notices, and typed category fields
- Empty fields are omitted from every record; no
nullvalues or placeholder rows
Output per listing
type— alwayscraigslist_listingid,postingUuid,url,titleprice,priceValue,priceCurrency,priceQualifierpostedAt,updatedAt,recordCreatedAt,scrapedAtregion,location,neighborhood,subArea,area,areaAbbr,locationType,mapAddresslatitude,longitudecategory,subcategory,section,categoryAbbr,subcategoryAbbr,postingTypedescription,images[],imageCount,attributes,notices[]phoneNumbers[],emails[],vin,replyUrlrepostOf,hasContactInfo,seeMyOther- Jobs:
compensation,employmentType,jobTitle,companyName,experienceLevel,salary - Housing:
bedroomCount,bathroomCount,sqft,availableDate,housingType,laundry,parking,rentPeriod,listedBy,applicationFee,brokerFee,openHouseDates,catsOk,dogsOk,furnished,smoking,privateRoom,privateBath,wheelchairAccessible,airConditioning,evCharging - Autos:
yearManufactured,makeManufacturer,modelName,odometer,transmission,fuelType,titleStatus,cylinders,paintColor,drive,vehicleType - For sale:
condition,size,make,model
With includeDetails off, rows contain only the search-card fields: identity, price, category, posted time, location, coordinates, and image URLs.
Output per area (mode = areas)
type—craigslist_areaareaId,abbreviation,hostname,description,shortDescriptionregion,country,latitude,longitude,timezonesubareas[]— each withabbreviation,description, andsubAreaId
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | search |
search / category / byUrl / areas |
region |
string | sfbay |
Common Craigslist region (mode=search/category) |
customRegion |
string | – | Any hostname or abbreviation; overrides region |
subarea |
string | – | Optional subarea such as sfc, eby, brk |
category |
string | sss |
Craigslist category; sss is all for-sale listings |
searchQueries |
array | – | One or more keywords (mode=search); leave empty to browse a category |
startUrls |
array | – | Search pages or post URLs (mode=byUrl) |
minPrice |
integer | – | Minimum price |
maxPrice |
integer | – | Maximum price |
postedToday |
boolean | false |
Only posts from the last 24 hours (Craigslist's posted-today filter) |
hasImage |
boolean | false |
Only posts with a photo |
titlesOnly |
boolean | false |
Match keywords against titles only |
sellerType |
string | all |
all / owner / dealer |
sortBy |
string | newest |
newest / oldest / relevance / priceAsc / priceDesc / distance |
condition |
string | any |
any / new / like-new / excellent / good / fair / salvage |
minBedrooms |
integer | – | Housing only |
maxBedrooms |
integer | – | Housing only |
minBathrooms |
integer | – | Housing only |
maxBathrooms |
integer | – | Housing only |
minSqft |
integer | – | Housing only |
maxSqft |
integer | – | Housing only |
autoMakeModel |
string | – | Auto categories only, e.g. honda civic |
minAutoYear |
integer | – | Auto categories only |
maxAutoYear |
integer | – | Auto categories only |
maxAutoMiles |
integer | – | Auto categories only |
postalCode |
string | – | Optional ZIP/postal code anchor |
searchRadiusMiles |
integer | – | Radius around postalCode |
hideDuplicates |
boolean | false |
Group duplicate/reposted listings |
deliveryAvailable |
boolean | false |
For-sale/auto only |
cryptoOk |
boolean | false |
For-sale/auto only |
countryCode |
string | – | Two-letter country filter for areas mode |
maxItems |
integer | 100 |
Hard cap across all queries and URLs (1–10000) |
includeDetails |
boolean | true |
Fetch full descriptions, attributes, images, and coordinates |
Examples
Search a city for a keyword
{
"mode": "search",
"region": "sfbay",
"category": "sss",
"searchQueries": ["bike"],
"maxItems": 50,
"includeDetails": true
}
Browse apartments with housing filters
{
"mode": "category",
"region": "chicago",
"category": "apa",
"minBedrooms": 2,
"maxBedrooms": 2,
"maxPrice": 3000,
"sortBy": "priceAsc",
"maxItems": 100
}
Scrape specific posts
{
"mode": "byUrl",
"startUrls": [
{ "url": "https://www.craigslist.org/view/d/richmond-195-iron-horse-maverick-21/scJ6mscDAryikpFRAS61aq" },
{ "url": "https://sfbay.craigslist.org/bik/7962037752.html" }
],
"maxItems": 10
}
List regions in one country
{
"mode": "areas",
"countryCode": "CA",
"maxItems": 100
}
Use cases
- Marketplace price tracking — monitor asking prices for a product across cities and categories
- Vehicle shopping — pull year, make, model, mileage, transmission, and title status for matching cars
- Rental research — collect rent, bedrooms, bathrooms, square footage, laundry, parking, and pet policy
- Job aggregation — gather compensation, employment type, experience level, and company names
- Lead sourcing — filter by price, photos, seller type, and posted date to find fresh posts
- Local market mapping — join listing coordinates and neighborhoods to city/subarea reference data
FAQ
Do I need a Craigslist account, cookie, or proxy? No. The actor reads public Craigslist listings and connects automatically. There is no login or proxy field to fill in.
How many results can one run return? Craigslist caps a single search at 10,000 results. To collect more, split by category, subarea, price range, or posted-today and combine the runs. The actor tells you in the run status when the cap is reached.
Why are some fields missing from a row?
Craigslist posts differ by category and by what the seller filled in. A job may have no price; a generic for-sale post may have no structured attributes; a seller may not publish a phone number. Empty fields are omitted rather than filled with null or an empty value.
Can I get the poster's email address? Only when the seller typed an email into the post body. Craigslist's reply relay hides the real address behind its own form and sometimes a captcha; this actor does not bypass that.
Does the actor support RSS or JSON feeds?
No. Craigslist discontinued its RSS output, and its old output=json parameter no longer returns JSON. This actor uses Craigslist's current listing data and returns the same fields in its dataset.
Can I paste an old Craigslist post link?
Current /view/d/... links work directly. Older region/category/post-id.html links also work. Very old links that contain a /d/ slug but a broad category are resolved by searching for the post; if Craigslist has removed it, the URL is skipped with a message.
Does an old search URL's s= offset still work?
No. Craigslist no longer offers an offset cursor for search results, so the actor ignores s= and starts from the first result. Use maxItems, a narrower price range, or a subarea to control how deep a run goes.
Why did a run return no listings? The query may have no matches, the category may not exist in that region, the post may have been removed, or a filter may be too narrow. A zero-result run completes with a status message and no placeholder record.
Is this affiliated with Craigslist? No. This is an independent actor that reads publicly available Craigslist pages and is not operated or endorsed by Craigslist.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build HWKb9T9uefJQgHpvH. Documentation is regenerated from the default published build; private drafts are not included.