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