# Craigslist Listings Scraper: Every Listing, Counted (`luzivanlt/craigslist-listings-scraper`) Actor

Every listing a Craigslist search shows, up to 10,000, checked against Craigslist's own count. $1 per 1,000 listings. Any city, any category, optional descriptions.

- **URL**: https://apify.com/luzivanlt/craigslist-listings-scraper.md
- **Developed by:** [Luzi](https://apify.com/luzivanlt) (community)
- **Categories:** E-commerce, Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Craigslist Listings Scraper: Every Listing, Counted

Get every listing a Craigslist search shows, up to 10,000 a search, checked
against Craigslist's own count for that search: title, price, place and map
point, pictures, date, category, and what the listing type adds (bedrooms and
floor area, pay and company, odometer, event dates). Any Craigslist city,
with prices in its own currency. Turn on descriptions to add each listing's full text, its
attributes, and any phone numbers and emails written in it. One row per
listing. No Craigslist account needed.

Tested daily. Latest check: 500 "bike" listings in the SF bay area; 5,123 of
5,123 listings from four whole searches in the US, the UK, Canada and
Australia, matching Craigslist's counts.

### What does this Actor do?

You give it Craigslist cities and a category, with search words if you want
them, or links to Craigslist searches. For each search it reads the whole
result list Craigslist shows and saves one row per listing, until it reaches
your limit or the end of the list. The run's final status tells you whether
every listing was read: "Saved 214 listings from 1 search. That is every
listing the site lists for the search (214 of 214)."

Each listing comes with:

- its title, link, the date it was posted, and its position in the search
- the price as a number and as shown ("$1,100", "£280"), and the city's
  currency
- the category, the city, the sub-area and the place the poster gave, with
  the neighborhood and a map point
- every picture's link
- for housing: bedrooms and floor area, and open-house dates
- for jobs and gigs: pay, company and job title
- for cars and motorcycles: the odometer reading
- for events: the start and end dates, or every date it runs
- the search it was found in, and how many listings Craigslist counted for it

With **Include descriptions and attributes** on, each listing also gets:

- the full description, as text
- its attributes: make, model, year, odometer, fuel, transmission, bedrooms,
  bathrooms, pets, laundry, parking, pay, employment type, condition and the
  rest, each with the value Craigslist's search filters use
- phone numbers and emails written in the description
- whether Craigslist flags the listing as having contact details
- the street address, when the poster gave one
- when the listing was first created and last updated
- for a car with a VIN: the decoded vehicle details (make, model, year,
  engine, body and the rest), and the earlier listing it reposts

### Why use it?

- **Know you have the whole search.** For a search of up to 10,000 listings
  the run checks what it read against Craigslist's own count, so a short
  read is never silent.
- **Fast.** Four whole searches, 5,123 listings, in under two and a half
  minutes without descriptions.
- **Any Craigslist city.** Give a city by the name in its address, with
  prices in its own currency. Measured in the US, the UK, Canada and
  Australia.
- **Use the data anywhere.** Download as JSON, CSV or Excel, or send it to
  your own tools through Apify's API and integrations.

### How to use it

1. Type one or more **Cities** (the name in the city's Craigslist address:
   `sfbay`, `newyork`, `london`), pick a **Category**, and add **Search
   words** if you want them. Or paste **Search links**, or both.
2. Optionally, set a **Price** range, **Posted today**, **Has pictures**,
   **Search titles only**, **Sort by**, **Max listings per search**, and
   **Include descriptions and attributes**.
3. Click **Start**. When the run ends, open the **Output** tab to view the
   listings or download them.

Run it with no input to see a sample: up to 500 "bike" listings in the SF bay
area, charged as usual.

#### Links that work

A Craigslist search on a city's site, such as
`https://sfbay.craigslist.org/search/sss?query=bike` or
`https://sfbay.craigslist.org/search/sfc/apa?min_price=2000&max_bedrooms=2`,
with every filter it carries (price, bedrooms, make and model, odometer,
distance from a postcode, and the rest). The all-cities form
`https://www.craigslist.org/search/area/sfbay?cat=apa` works too. A single
listing's link, or another site, stops the run before anything is read,
naming the link.

### Input

| Field                                                      | What it does                                                         | Default |
| ---------------------------------------------------------- | -------------------------------------------------------------------- | ------- |
| **Cities** (`cities`)                                      | Craigslist cities by the name in their address, one search each      | —       |
| **Category** (`category`)                                  | The section searched in each city                                    | `sss`   |
| **Search words** (`searchQueries`)                         | Words to search for, one search per word in each city                | —       |
| **Search links** (`startUrls`)                             | Craigslist search links, with their own filters                      | —       |
| **Price from / to** (`minPrice`, `maxPrice`)               | Only listings priced in this range, in the city's currency           | —       |
| **Posted today** (`postedToday`)                           | Only listings posted today                                           | off     |
| **Has pictures** (`hasImages`)                             | Only listings with a picture                                         | off     |
| **Search titles only** (`searchTitlesOnly`)                | Match the search words in titles only                                | off     |
| **Sort by** (`sortBy`)                                     | `default`, `newest`, `oldest`, `relevance`, `priceAsc`, `priceDesc`  | default |
| **Max listings per search** (`maxListingsPerSearch`)       | Stop each search after this many listings, 1 to 10,000               | `1000`  |
| **Include descriptions and attributes** (`includeDetails`) | Also read each listing's description, attributes and contact details | off     |
| **Include nearby cities** (`includeNearby`) | Also save the listings Craigslist adds from nearby cities | off |

Give at least one city or one link. A city with no search words gets every
listing in the category. Example input:

```json
{
  "cities": ["sfbay", "losangeles"],
  "category": "cta",
  "searchQueries": ["tacoma"],
  "maxPrice": 20000,
  "sortBy": "newest",
  "maxListingsPerSearch": 2000,
  "includeDetails": true
}
```

### Output

One row per listing. An example, with made-up values:

```json
{
  "posting_id": "7980000001",
  "uuid": "aB3dE5fG7hJ9kL1mN3pQ5r",
  "url": "https://www.craigslist.org/view/d/san-francisco-road-bike/aB3dE5fG7hJ9kL1mN3pQ5r",
  "title": "Road bike, 56 cm, Shimano 105",
  "posted_at": "2026-10-21T17:04:12.000Z",
  "price": 650,
  "price_text": "$650",
  "currency": "USD",
  "category": "bik",
  "category_name": "bicycles - by owner",
  "area": "sfbay",
  "area_name": "SF bay area",
  "area_country": "US",
  "subarea": "sfc",
  "subarea_name": "city of san francisco",
  "location": "inner sunset / UCSF",
  "neighborhood": "inner sunset / UCSF",
  "latitude": 37.7551,
  "longitude": -122.4657,
  "image_urls": ["https://images.craigslist.org/00a0a_madeUpPicture_600x450.jpg"],
  "image_count": 1,
  "position": 1,
  "details_read": true,
  "description": "Light road bike, new tires.\nPick up only.",
  "attributes": [
    { "key": "condition", "label": "condition", "value": "excellent", "filter_value": "30" },
    { "key": "bicycle_frame_size", "label": "frame size", "value": "56 cm", "filter_value": null }
  ],
  "phone_numbers": [],
  "emails": [],
  "has_contact_info": true,
  "created_at": "2026-09-30T08:12:00.000Z",
  "updated_at": "2026-10-21T17:04:12.000Z",
  "search_url": "https://sfbay.craigslist.org/search/sss?query=road+bike",
  "search_area": "sfbay",
  "search_path": "sss",
  "search_query": "road bike",
  "search_total": 214,
  "search_listed": 214
}
```

Every field:

| Field                | What it holds                                                                                            |
| -------------------- | -------------------------------------------------------------------------------------------------------- |
| `posting_id`         | Craigslist's id for the listing                                                                          |
| `uuid`               | Craigslist's other id for the listing, used in its link                                                  |
| `url`                | The listing on Craigslist                                                                                |
| `title`              | The title                                                                                                |
| `posted_at`          | When it was posted, or last renewed                                                                      |
| `price`              | The price as a number. Empty when the listing shows none                                                 |
| `price_text`         | The price as Craigslist shows it ("$1,100")                                                              |
| `currency`           | The city's currency (`USD`, `GBP`, `CAD`...)                                                             |
| `monthly_payment`    | The monthly payment, when a dealer shows one                                                             |
| `category`           | Craigslist's code for the listing's category (`bik`, `apa`, `cto`)                                       |
| `category_id`        | Its id                                                                                                   |
| `category_name`      | Its name ("bicycles - by owner")                                                                         |
| `section`            | The section ("for sale", "housing", "jobs"), with descriptions on                                        |
| `area`               | The city's Craigslist site (`sfbay`)                                                                     |
| `area_id`            | Craigslist's id for the city                                                                             |
| `area_name`          | The city's name ("SF bay area")                                                                          |
| `area_country`       | The city's country code                                                                                  |
| `subarea`            | The sub-area's code (`sfc`), in cities that have them                                                    |
| `subarea_name`       | The sub-area's name ("city of san francisco"), with descriptions on                                      |
| `location`           | The place the poster gave                                                                                |
| `neighborhood`       | The neighborhood, when Craigslist knows it                                                               |
| `latitude`           | The map point's latitude                                                                                 |
| `longitude`          | The map point's longitude                                                                                |
| `image_urls`         | Every picture's link                                                                                     |
| `image_count`        | How many pictures                                                                                        |
| `bedrooms`           | Bedrooms, for housing                                                                                    |
| `floor_area`         | Floor area, for housing                                                                                  |
| `floor_area_unit`    | `ft` (square feet) or `m` (square metres)                                                                |
| `salary`             | Pay, for jobs and gigs                                                                                   |
| `company`            | The hiring company, for jobs                                                                             |
| `job_title`          | The job title, for jobs                                                                                  |
| `odometer`           | The odometer, for cars and motorcycles                                                                   |
| `odometer_unit`      | `mi` or `km`                                                                                             |
| `event_start_date`   | The first day, for events                                                                                |
| `event_end_date`     | The last day, for events                                                                                 |
| `event_dates`        | Every day it runs, for events with separate dates                                                        |
| `open_house_dates`   | Open-house days, for housing                                                                             |
| `duplicate_group`    | The same number on listings Craigslist sees as repeats of one another                                    |
| `position`           | Where the listing stood in the search's list                                                             |
| `is_nearby` | `true` for a listing Craigslist added from a nearby city (only with Include nearby cities on) |
| `details_read`       | With descriptions on: `false` when the listing was taken down while the run read it. Empty with them off |
| `description`        | The full description, as text (descriptions on)                                                          |
| `attributes`         | The listing's attributes: `key`, `label`, `value` and the value the search filters use (descriptions on) |
| `notices`            | Craigslist's notices on the listing (descriptions on)                                                    |
| `phone_numbers`      | Phone numbers written in the description (descriptions on)                                               |
| `emails`             | Emails written in the description (descriptions on)                                                      |
| `has_contact_info` | Craigslist's own flag that the listing has contact details (descriptions on) |
| `street_address`     | The street address, when the poster gave one (descriptions on)                                           |
| `display_address`    | The address as Craigslist shows it, when given (descriptions on)                                         |
| `location_type`      | How exact the map point is, as Craigslist marks it (descriptions on)                                     |
| `created_at`         | When the listing was first created (descriptions on)                                                     |
| `updated_at`         | When it was last updated (descriptions on)                                                               |
| `see_my_other`       | `true` when the poster links their other listings (descriptions on)                                      |
| `repost_of`          | The id of the earlier listing this one reposts, when Craigslist links them (descriptions on)             |
| `vin_data`           | For a car with a VIN: the decoded vehicle details (`section`, `name`, `value`) (descriptions on)         |
| `search_url`         | The search on Craigslist                                                                                 |
| `search_area`        | The city searched                                                                                        |
| `search_path`        | The category searched, with its sub-area                                                                 |
| `search_query`       | The search words                                                                                         |
| `search_total`       | How many listings Craigslist counts for the search                                                       |
| `search_listed`      | How many of them Craigslist lists (at most 10,000), not counting nearby cities                                                       |

Not included: the poster's reply email and phone behind Craigslist's reply
button (Craigslist shows them only through its reply form), and listings Craigslist
lists past the first 10,000 of a search.

### How much does it cost?

No surcharges and no paid options; an item that fails is not charged.

You pay for what you get:

- **$1 per 1,000 listings** ($0.001 a listing), with or without descriptions. Each listing is charged once per run, even when two of your searches list it.
- No start fee, and nothing per search.

So a search that lists 400 listings costs $0.40. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every listing saved so far.

### How long does a run take?

About 500 listings in 20 to 40 seconds, and 5,123 listings from four
searches in about two and a half minutes. With descriptions on, each listing
takes longer: about 1,200 listings in under five minutes.

### Good to know

- **At most 10,000 listings per search.** That is what Craigslist lists for
  one search. For more, split it: sub-areas, categories, price ranges, or
  "Posted today" every day. A search of more than 10,000 listings is read to
  Craigslist's limit and is not checked against the count.
- **Craigslist decides what matches.** The Actor returns what Craigslist
  lists for the search, in Craigslist's order.
- **Nearby cities.** When a search has few listings, Craigslist adds
  listings from nearby cities below them. They are left out unless you turn
  on **Include nearby cities**; the count check covers the city's own
  listings either way.
- **Counts move.** A busy search gains and loses listings while it is read,
  so a search can come back a listing or two short of its count. The final
  status says so, by search.
- **One listing, one row.** A listing found again in the same run, under
  another search, is saved and charged once.
- **Map points are approximate.** Craigslist places a listing near, not at,
  the address.
- **A search that cannot be read**, such as a city Craigslist does not
  have, is reported in the run's status; the other searches carry on.
- **Running it daily?** Remove repeats by `posting_id`.

### More Actors from us

- [AliExpress Product Scraper: Search Results & Prices](https://apify.com/luzivanlt/aliexpress-products-scraper): Every product of an AliExpress search to its last page, with exact sold counts and ratings.
- [Amazon Product Scraper: Search Results & Prices](https://apify.com/luzivanlt/amazon-products-scraper): Every product on Amazon's search pages to the last page, sponsored marked, with monthly sales.
- [App Store Reviews Scraper: All Reviews, Not 500](https://apify.com/luzivanlt/app-store-reviews-scraper): Every written App Store review of an app, not just the newest 500.
- [Career Site Jobs Scraper: Workday, Greenhouse, Lever](https://apify.com/luzivanlt/career-site-jobs-scraper): Every job on Greenhouse, Lever, Ashby, SmartRecruiters and Workday boards, checked against each board's count.
- [Facebook Ads Library Scraper: Meta Ads by Keyword or Page](https://apify.com/luzivanlt/facebook-ads-library-scraper): Meta Ad Library ads by keyword, Page or Ad Library link, with text, images, videos and dates.
- [Facebook Comments Scraper: With Replies](https://apify.com/luzivanlt/facebook-comments-scraper): Comments and replies from public Facebook posts, reels and videos, with reactions by type.

### Use it from an AI agent or the API

One call starts a run and returns its items (Apify waits up to 300 seconds; for a
longer run, start it with `POST /v2/acts/…/runs` and read its dataset):

```text
POST https://api.apify.com/v2/acts/luzivanlt~craigslist-listings-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>
```

With the sample input as its JSON body:

```json
{
  "cities": ["sfbay"],
  "category": "sss",
  "searchQueries": ["bike"],
  "postedToday": false,
  "hasImages": false,
  "searchTitlesOnly": false,
  "sortBy": "default",
  "maxListingsPerSearch": 500,
  "includeDetails": false,
  "includeNearby": false
}
```

Its inputs, in the order of the input form:

| Input                                                  | What it takes                                                                                                                                                                                                                                                              | Default     |
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `cities` (Cities)                                      | Craigslist cities to search, by the name in their address: "sfbay" for sfbay.craigslist.org, "newyork", "london", "toronto".                                                                                                                                               | —           |
| `category` (Category)                                  | Which Craigslist section the cities are searched in.                                                                                                                                                                                                                       | `"sss"`     |
| `searchQueries` (Search words)                         | Words to search for, one search per word in every city above (e.g. "road bike").                                                                                                                                                                                           | —           |
| `startUrls` (Search links)                             | Links to Craigslist searches, copied from your browser, e.g. https://sfbay.craigslist.org/search/sfc/apa?min_price=2000\&max_bedrooms=2.                                                                                                                                    | —           |
| `minPrice` (Price from)                                | Only listings priced at least this, in each city's own currency (dollars, pounds, euros...), for the cities above.                                                                                                                                                         | —           |
| `maxPrice` (Price to)                                  | Only listings priced at most this, in each city's own currency (dollars, pounds, euros...), for the cities above.                                                                                                                                                          | —           |
| `postedToday` (Posted today)                           | Only listings posted today, for the cities above.                                                                                                                                                                                                                          | `false`     |
| `hasImages` (Has pictures)                             | Only listings with at least one picture, for the cities above.                                                                                                                                                                                                             | `false`     |
| `searchTitlesOnly` (Search titles only)                | Match the search words in listing titles only, not in their descriptions, for fewer and closer matches.                                                                                                                                                                    | `false`     |
| `sortBy` (Sort by)                                     | The order Craigslist lists the listings in.                                                                                                                                                                                                                                | `"default"` |
| `maxListingsPerSearch` (Max listings per search)       | Stop each search after this many listings, from 1 to 10,000.                                                                                                                                                                                                               | `1000`      |
| `includeDetails` (Include descriptions and attributes) | Also read each listing's own page: the full description, its attributes (make, model, year, odometer, bedrooms, bathrooms, pay, condition and the rest), phone numbers and emails written in the description, its address when given, and when it was created and updated. | `false`     |
| `includeNearby` (Include nearby cities)                | Also save the listings Craigslist adds from nearby cities when a search has few of its own (shown on Craigslist under "more from nearby areas").                                                                                                                           | `false`     |

Apify's MCP server, `https://mcp.apify.com`, lists it as `luzivanlt/craigslist-listings-scraper`. To give an
AI agent this Actor as a tool, add the server to the agent's MCP config:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=luzivanlt/craigslist-listings-scraper"
    }
  }
}
```

The client signs in with OAuth, or add `"headers": { "Authorization": "Bearer <APIFY_TOKEN>" }`.

Charged per listing delivered; the sample input above costs at most $1.00.

### FAQ

**Do I need a Craigslist account?**
No. The Actor reads what anyone can see on Craigslist without signing in.

**Which cities work?**
Craigslist city sites, by the name in the site's address: `sfbay` for
sfbay.craigslist.org, `newyork`, `london`, `toronto`, `sydney`. Measured in
the US, the UK, Canada and Australia.

**Can I run it from my own code, on a schedule, or with other apps?**
Yes. Like any Apify Actor, you can start it through the Apify API, run it on a
schedule, and connect it to other apps with Apify's integrations and webhooks.

### Is it legal to scrape Craigslist?

This Actor reads only public listings. A listing can carry a person's name,
phone number or email; treat those as personal data. Check Craigslist's terms
and the laws that apply to you (such as the GDPR or the CCPA) before you use
the data. If you are unsure, ask a lawyer.

### Support

Found a problem or missing a feature? Open an issue on the **Issues** tab and
include the run's link.

***

This Actor is not affiliated with, endorsed by or sponsored by Craigslist.

# Changelog

This Actor's version history is a separate document: https://apify.com/luzivanlt/craigslist-listings-scraper/changelog.md

# Actor input Schema

## `cities` (type: `array`):

Craigslist cities to search, by the name in their address: "sfbay" for sfbay.craigslist.org, "newyork", "london", "toronto". Every Craigslist city in every country works. Each city is searched with the Category, Search words and filters below. Example: sfbay and losangeles.

## `category` (type: `string`):

Which Craigslist section the cities are searched in. Default: all for sale. Paste a search link under Search links for any other category or a city's sub-area. Example: apa, for apartments for rent.

## `searchQueries` (type: `array`):

Words to search for, one search per word in every city above (e.g. "road bike"). Leave empty to get every listing in the category. The words are used with the Cities only; a search link keeps its own words. A listing two searches both find is saved and charged once.

## `startUrls` (type: `array`):

Links to Craigslist searches, copied from your browser, e.g. https://sfbay.craigslist.org/search/sfc/apa?min_price=2000\&max_bedrooms=2. Every filter in the link is kept: price, bedrooms, make and model, distance from a postcode, and the rest. A single listing's link is refused.

## `minPrice` (type: `integer`):

Only listings priced at least this, in each city's own currency (dollars, pounds, euros...), for the cities above. Leave empty for no lower limit. A search link keeps its own price range. Example: 100.

## `maxPrice` (type: `integer`):

Only listings priced at most this, in each city's own currency (dollars, pounds, euros...), for the cities above. Leave empty for no upper limit. A search link keeps its own price range. Example: 1500.

## `postedToday` (type: `boolean`):

Only listings posted today, for the cities above. Turn it on with Sort by newest to collect each day's new listings in a daily run. A search link keeps its own setting. Default: off.

## `hasImages` (type: `boolean`):

Only listings with at least one picture, for the cities above. Listings with no picture are left out of the search and are never charged. A search link keeps its own setting. Default: off.

## `searchTitlesOnly` (type: `boolean`):

Match the search words in listing titles only, not in their descriptions, for fewer and closer matches. Used only with Search words; a search link keeps its own setting. Default: off.

## `sortBy` (type: `string`):

The order Craigslist lists the listings in. With a limit, it decides which listings you get. A search link keeps its own sort. Default: Craigslist's own order. Example: newest, to get the newest listings first.

## `maxListingsPerSearch` (type: `integer`):

Stop each search after this many listings, from 1 to 10,000. Default 1,000. Craigslist lists at most 10,000 listings for one search. Each listing is charged once ($1 per 1,000 listings), so this caps what one search costs: 1,000 listings cost at most $1. Example: 5000.

## `includeDetails` (type: `boolean`):

Also read each listing's own page: the full description, its attributes (make, model, year, odometer, bedrooms, bathrooms, pay, condition and the rest), phone numbers and emails written in the description, its address when given, and when it was created and updated. Slower: one more request per listing. The price per listing stays the same. Default: off.

## `includeNearby` (type: `boolean`):

Also save the listings Craigslist adds from nearby cities when a search has few of its own (shown on Craigslist under "more from nearby areas"). Each such row has is_nearby set to true and is charged like any listing. The count check covers the city's own listings only. Default: off.

## Actor input object example

```json
{
  "cities": [
    "sfbay"
  ],
  "category": "sss",
  "searchQueries": [
    "bike"
  ],
  "postedToday": false,
  "hasImages": false,
  "searchTitlesOnly": false,
  "sortBy": "default",
  "maxListingsPerSearch": 500,
  "includeDetails": false,
  "includeNearby": false
}
```

# Actor output Schema

## `listings` (type: `string`):

Every listing the run saved, one row per listing.

## `allFields` (type: `string`):

The same rows with every field.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "cities": [
        "sfbay"
    ],
    "category": "sss",
    "searchQueries": [
        "bike"
    ],
    "maxListingsPerSearch": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("luzivanlt/craigslist-listings-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "cities": ["sfbay"],
    "category": "sss",
    "searchQueries": ["bike"],
    "maxListingsPerSearch": 500,
}

# Run the Actor and wait for it to finish
run = client.actor("luzivanlt/craigslist-listings-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "cities": [
    "sfbay"
  ],
  "category": "sss",
  "searchQueries": [
    "bike"
  ],
  "maxListingsPerSearch": 500
}' |
apify call luzivanlt/craigslist-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,luzivanlt/craigslist-listings-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/wLR3eXd3xjAbGceDc/builds/xueHCcG6cFyJUpXvI/openapi.json
