# Craigslist Scraper — Listings, Prices & Data Extractor (`scrapepilot/craigslist-scraper----listings-prices-data-extractor`) Actor

Scrape Craigslist listings from any US city and category. Get title, price, location, posting date, images, description, and attributes — cars, housing, jobs, electronics, and more. No login needed. $6.99/month. 2-hour free trial.

- **URL**: https://apify.com/scrapepilot/craigslist-scraper----listings-prices-data-extractor.md
- **Developed by:** [Scrape Pilot](https://apify.com/scrapepilot) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 5 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

$6.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🔍 Craigslist Scraper — Listings, Prices & Data Extractor

> **The most reliable Craigslist Scraper on Apify.** Extract listings from any Craigslist city and category — cars, housing, jobs, electronics, furniture, free items, services, and more. Get titles, prices, locations, posting dates, images, descriptions, and listing attributes in one clean structured dataset. No login. No API key. Bulk-ready.

---

### 📌 Table of Contents

- [What Is This Actor?](#what-is-this-actor)
- [Why Use This Craigslist Scraper?](#why-use-this-craigslist-scraper)
- [Supported Cities & Categories](#supported-cities--categories)
- [Use Cases](#use-cases)
- [Input Parameters](#input-parameters)
- [Output Fields](#output-fields)
- [Example Input & Output](#example-input--output)
- [Pricing & Free Trial](#pricing--free-trial)
- [Performance & Limits](#performance--limits)
- [FAQ](#faq)
- [Changelog](#changelog)
- [Legal & Terms of Use](#legal--terms-of-use)

---

### 🔍 What Is This Actor?

**Craigslist Scraper** is a production-ready Apify actor that extracts structured listing data from any Craigslist city and category — across all major classified ad types. Whether you are hunting for used cars, monitoring rental prices, tracking job postings, or building a deal-alert pipeline, this **Craigslist scraper** delivers clean, ready-to-use data without any technical setup.

Enter a city, category, and optional keyword or price range — and receive back a full dataset of matching Craigslist listings with titles, prices, locations, posting dates, listing images, description snippets, and listing-specific attributes like mileage, bedrooms, or item condition.

No login. No API key. No browser required on your end. Just results from Craigslist, instantly structured.

---

### 🚀 Why Use This Craigslist Scraper?

| Feature | This Actor | Manual Browsing | Other Scrapers |
|---|---|---|---|
| **50+ US cities** | ✅ | ✅ Slow | ⚠️ Limited |
| **15+ listing categories** | ✅ | ✅ | ⚠️ |
| **Price range filter** | ✅ Built-in | ✅ Manual | ⚠️ |
| **Keyword search** | ✅ | ✅ | ⚠️ |
| **Listing images extracted** | ✅ Up to 5 | ✅ | ❌ |
| **Attributes (beds, miles, sqft)** | ✅ | ✅ | ❌ |
| **Posting date** | ✅ | ✅ | ⚠️ |
| **Description snippet** | ✅ | ✅ | ❌ |
| **Bulk results — up to 600/run** | ✅ | ❌ | ⚠️ |
| **Direct Craigslist URL input** | ✅ | N/A | ⚠️ |
| **No blocks or CAPTCHAs** | ✅ | ✅ | ❌ Often |

> **Bottom line:** This **Craigslist scraper** is the only actor that reliably extracts listing images, attributes, description snippets, and posting dates alongside the standard title, price, and location — with zero configuration needed.

---

### 🏙️ Supported Cities & Categories

#### 📍 Cities (50+ Supported)

Type any city name naturally — the actor maps it to the correct Craigslist subdomain automatically.

| Region | Supported Cities |
|---|---|
| **Northeast** | New York / NYC, Boston, Philadelphia |
| **Southeast** | Miami, Atlanta, Orlando, Charlotte |
| **Midwest** | Chicago, Detroit, Minneapolis, Cleveland |
| **South** | Houston, Dallas, Austin, San Antonio |
| **West** | Los Angeles / LA, San Francisco / SF, Seattle, Portland |
| **Southwest** | Phoenix, Las Vegas, Denver, San Diego |

> Don't see your city? Enter the Craigslist subdomain directly (e.g. `tucson`, `albuquerque`) — most US cities work out of the box.

---

#### 🗂️ Categories (15+ Supported)

| Input Value | Craigslist Category |
|---|---|
| `for sale` | All for-sale listings |
| `cars` / `auto` / `vehicles` | Cars & trucks |
| `housing` | All housing listings |
| `apartments` | Apartments for rent |
| `rooms` | Rooms & shares |
| `jobs` | All job listings |
| `tech jobs` | Software & IT jobs |
| `electronics` | Electronics |
| `furniture` | Furniture |
| `free` | Free stuff |
| `appliances` | Appliances |
| `motorcycles` | Motorcycles |
| `bicycles` | Bicycles |
| `tools` | Tools & equipment |
| `services` | Services |
| `gigs` | Gigs |

---

### 🎯 Use Cases

#### 🚗 Car & Vehicle Research
- Scrape Craigslist car listings in any city by make, model, and price range
- Track used vehicle price trends across multiple cities using keyword and price filters
- Build an automated car deal alert by scheduling the **Craigslist scraper** on any search

#### 🏠 Real Estate & Rental Market Analysis
- Extract apartment and housing listings to analyze average rent prices by neighborhood
- Monitor rental inventory changes over time for real estate investment research
- Collect Craigslist housing data for property management platforms or market reports

#### 🛍️ Reseller & Arbitrage Deals
- Find underpriced electronics, furniture, and appliances for resale on other platforms
- Use minimum and maximum price filters to catch deals in your target range automatically
- Run the **Craigslist scraper** across multiple cities simultaneously for maximum coverage

#### 📊 Market Research & Pricing Intelligence
- Benchmark local prices for specific products or services across US cities
- Study listing volume and price distribution for niche product categories
- Build competitive pricing datasets for e-commerce, local services, or procurement

#### 🛠️ Developer & Data Integrations
- Feed Craigslist listing data into your own CRM, dashboards, or alert systems
- Build a multi-city aggregator that normalizes listings across Craigslist locations
- Schedule regular scraper runs to track new listings or price changes over time

#### 🎓 Academic & Economic Research
- Study local labor markets by analyzing job posting volume and category distribution
- Research housing affordability trends by scraping rental price data over time
- Build classified ad datasets for consumer behavior or market structure research

---

### ⚙️ Input Parameters

```json
{
  "city":        "new york",
  "category":    "cars",
  "query":       "honda civic",
  "min_price":   "5000",
  "max_price":   "15000",
  "max_results": 20,
  "url":         ""
}
````

| Parameter | Type | Default | Description |
|---|---|---|---|
| `city` | string | `"new york"` | City name — e.g. `"chicago"`, `"los angeles"`, `"miami"` |
| `category` | string | `"cars"` | Listing category — see full list above |
| `query` | string | `""` | Keyword to search — e.g. `"iphone 14"`, `"2-bedroom"`, `"standing desk"` |
| `min_price` | string | `""` | Minimum price filter — e.g. `"500"` |
| `max_price` | string | `""` | Maximum price filter — e.g. `"5000"` |
| `max_results` | integer | `20` | Maximum listings to return (up to 600 per run) |
| `url` | string | `""` | Paste a direct Craigslist search URL to bypass city/category inputs entirely |

> **Power tip:** Paste any Craigslist search URL directly into the `url` field to use custom filters, saved searches, or sorting without rebuilding your inputs.

***

### 📋 Output Fields

Every record from this **Craigslist scraper** includes:

| Field | Type | Description | Example |
|---|---|---|---|
| `title` | string | Listing title | `"2018 Honda Civic EX — 42k miles"` |
| `price` | string | Listed price | `"$12,500"` |
| `location` | string | Neighborhood or area | `"Brooklyn"`, `"Upper West Side"` |
| `posted_date` | string | Posting timestamp | `"2024-03-15T09:30"` |
| `listing_url` | string | Direct link to the full listing page | `"https://newyork.craigslist.org/..."` |
| `description` | string | Short description snippet from the listing card | `"One owner, clean title, runs great..."` |
| `attributes` | array | Listing-specific details — mileage, bedrooms, sqft, condition, year | `["42000mi", "clean title"]` |
| `thumbnail_url` | string | Primary listing image (high resolution) | `"https://images.craigslist.org/...jpg"` |
| `images` | array | Up to 5 high-resolution listing images | `["https://...", "https://..."]` |
| `city` | string | City used for this search | `"new york"` |
| `category` | string | Category used for this search | `"cars"` |

***

### 📦 Example Input & Output

**Input:**

```json
{
  "city":        "chicago",
  "category":    "electronics",
  "query":       "macbook",
  "max_price":   "800",
  "max_results": 5
}
```

**Output (one record):**

```json
{
  "title":         "MacBook Pro 2020 — M1 chip, 8GB RAM, 256GB SSD",
  "price":         "$750",
  "location":      "Lincoln Park",
  "posted_date":   "2024-03-15T11:45",
  "listing_url":   "https://chicago.craigslist.org/elm/d/macbook-pro-2020/1234567890.html",
  "description":   "Perfect condition, no scratches, original charger included.",
  "attributes":    ["like new", "apple"],
  "thumbnail_url": "https://images.craigslist.org/00X0X_abc123_1200x900.jpg",
  "images": [
    "https://images.craigslist.org/00X0X_abc123_1200x900.jpg",
    "https://images.craigslist.org/01010_def456_1200x900.jpg"
  ],
  "city":     "chicago",
  "category": "electronics"
}
```

***

### 💰 Pricing & Free Trial

| Plan | Price | Includes |
|---|---|---|
| **Free Trial** | $0 | 2 hours full access — no credit card required |
| **Monthly** | $6.99 / month | Unlimited runs, all cities, all categories |

#### Everything included in every plan:

- ✅ All 50+ US cities supported
- ✅ All 15+ Craigslist categories
- ✅ Images extracted — up to 5 per listing at high resolution
- ✅ Attributes extracted per listing type (mileage, bedrooms, sqft, condition)
- ✅ Description snippet per listing
- ✅ Price range and keyword filters built-in
- ✅ Up to 600 results per run with automatic pagination
- ✅ Direct Craigslist URL input support
- ✅ JSON + CSV + Excel export from Apify dataset
- ✅ Scheduled runs for automated deal monitoring

> **Start your 2-hour free trial now** — no credit card needed. Click **Try for free** at the top of this page.

***

### ⚡ Performance & Limits

| Mode | Listings | Estimated Time |
|---|---|---|
| Single page search | up to 120 | ~1–2 minutes |
| Multi-page search | up to 360 | ~3–5 minutes |
| Maximum per run | up to 600 | ~8–12 minutes |

- Results pushed to the Apify dataset in real time as each page is processed
- Automatic pagination — no manual page handling needed
- Built-in request delays for reliable, unblocked scraping
- Supports both modern and legacy Craigslist listing layouts

***

### ❓ FAQ

**Q: Does this actor require a Craigslist account or login?**
A: No. This **Craigslist scraper** works entirely on publicly visible listing pages — no account, login, or session cookie needed.

**Q: Can I search multiple cities in one run?**
A: Each run targets one city and category combination. For multi-city scraping, run the actor multiple times with different city inputs or use Apify's task scheduling to automate parallel runs.

**Q: What does the `url` input do?**
A: If you paste a full Craigslist search URL directly, the actor uses that URL as-is — bypassing the city, category, and query inputs entirely. Useful for saved searches or advanced Craigslist filters.

**Q: How many listings can I get per run?**
A: Up to 600 listings per run across up to 5 paginated result pages. Set `max_results` to control the exact number returned.

**Q: Why are some fields like `description` or `images` missing for certain listings?**
A: Craigslist sellers control what they include in each posting. If a seller did not upload photos or write a description, those fields will be `null` in the output — reflecting the actual listing content.

**Q: Can I monitor new listings automatically?**
A: Yes. Set up an Apify scheduled task to run this **Craigslist scraper** on any interval — hourly, daily, or weekly — to automatically monitor new listings for your search criteria.

**Q: My city is not in the city list — will it still work?**
A: Most likely yes. Enter the Craigslist subdomain for your city directly (e.g. `tucson`, `sacramento`, `albuquerque`) and the actor builds the correct URL automatically.

**Q: Can I export results to Excel or CSV?**
A: Yes. All results are pushed to the Apify dataset, which can be exported to JSON, CSV, Excel, and more from the Apify Console after the run completes.

***

### 📜 Changelog

#### v9.0.0 (Current)

- ✅ Complete field extraction: title, price, location, date, description, attributes, images
- ✅ High-resolution image URL upgrade per listing
- ✅ Up to 5 images per listing
- ✅ Attributes extracted per listing type (mileage, bedrooms, sqft, condition)
- ✅ Description snippet from search result cards
- ✅ Automatic pagination — up to 5 pages per search
- ✅ Direct Craigslist URL input support
- ✅ 50+ city name auto-mapping to correct subdomains
- ✅ 15+ category name mapping to Craigslist category codes
- ✅ Support for both modern and legacy Craigslist layouts

#### v1.0.0

- Initial release with basic title, price, and location extraction

***

### 🏷️ Tags

`craigslist scraper` `craigslist` `craigslist listings` `craigslist data` `classified ads scraper` `craigslist cars` `craigslist housing` `craigslist jobs` `craigslist price tracker` `local listings scraper` `craigslist search` `classified listings data`

***

### ⚖️ Legal & Terms of Use

This actor accesses publicly visible listing data on Craigslist in the same way a regular user browses the platform.

**Please note:**

- Use extracted **Craigslist** data only for **lawful purposes** — personal research, price monitoring, market analysis, and deal finding are common legitimate uses
- Do not use this **Craigslist scraper** to harvest personal contact information for spam, harassment, or unsolicited bulk outreach
- Respect Craigslist's Terms of Use — do not use this tool at volumes designed to overload or disrupt the platform
- Listing content belongs to the original poster — do not republish scraped listings without authorization
- The actor developer is not responsible for how extracted data is used

***

### 🤝 Support & Feedback

- **Bug report?** Contact us via the Apify actor page
- **Feature request?** Post in the Apify Community forum
- **Loving it?** Please leave a ⭐ review — it helps other users find this actor!

***

<p align="center">
  <strong>Built with ❤️ on Apify</strong><br/>
  <em>The most reliable Craigslist Scraper — any city, any category, instant results</em><br/><br/>
  <strong>💰 $6.99/month · 🆓 2-hour free trial · No credit card required</strong>
</p>

# Actor input Schema

## `url` (type: `string`):

Paste a Craigslist search URL directly. Example: https://newyork.craigslist.org/search/cta — or use the city/category fields below instead.

## `city` (type: `string`):

City name if not using URL above. E.g: new york, los angeles, chicago, seattle, miami, boston, austin

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

Listing category: for sale, cars, housing, apartments, jobs, tech jobs, electronics, furniture, free, gigs, services, motorcycles, boats

## `query` (type: `string`):

What to search for. E.g: iphone 14, honda civic, 2 bedroom, software engineer

## `max_results` (type: `integer`):

Maximum number of listings to scrape (1-50)

## `min_price` (type: `string`):

Minimum price filter. E.g: 500

## `max_price` (type: `string`):

Maximum price filter. E.g: 5000

## `proxyConfiguration` (type: `object`):

Optional. Craigslist works fine WITHOUT proxy for most searches. Only enable if you get blocked (rare).

## Actor input object example

```json
{
  "city": "new york",
  "category": "cars",
  "max_results": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilot/craigslist-scraper----listings-prices-data-extractor").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 = { "proxyConfiguration": { "useApifyProxy": False } }

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

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

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

```

## CLI example

```bash
echo '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapepilot/craigslist-scraper----listings-prices-data-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapepilot/craigslist-scraper----listings-prices-data-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Craigslist Scraper — Listings, Prices & Data Extractor",
        "description": "Scrape Craigslist listings from any US city and category. Get title, price, location, posting date, images, description, and attributes — cars, housing, jobs, electronics, and more. No login needed. $6.99/month. 2-hour free trial.",
        "version": "0.0",
        "x-build-id": "7OG2eqRo1nOffO45O"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapepilot~craigslist-scraper----listings-prices-data-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapepilot-craigslist-scraper----listings-prices-data-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapepilot~craigslist-scraper----listings-prices-data-extractor/runs": {
            "post": {
                "operationId": "runs-sync-scrapepilot-craigslist-scraper----listings-prices-data-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapepilot~craigslist-scraper----listings-prices-data-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-scrapepilot-craigslist-scraper----listings-prices-data-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "url": {
                        "title": "🔗 Craigslist Search URL (Easiest)",
                        "type": "string",
                        "description": "Paste a Craigslist search URL directly. Example: https://newyork.craigslist.org/search/cta — or use the city/category fields below instead."
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "City name if not using URL above. E.g: new york, los angeles, chicago, seattle, miami, boston, austin",
                        "default": "new york"
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Listing category: for sale, cars, housing, apartments, jobs, tech jobs, electronics, furniture, free, gigs, services, motorcycles, boats",
                        "default": "cars"
                    },
                    "query": {
                        "title": "Search Keyword (optional)",
                        "type": "string",
                        "description": "What to search for. E.g: iphone 14, honda civic, 2 bedroom, software engineer"
                    },
                    "max_results": {
                        "title": "Max Listings",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of listings to scrape (1-50)",
                        "default": 20
                    },
                    "min_price": {
                        "title": "Min Price $ (optional)",
                        "type": "string",
                        "description": "Minimum price filter. E.g: 500"
                    },
                    "max_price": {
                        "title": "Max Price $ (optional)",
                        "type": "string",
                        "description": "Maximum price filter. E.g: 5000"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration (Recommended)",
                        "type": "object",
                        "description": "Optional. Craigslist works fine WITHOUT proxy for most searches. Only enable if you get blocked (rare)."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
