# Craigslist Scraper API

> Craigslist Scraper API is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured listing data from Craigslist across cities, categories, and search terms, returning title, price, URL, and optional full posting details.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/craigslist?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/craigslist-scraper-api-182a4794
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tAHO5KXaLjTrn-cJHOZJJ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability craigslist-scraper-api-182a4794 -d '<json body>'
```

Example prompt: Search Craigslist in sfbay for used motorcycles in good condition priced between $1000 and $4000, sorted by date, and give me up to 50 listings with full details and at least one image.

## When to prefer this

Choose this endpoint when you need structured, machine-readable Craigslist listing data across any city and category without building your own scraper. Ideal for price monitoring, inventory aggregation, lead generation from classifieds, or market research. Prefer this over generic web scrapers when you specifically need Craigslist data with built-in filters for price, condition, images, and sort order. The pay-per-call model with no charge for failed/empty runs reduces risk for exploratory or monitoring use cases.

## Known failure modes

- Region subdomain not recognized — returns empty results or error
- Category code invalid — request rejected
- Craigslist rate-limiting or blocking — may return partial or empty results (not charged)
- startUrls pointing to non-Craigslist domains — ignored or error
- maxResults set to 0 triggers internal cap of 100,000 rows — may be slow
- priceMin/priceMax filters only apply to priced categories — ignored on free/gig categories

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count and an array of listing items, each containing the listing URL, title, price, currency, USD-normalized price, post ID, region, and category slug. When includeDetails is enabled, each item also includes full description text, item attributes, and image gallery URLs.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "sort": {
   "enum": [
    "date",
    "rel",
    "priceasc",
    "pricedsc"
   ],
   "type": "string",
   "default": "date",
   "description": "Order guided search results. URL sources use the sort already present in their URL."
  },
  "region": {
   "type": "string",
   "default": "newyork",
   "description": "City subdomain for the guided search; for example newyork, sfbay, toronto, or raleigh."
  },
  "category": {
   "enum": [
    "sss",
    "cta",
    "ela",
    "fua",
    "apa",
    "roo",
    "sub",
    "jjj",
    "ggg",
    "bbb",
    "ccc",
    "rrr",
    "eee"
   ],
   "type": "string",
   "default": "sss",
   "description": "Category code for the guided search. Use a search URL for another category or more advanced filters."
  },
  "hasImage": {
   "type": "boolean",
   "default": false,
   "description": "Require at least one listing image."
  },
  "priceMax": {
   "type": "integer",
   "minimum": 0,
   "description": "Only listings at or below this local-currency price. Applies to priced categories."
  },
  "priceMin": {
   "type": "integer",
   "minimum": 0,
   "description": "Only listings at or above this local-currency price. Applies to priced categories."
  },
  "condition": {
   "enum": [
    "any",
    "new",
    "like-new",
    "excellent",
    "good",
    "fair",
    "salvage"
   ],
   "type": "string",
   "default": "any",
   "description": "Filter for-sale listings by seller-selected condition."
  },
  "startUrls": {
   "type": "array",
   "description": "Search, category, or individual posting URLs. When provided, these replace the guided city and category search and preserve filters in each URL."
  },
  "maxResults": {
   "type": "integer",
   "default": 200,
   "minimum": 0,
   "description": "Maximum output rows across all sources. Set 0 for an internal cap of 100,000."
  },
  "searchTerm": {
   "type": "string",
   "default": "",
   "description": "Optional word or phrase to search in listing titles and descriptions."
  },
  "postedToday": {
   "type": "boolean",
   "default": false,
   "description": "Return listings marked as posted today by the site."
  },
  "includeDetails": {
   "type": "boolean",
   "default": true,
   "description": "Fetch each posting for its full description, category, attributes, and image gallery. Disable for faster search-card results."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "price": null,
    "title": null,
    "postId": null,
    "region": null,
    "currency": null,
    "priceUsd": null,
    "categorySlug": null
   }
  ],
  "product": "craigslist"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/craigslist-scraper-api-182a4794/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
