Craigslist Rentals Scraper: Apartments & Rooms avatar

Craigslist Rentals Scraper: Apartments & Rooms

Pricing

from $1.49 / 1,000 rental listings

Go to Apify Store
Craigslist Rentals Scraper: Apartments & Rooms

Craigslist Rentals Scraper: Apartments & Rooms

🏠 Scrape US Craigslist apartments, rooms and sublets for rental research and listing feeds. Filter by city, subarea, rent and amenities. Export rents, bedrooms, bathrooms, descriptions, photo URLs and public contacts to JSON or CSV. Schedule runs and skip previously collected ads.

Pricing

from $1.49 / 1,000 rental listings

Rating

0.0

(0)

Developer

Arjun Data

Arjun Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

🏠 Craigslist Rentals Scraper collects US apartments, rooms and sublets for rent comparisons, listing feeds and housing research. Search across cities, subareas or Craigslist URLs, then export structured data to JSON or CSV.

  • Rental filters: rent, bedrooms, bathrooms, floor area, pets, amenities and advertised availability.
  • Details included: descriptions, photo URLs, source attributes and publicly displayed contacts.
  • Recurring collection: schedule searches and skip previously delivered posting IDs.
  • Automatic connections: no proxy setup required.

Built for rental data products, housing researchers, property managers and relocation services.

🚀 Quick start

Start with a ready-made search:

Public exampleWhat it collects
Compare apartment rents across three US marketsUp to 10 monthly ads each from New York, Los Angeles and the SF Bay Area, with details.
Find Los Angeles rooms with private bathroomsUp to 20 monthly private-room ads with private bathrooms and details.

Copy an example to your account, or configure your own search:

  1. Select a Rental category and one or more US cities / regions.
  2. Choose the rental period and any filters, then set Maximum rental ads — total.
  3. Keep Include rental details and public contacts enabled for descriptions and amenities.
  4. Run the Actor and open Output. Download Full rental records (JSON) or Rental records (CSV).

💡 Default: up to 50 New York apartment ads, monthly rent, newest first, with details. No keyword, price or amenity restrictions.

{
"rentalCategory": "apa",
"cities": ["newyork"],
"rentPeriods": ["monthly"],
"sort": "date",
"maxItems": 50,
"includeDetails": true
}

Limits cap delivered ads; fewer may be available.

🔎 Rental search examples

Compare apartments across three cities

Collect up to five one- or two-bedroom ads per city, 15 total. Each search is newest first; combined results are interleaved.

{
"rentalCategory": "apa",
"cities": ["newyork", "sfbay", "dallas"],
"rentPeriods": ["monthly"],
"minBedrooms": 1,
"maxBedrooms": 2,
"sort": "date",
"maxItems": 15,
"maxItemsPerSearch": 5,
"includeDetails": true
}

Find private rooms with private bathrooms

Search selected subareas for private rooms and bathrooms. Privacy filters describe private/shared use, not room counts. Subareas replace Cities.

{
"rentalCategory": "roo",
"subareas": ["newyork/brk", "losangeles/wst"],
"rentPeriods": ["monthly"],
"privateRoom": true,
"privateBath": true,
"maxItems": 10,
"maxItemsPerSearch": 5,
"includeDetails": true
}

Collect furnished sublets

Collect furnished weekly or monthly sublets. Compare rent with rentPeriod; amounts are not converted.

{
"rentalCategory": "sub",
"subareas": ["newyork/brk", "sfbay/sfc"],
"rentPeriods": ["weekly", "monthly"],
"furnished": true,
"sort": "date",
"maxItems": 10,
"maxItemsPerSearch": 5,
"includeDetails": true
}

Reuse exact searches and ZIP locations

Reuse Craigslist searches: this example combines Brooklyn with a three-mile radius around ZIP 94103. Optional userData.label names each input in matchedSearches.

{
"startUrls": [
{
"url": "https://newyork.craigslist.org/search/brk/apa?rent_period=3&sort=date",
"userData": {
"label": "Brooklyn monthly rentals"
}
},
{
"url": "https://sfbay.craigslist.org/search/apa?postal=94103&search_distance=3&sort=dist&rent_period=3",
"userData": {
"label": "Within 3 miles of 94103"
}
}
],
"maxItems": 10,
"maxItemsPerSearch": 5,
"includeDetails": true
}

Priority: Rental URLs → Subareas → Cities. URLs replace guided categories, locations, filters and sorting, including the monthly default. Without rent_period, a URL can return any rental period. Limits, details, nearby suggestions and monitoring still apply.

Supported paths: /search/apa, /search/roo, /search/sub, subareas such as /search/brk/roo, /search/area/, and individual US ads in these categories. Individual ads always collect details.

Collect posting IDs not delivered before

Schedule this input as an Apify Task. Reuse the searches and history name for subsequent runs.

{
"rentalCategory": "apa",
"subareas": ["newyork/brk"],
"rentPeriods": ["monthly"],
"sort": "date",
"maxItems": 50,
"includeDetails": true,
"newOnly": true,
"watchName": "brooklyn-monthly-rentals"
}

The first run may include older ads. Later runs skip saved IDs, including same-ID price edits; reposts with new IDs count as new. Set newOnly: false to collect current versions again. This tracks posting IDs, not unique properties or price changes.

📦 Rental output and downloads

OutputContentsBest for
DatasetRental records plus readable collection noticesReviewing ads and explaining empty or partial results
RENTALS.jsonAll 56 rental fields, including nested arrays and original attributes; no noticesAPIs, data feeds and full-fidelity records
RENTALS.csv54 selected rental columns; no noticesSpreadsheets and analysis
RUN_SUMMARYOutcome, counts, exclusions, issues and a summary for each inputChecking coverage and explaining differences in counts

CSV omits recordType and listingUuid; postId and URL remain. Arrays and objects are JSON strings in CSV cells. JSON preserves all fields and types.

Complete rental example

This is an illustrative record showing all 56 rental fields, based on the Actor's current output structure. The listing identity, address, contact data, photo URLs and dates are fictional examples, not an available rental or working contact. Real fields may be null or empty; the Actor does not invent missing details.

{
"recordType": "rental",
"postId": "7990000001",
"listingUuid": "EXAMPLE_LISTING_UUID",
"url": "https://newyork.craigslist.org/brk/apa/d/example-brooklyn-rental/7990000001.html",
"title": "Example: 1-bedroom apartment with laundry",
"category": "apa",
"rent": 2900,
"rentRaw": "$2,900",
"currency": "USD",
"rentPeriod": "monthly",
"bedrooms": 1,
"bathrooms": 1.5,
"area": 850,
"areaUnit": "sqft",
"areaRaw": "850ft²",
"propertyType": "apartment",
"availableFrom": "2026-11-15",
"laundry": "w/d in unit",
"parking": "street parking",
"privateRoom": null,
"privateBath": null,
"catsAllowed": true,
"dogsAllowed": true,
"furnished": null,
"noSmoking": true,
"wheelchairAccessible": null,
"airConditioning": true,
"evCharging": null,
"noApplicationFee": null,
"noBrokerFee": null,
"region": "newyork",
"subarea": "brk",
"location": "Brooklyn",
"neighborhood": "Example neighborhood",
"address": "Example Street near Sample Avenue",
"latitude": 40.7,
"longitude": -73.95,
"description": "Example rental description.\nOne bedroom, 1.5 bathrooms, washer/dryer in unit and street parking.\nAdvertised rent: $2,900 per month. Available November 15, 2026.\nContact: (212) 555-0100 or leasing@example.com.",
"imageUrls": [
"https://images.craigslist.org/EXAMPLE_LIVING_ROOM_1200x900.jpg",
"https://images.craigslist.org/EXAMPLE_BEDROOM_1200x900.jpg"
],
"attributes": {
"bedrooms": "1",
"bathrooms": "1.5",
"area": "850ft²",
"movein_date": "2026-11-15",
"rent_period": "monthly",
"housing_type": "apartment",
"laundry": "w/d in unit",
"parking": "street parking",
"pets_cat": "✓",
"pets_dog": "✓",
"no_smoking": "✓",
"airconditioning": "✓"
},
"postedAt": "2026-11-03T08:00:00+00:00",
"updatedAt": "2026-11-03T09:00:00+00:00",
"scrapedAt": "2026-11-03T09:05:00+00:00",
"repostOf": null,
"upcomingDate": null,
"openHouseDates": [],
"advertisedDates": [],
"dateRange": [],
"detailStatus": "collected",
"firstSeenAt": null,
"isNew": null,
"matchedSearches": [
{
"inputPosition": 1,
"inputLabel": "newyork",
"inputUrl": "https://www.craigslist.org/search/area/newyork?cat=apa&rent_period=3&sort=date",
"searchRegion": "newyork"
}
],
"phoneNumbers": [
"+12125550100"
],
"emails": [
"leasing@example.com"
],
"contactSources": [
{
"type": "phone",
"value": "+12125550100",
"raw": "(212) 555-0100"
},
{
"type": "email",
"value": "leasing@example.com",
"raw": "leasing@example.com",
"isRelay": false
}
],
"contactStatus": "found"
}

With newOnly off, firstSeenAt and isNew are null. With monitoring on, newly delivered IDs receive a timestamp and isNew: true.

Missing values and contact status

  • null means unknown or uncollected, not zero or false. Empty arrays mean no values collected.
  • contactStatus: "found": at least one public phone/email extracted; ownership and reachability unverified.
  • contactStatus: "not_found": no phone/email found in the collected public description or contact links.
  • contactStatus: "not_requested": details were not collected; contacts may still exist.

Descriptions are plain text; photos are source URLs, not downloaded files. Contacts may belong to owners, agents or businesses; roles are unverified. Hidden Reply contacts are not collected.

Full field reference

All 56 rental fields are listed below. Advertised calendar dates remain dates; timestamps use UTC.

Identity, rent and property

FieldTypeMeaning
recordTypestringrental for an ad; notice for an explanation. Notices do not count toward maxItems.
postIdstring / nullCraigslist posting ID, as text. Identifies an ad, not a unique property; use it to join records across runs.
listingUuidstring / nullAdditional Craigslist identifier when available.
urlstring / nullSource ad link; may expire or redirect.
titlestring / nullTitle as advertised by the poster.
categorystring / nullapa: apartments; roo: rooms/shares; sub: sublets. Separate from propertyType.
rentnumber / nullAdvertised USD amount for rentPeriod, without conversion. Null does not mean free.
rentRawstring / nullOriginal price text, including source currency formatting.
currencystring / nullUSD for supported US markets.
rentPeriodstring / nullSource period, usually monthly, weekly or daily. Requires details; never inferred from filters.
bedroomsnumber / nullAdvertised bedrooms; 0 means studio.
bathroomsnumber / nullAdvertised bathrooms, including halves such as 1.5. Requires details.
areanumber / nullAdvertised floor area. Read with areaUnit; no conversion.
areaUnitstring / nullSource unit: sqft or sqm; null when unavailable.
areaRawstring / nullOriginal floor-area text, such as 850ft². Requires details.
propertyTypestring / nullSource housing label, such as apartment or house. Does not establish whether the whole property is offered. Requires details.
availableFromstring / nullAdvertised move-in date, usually YYYY-MM-DD. May be outdated; requires details.
laundrystring / nullSource laundry label, such as w/d in unit. May differ from input option names; requires details.
parkingstring / nullSource parking label, such as street parking. May differ from input option names; requires details.

Privacy and amenities

Requires details. Explicitly marked amenities are true; otherwise null. Privacy may also be explicitly false. Search filters never fill missing attributes.

FieldTypeMeaning
privateRoomboolean / nullPrivate: true; explicitly shared: false; unknown: null.
privateBathboolean / nullPrivate: true; explicitly shared: false; unknown: null.
catsAllowedboolean / nullCats allowed.
dogsAllowedboolean / nullDogs allowed.
furnishedboolean / nullFurnished.
noSmokingboolean / nullNo smoking.
wheelchairAccessibleboolean / nullMarked wheelchair accessible.
airConditioningboolean / nullAir conditioning.
evChargingboolean / nullEV charging.
noApplicationFeeboolean / nullMarked no application fee.
noBrokerFeeboolean / nullMarked no broker fee.

Location, description and photos

FieldTypeMeaning
regionstring / nullAd’s Craigslist market slug, such as newyork; may differ from the input in radius/nearby searches.
subareastring / nullSubarea code, such as brk for Brooklyn.
locationstring / nullSource location description or poster-entered label.
neighborhoodstring / nullSource neighborhood label; not inferred from coordinates.
addressstring / nullAdvertised address or intersection. Requires details.
latitudenumber / nullAdvertised map latitude; may be approximate.
longitudenumber / nullAdvertised map longitude; may be approximate.
descriptionstring / nullPublic description as plain text with line breaks. Requires details.
imageUrlsarrayUnique source photo URLs. Search-only records may include photos; files are not downloaded and links may expire.

Source attributes, dates and history

FieldTypeMeaning
attributesobjectOriginal Craigslist keys and values. Varies by ad; requires details.
postedAtstring / nullSource posting timestamp, ISO 8601 UTC.
updatedAtstring / nullSource update timestamp, ISO 8601 UTC. Requires details; not a change history.
scrapedAtstring / nullCollection timestamp, ISO 8601 UTC.
repostOfstring / nullEarlier posting ID if Craigslist identifies a repost. Requires details.
upcomingDatestring / nullNext advertised search date for upcoming sorting; not necessarily the move-in date.
openHouseDatesarrayAdvertised open-house dates (YYYY-MM-DD) exposed by search; direct listing inputs may not populate them.
advertisedDatesarrayOther advertised search dates (YYYY-MM-DD); not verified availability.
dateRangearraySource search date-range endpoints; does not establish a lease term.
detailStatusstring / nullcollected or not_requested. Failed ads become notices, not successful rental rows.
firstSeenAtstring / nullDelivery time of an unseen ad with newOnly enabled; otherwise null.
isNewboolean / nullTrue for an unseen ad delivered with newOnly enabled; otherwise null. Does not mean posted today.

Input matches and public contacts

FieldTypeMeaning
matchedSearchesarrayContributing inputs for this posting ID; nested fields are described below.
phoneNumbersarrayUnique public phone numbers in international format; US numbers generally start +1.
emailsarrayUnique public email addresses. Hidden Reply dialogs are not queried.
contactSourcesarrayContact type, normalized value and raw visible text; email entries also include isRelay.
contactStatusstring / nullfound, not_found or not_requested; see the definitions above.

Nested objects and notice fields

  • matchedSearches[]: inputPosition (one-based integer), inputLabel (text, possibly empty), inputUrl (requested URL), and searchRegion (market slug or null).
  • contactSources[]: type (phone/email), value (normalized contact), and raw (visible text). Emails add isRelay, true for .craigslist.org domains. A contact may have multiple entries.
  • attributes: original keys and values, such as rent_period, housing_type and movein_date. Top-level fields provide normalized values.

Notices use recordType: "notice", a machine-readable code, and a readable message. Source-specific notices add the input fields listed above; listing failures may add postId, and batch failures add an integer batchOffset.

Empty results and collection notices

Notices explain affected inputs, do not count toward maxItems, and are excluded from RENTALS.json and RENTALS.csv.

{
"recordType": "notice",
"code": "no_matches",
"message": "No matching rental ads were found. Try a wider area or fewer filters.",
"inputPosition": 1,
"inputLabel": "Brooklyn monthly rentals",
"inputUrl": "https://newyork.craigslist.org/search/brk/apa?rent_period=3&sort=date",
"searchRegion": "newyork"
}
NoticeMeaning / next step
no_matchesNo eligible ads remain in the accessible search results; widen the location or reduce filters.
no_new_listingsNo previously undelivered ads remain for the saved monitoring history.
spending_limitThe run budget limits how many ads can be delivered. Increase the maximum run charge to collect more.
no_exact_matchesNo examined ads passed the exact decimal bathroom bounds.
invalid_inputCorrect the named input field, spelling or value before rerunning.
invalid_sourceCorrect the affected city, subarea, category or URL. Other valid inputs can still run.
source_failed / source_unavailableA search or source could not be collected. Read the message and try again later.
listing_failedAn individual ad could not be collected. It is not delivered as a successful rental or marked as seen.
batch_failedPart of a search could not be collected; the notice identifies the affected input and batch.
search_window_limitCraigslist reports more ads than the accessible search window; narrow the search for wider coverage.
details_required_for_filterDecimal bathroom bounds require details even when the detail option is off.
city_directory_fallbackCollection used the available city directory after the live directory could not be loaded.

Even a successful Apify run may return no ads or report invalid inputs. Check RUN_SUMMARY.status and rentalsSaved for collection results.

Summary fieldMeaning
status / messageOutcome: succeeded, partial, no_data, no_data_with_issues or invalid_input, with an explanation
rentalsSaved / noticesSavedDelivered ad and notice counts
sourcesPer-input matches, accessible search window, saved ads, exclusions and detail failures; overlapping inputs can refer to the same delivered ad
issuesCollection problems
networkConnection route and automatic changes
billingPricing model and the number of listing and start events charged
monitorHistory usage, new IDs saved and total known IDs
limitsRequested and budget-adjusted total limits, plus per-input caps

⚙️ Input parameters

All 43 inputs are listed below. Names are case-sensitive; optional bounds can be omitted or blank.

Multi-select choices use OR within a field and AND between fields. Unchecked boxes add no requirement. Filters follow the poster’s markings.

ParameterTypeDefault / choicesMeaning
rentalCategorystring"apa"; apa, roo, subGuided search category: apartments / housing for rent (apa), rooms & shares (roo), or sublets & temporary (sub). URLs keep their own category.
citiesarray["newyork"]US Craigslist markets. Used when both Rental URLs and Subareas are empty.
subareasarrayNot set; select in InputSpecific areas such as newyork/brk or losangeles/wst. Replaces Cities; Rental URLs take priority. The Input dropdown lists all supported choices.
searchTermstringNot setKeywords in titles and descriptions, matching the main Craigslist search box. Blank means no keyword restriction.
searchTitlesOnlybooleanfalseApply searchTerm to titles only.
sortstring"date"; date, dateoldest, priceasc, pricedsc, dist, rel, upcomingOrder within each search; combined searches are interleaved, not globally sorted. See sorting options below.
rentPeriodsarray["monthly"]; monthly, weekly, dailyMonthly by default. Select daily/weekly for short stays, or [] for any period. Amounts retain their advertised period; no conversion.
maxItemsinteger50Total unique posting IDs to deliver across all inputs. Notices are excluded. Actual results may be fewer.
includeDetailsbooleantrueCollect descriptions, amenities and public contacts. Off returns search data; individual listing URLs and decimal bathroom filters still collect details.
startUrlsarrayNot setUS rental search or listing URLs. Replaces guided location, category, filters and sort, including default monthly rent. Limits, details, nearby settings and monitoring still apply. Optional userData.label names each input.
minRentintegerNot setMinimum advertised USD amount for the selected rental periods.
maxRentintegerNot setMaximum advertised USD amount. Weekly/daily amounts are not monthly equivalents.
minBedroomsintegerNot setMinimum whole bedrooms; 0 includes studios.
maxBedroomsintegerNot setMaximum whole bedrooms; set to 0 for studios only.
minBathroomsnumberNot setMinimum bathrooms, including half baths such as 1.5. Decimal bounds require details.
maxBathroomsnumberNot setMaximum bathrooms. Set both bounds to 1.5 for exactly 1.5 baths.
minAreaintegerNot setMinimum floor area in square feet.
maxAreaintegerNot setMaximum floor area in square feet.
propertyTypesarrayNot set; apartment, condo, cottage_cabin, duplex, flat, house, in_law, loft, townhouse, manufactured, assisted_living, landOne or more property types; empty means any.
laundryTypesarrayNot set; in_unit, in_building, on_site, hookups, noneOne or more laundry options; empty means any.
parkingTypesarrayNot set; carport, attached_garage, detached_garage, off_street, street, valet, noneOne or more parking options; empty means any.
privateRoombooleanfalseRequire private rather than shared room use. Rooms and sublets only; not a bedroom count.
privateBathbooleanfalseRequire private rather than shared bathroom use. Rooms and sublets only; not a bathroom count.
catsAllowedbooleanfalseRequire ads marked cats allowed.
dogsAllowedbooleanfalseRequire ads marked dogs allowed.
furnishedbooleanfalseRequire ads marked furnished.
noSmokingbooleanfalseRequire ads marked no smoking.
wheelchairAccessiblebooleanfalseRequire ads marked wheelchair accessible.
airConditioningbooleanfalseRequire ads marked air conditioning.
evChargingbooleanfalseRequire ads marked EV charging.
noApplicationFeebooleanfalseRequire ads marked no application fee. Apartments only.
noBrokerFeebooleanfalseRequire ads marked no broker fee. Apartments only.
availabilitystring"any"; any, within_30_days, beyond_30_daysCraigslist’s within/beyond-30-day move-in filter. Advertised dates may be absent or outdated.
postalCodestringNot setCenter guided searches on one US ZIP. Use separate URLs for independent ZIP centers. Default radius: 60 miles.
radiusMilesnumberNot setRadius around the ZIP or city center, with any sort. Blank adds no radius except ZIP/nearest searches, which use 60 miles.
openHouseDatestringNot setAdvertised viewing date (YYYY-MM-DD), separate from move-in availability. Apartments and sublets only.
hasImagebooleanfalseRequire at least one photo.
postedTodaybooleanfalseApply Craigslist’s posted-today filter.
showDuplicatesbooleanfalseOff keeps the newest ad in each Craigslist duplicate group. On includes distinct posting IDs; neither mode identifies unique physical properties.
includeNearbybooleanfalseInclude Craigslist’s nearby-area suggestions. ZIP/radius searches already cover their requested circle and may cross regions.
maxItemsPerSearchintegerNot setOptional cap for each city, subarea or URL. Blank adds no per-search cap; maxItems still applies.
newOnlybooleanfalseSkip successfully delivered posting IDs from the same search history. Same-ID edits are skipped; a new repost ID is new.
watchNamestringNot setOptional separate history name. Reuse with the same searches. Without a name, each saved Task has its own history. Run only one collection at a time per history.

Category-specific filters

FilterApartments (apa)Rooms (roo)Sublets (sub)
Private room / private bathroom—SupportedSupported
No application fee / no broker feeSupported——
Open-house dateSupported—Supported

Unsupported combinations return an explanation identifying the setting to change, including for URL inputs.

Decimal bathroom bounds may require extra detail requests. Area filters use square feet; output preserves source units in areaUnit.

Sorting and radius

Sort valueOrder
dateNewest first
dateoldestOldest first
priceascAdvertised rent, low to high
pricedscAdvertised rent, high to low
distNearest first
relRelevance to search keywords
upcomingUpcoming advertised dates, including open houses; not necessarily move-in-date order

Use Relevance with keywords. ZIP/radius works with every guided sort. ZIP or nearest-first searches default to 60 miles; without a ZIP, they use the city center. Use separate URLs for different ZIP centers.

🔄 Schedules and API

Save an Apify Task and add a Schedule. Reuse searches and watchName to continue history; changing limits or details does not reset it. Unnamed Tasks have separate histories. Avoid overlapping runs per history.

Applications can use these Apify API endpoints:

StepAPI requestWhat to use
StartPOST https://api.apify.com/v2/acts/arjun_code~craigslist-rentals-scraper/runsJSON request body from any input example above
Check progressGET https://api.apify.com/v2/actor-runs/{runId}Run ID returned by the start request
Get datasetGET https://api.apify.com/v2/datasets/{defaultDatasetId}/itemsIncludes rentals and notices
Get rentals onlyGET https://api.apify.com/v2/key-value-stores/{defaultKeyValueStoreId}/records/RENTALS.jsonFull rental records without notices
Get summaryGET https://api.apify.com/v2/key-value-stores/{defaultKeyValueStoreId}/records/RUN_SUMMARYCheck outcome and per-input counts

Send Authorization: Bearer YOUR_APIFY_TOKEN; starting a run also requires Content-Type: application/json. Use returned IDs and wait for completion before downloading files. API guide

🤖 AI Agents & LLM Apps

Give housing assistants and research agents structured rental ads to compare and summarize with source links.

Connect an AI agent through MCP

Add this remote MCP server to your client and authorize it with your Apify account:

{
"mcpServers": {
"craigslist-rentals": {
"url": "https://mcp.apify.com/?tools=actors,arjun_code/craigslist-rentals-scraper"
}
}
}

Connector forms can use the URL directly. Authorize with OAuth or Authorization: Bearer <APIFY_TOKEN> in client credentials. See the MCP configurator for client-specific setup.

Try this prompt:

Use arjun_code/craigslist-rentals-scraper to find 10 monthly Los Angeles rooms with private bathrooms. Include details, cap spending at $0.05, and summarize rent, rental period, source links and collection notices.

For an explicit spending cap, call the MCP tool call-actor with these arguments:

{
"actor": "arjun_code/craigslist-rentals-scraper",
"input": {
"rentalCategory": "roo",
"cities": ["losangeles"],
"rentPeriods": ["monthly"],
"privateRoom": true,
"privateBath": true,
"sort": "date",
"maxItems": 10,
"includeDetails": true
},
"callOptions": {
"maxTotalChargeUsd": 0.05,
"memory": 512,
"timeout": 180
},
"waitSecs": 30
}

input.maxItems caps ads; callOptions.maxTotalChargeUsd caps charges. Use call-actor for spending caps; the direct tool arjun_code--craigslist-rentals-scraper has no budget input.

Poll unfinished runs with get-actor-run using the returned run ID. Once complete, read RENTALS.json and RUN_SUMMARY with get-key-value-store-record and the returned store ID. For paginated datasets, use get-dataset-items with limit, offset and fields; rows include notices. MCP guide

Call from your LLM application

Expose Actor inputs as tool arguments; execute calls in your backend and return records to the model. For OpenAPI tool imports, use the Actor definition.

Python example using apify-client 3.4 (pip install "apify-client>=3.4,<4"). Set APIFY_TOKEN in your backend environment and pass the input object above as search:

import os
from decimal import Decimal
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
def get_rental_ads(search: dict) -> dict:
run = client.actor("arjun_code/craigslist-rentals-scraper").call(
run_input=search,
max_total_charge_usd=Decimal("0.05"),
)
if run is None or run.status != "SUCCEEDED":
raise RuntimeError("Rental collection did not complete successfully.")
store = client.key_value_store(run.default_key_value_store_id)
return {
"rentals": store.get_record("RENTALS.json")["value"],
"summary": store.get_record("RUN_SUMMARY")["value"],
}

This call waits for completion; background jobs can use the API flow above. Python client reference

Retain url and scrapedAt, compare rent with rentPeriod, and treat missing values as unknown. Explain partial/empty results from RUN_SUMMARY; advertised details remain the poster's claims.

💰 Pricing

Pay per delivered rental ad, plus an Actor start charge. Prices are in USD; records are billed individually.

Store discount tierPer 1,000 rental ads
Free$1.99
Bronze$1.79
Silver$1.59
Gold, Platinum and Diamond$1.49

Start charge: $0.001 at default 512 MB, even with no ads. Apify charges one start event per allocated GB, minimum one.

Details, photo URLs, public contacts and proxy usage are included; search-only records cost the same. Notices, failed ads and skipped IDs incur no listing charge. With newOnly off, repeat deliveries are billed again.

Example: 50 Free-tier ads cost $0.1005, including start. Set Apify's maximum run charge to cap spending; maxItems caps ads only. Run-time usage is included; post-run storage access may incur standard fees. Current Pricing and Console settings apply.

🚗 Need Craigslist vehicle data?

Compare vehicle prices and dealer inventory with our Craigslist Cars & Trucks Scraper. Filter by make/model, price, year, mileage and seller type; export details and available public contacts.

❓ FAQ and support

Why are there fewer results than on Craigslist?

Match the exact URL, category, period, filters and sort. Defaults select monthly rent, exclude nearby suggestions and group duplicates. Limits, history, unavailable ads and search-window restrictions can reduce counts; RUN_SUMMARY explains each input.

A search_window_limit notice means fewer ads are accessible than Craigslist reports. Narrow the area or rent range. Ads and ordering may change during collection.

How do I report a problem?

Use the Issues tab with the run ID, inputs without credentials, affected URL and expected result. For count differences, include the exact search URL and collection time.