Craigslist: scrapers and the official API, compared
Classified ads for jobs, housing, for-sale items, autos, services and gigs from Craigslist cities.
Short answer
For most Craigslist jobs, start with Craigslist Classifieds Scraper with Category Attributes: it covers 0 of 7 core fields at $0.99 per 1,000 results on Apify's Free plan. The top published score for Craigslist goes to Craigslist Scraper by solidcode (95 of 100), a Store tool from another publisher, listed for reference.
From published Store listings, output schemas and the official documentation. Checked 2026-10-25. How the ranking works.Craigslist Classifieds Scraper with Category Attributes: inputs, code and costOpen in Apify Store
Route map
Each line is one way to get Craigslist data; each stop is a field you probably need. Green lines are catalogue Actors, ranked by the published formula.
- + 7 other Store tools, combined Reference only 7 of 7 core fields
from $1.49 / 1K - API No public listings API (bulk posting interface only) No open API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Catalogue Actors for Craigslist
Craigslist Classifieds Scraper with Category Attributes
Scrape Craigslist search results and individual posts across any city subdomain, with category-specific attributes for jobs, housing, autos, and…
Field matrix: who returns what
Every tool with a published output schema, against the 7 fields most Craigslist jobs need. A dot means the field name appears in the schema; rows can still leave it empty.
| Tool | title | price | location | category | date | description | url | Fields |
|---|---|---|---|---|---|---|---|---|
| Craigslist ScraperReference only, by solidcode | ● | ● | ● | ● | ● | ● | ● | 7/7 |
| Craigslist ScraperReference only, by fatihtahta | ● | ● | ● | ● | ● | ● | ● | 7/7 |
| Craigslist ScraperReference only, by automation-lab | ● | ● | ● | ● | ● | ● | ● | 7/7 |
| Craigslist Vehicles ScraperReference only, by fmchisti | ● | ● | ● | – | ● | – | ● | 5/7 |
| Craigslist ScraperReference only, by scrapesage | ● | ● | – | ● | ● | – | ● | 5/7 |
| Craigslist ScraperReference only, by ivanvs | ● | – | – | ● | ● | – | ● | 4/7 |
| Craigslist ScraperReference only, by ivanvs | ● | – | – | ● | ● | – | ● | 4/7 |
| Tools returning it | 7 | 5 | 4 | 6 | 7 | 3 | 7 |
All 9 tools, scored
Catalogue Actors link to their detail pages; the score (0 to 100) is the published formula, identical for every tool. Other Store tools follow in their own table, for reference. Price is the published primary-result rate per 1,000 (the Free-plan rate where the price is tiered; higher Apify plans pay less); start events and platform usage are excluded.
| Sample fields | ||||||
|---|---|---|---|---|---|---|
| 63 | Craigslist Classifieds Scraper with Category Attributes Catalogue Actor, pay per event | No published schema | – | $0.99 | 17 runs, too few to rate | Oct 2026 |
Other Store tools, for reference
Scored with the same published formula and listed for comparison only; this site does not link or recommend them.
| Sample fields | ||||||
|---|---|---|---|---|---|---|
| 95 | Craigslist Scraper Reference only, by solidcode | title, priceUsd, region | 23 | $1.80 | 100% of 84,990 runs | Aug 2026 |
| 94 | Craigslist Scraper Reference only, by fatihtahta | Title, Price, Location | 11 | $1.49 | 100% of 4,503 runs | May 2026 |
| 92 | Craigslist Scraper Reference only, by automation-lab | title, price, location | 22 | $2.30 | 100% of 1,694 runs | Sep 2026 |
| 82 | Craigslist Vehicles Scraper Reference only, by fmchisti | title, price, location | 16 | $2.50 | 100% of 6,926 runs | Nov 2026 |
| 79 | Craigslist Scraper Reference only, by scrapesage | title, price, category | 18 | $3.00 | 100% of 36 runs | Nov 2026 |
| 73 | Craigslist Scraper + Emails Search Reference only, by memo23 | No published schema | – | $1.50 | 99% of 5,050 runs | Nov 2026 |
| 67 | Craigslist Scraper Reference only, by ivanvs | title, category, datetime | 5 | $6.00 | 98% of 3,919 runs | Oct 2026 |
| 65 | Craigslist Scraper Reference only, by ivanvs | title, category, datetime | 5 | $6.00 | 90% of 258 runs | Oct 2026 |
Official API route
No public listings API (bulk posting interface only)
Craigslist publishes no API for reading listings. Its bulk posting interface only submits new posts, and access is granted case by case to high-volume posters in a few paid categories.
Price. No public self-serve price is published.
Limits. Bulk posting is limited to approved high-volume posters (hundreds of postings per month or more). The terms of use set a $0.25 per page charge for accessing more than 1,000 pages in 24 hours.
Terms and personal data
Craigslist's terms prohibit collecting content with robots, scrapers or scripts and list liquidated damages for violations; posts can contain personal data. This is general information, not legal advice.
Read Craigslist's terms. Keep to public data, do not bypass logins or access controls, and check whether personal data is involved before you collect it. The can-I-scrape checklist walks through it.
How to start
- Open Craigslist Classifieds Scraper with Category Attributes and start from its default input; its Actor page has the full example input and code.
- Set the Craigslist search, profile, listing or URL you need and a result limit; the required input is mode.
- Run it and export the dataset as JSON, CSV or Excel, or call it from the Apify API.
Call Craigslist Classifieds Scraper with Category Attributes from code
The example input uses the Actor's published defaults; set your own Craigslist query before you run it. You need an Apify API token.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"region": "sfbay",
"category": "sss",
"searchQueries": [
"bike"
],
"startUrls": [],
"postedToday": False,
"hasImage": False,
"titlesOnly": False,
"sellerType": "all",
"sortBy": "newest",
"condition": "any",
"hideDuplicates": False,
"deliveryAvailable": False,
"cryptoOk": False,
"maxItems": 3,
"includeDetails": True
}
run = client.actor("vexaloom-labs/craigslist-classifieds-scraper-with-category").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "search",
"region": "sfbay",
"category": "sss",
"searchQueries": [
"bike"
],
"startUrls": [],
"postedToday": false,
"hasImage": false,
"titlesOnly": false,
"sellerType": "all",
"sortBy": "newest",
"condition": "any",
"hideDuplicates": false,
"deliveryAvailable": false,
"cryptoOk": false,
"maxItems": 3,
"includeDetails": true
};
const run = await client.actor("vexaloom-labs/craigslist-classifieds-scraper-with-category").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/vexaloom-labs~craigslist-classifieds-scraper-with-category/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"search","region":"sfbay","category":"sss","searchQueries":["bike"],"startUrls":[],"postedToday":false,"hasImage":false,"titlesOnly":false,"sellerType":"all","sortBy":"newest","condition":"any","hideDuplicates":false,"deliveryAvailable":false,"cryptoOk":false,"maxItems":3,"includeDetails":true}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=vexaloom-labs/craigslist-classifieds-scraper-with-category",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
Questions people ask
Does Craigslist have an official API?
No open API: Craigslist publishes no API for reading listings. Its bulk posting interface only submits new posts, and access is granted case by case to high-volume posters in a few paid categories. No public self-serve price is published.
Is it legal to scrape Craigslist?
It depends on what you collect and how. Craigslist's terms prohibit collecting content with robots, scrapers or scripts and list liquidated damages for violations; posts can contain personal data. Read Craigslist's terms (https://www.craigslist.org/about/terms.of.use) before you collect, and check whether personal data is involved. This is general information, not legal advice.
More on Craigslist
Related websites
Sources
- Craigslist Classifieds Scraper with Category Attributes on Apify Store
- No public listings API (bulk posting interface only) documentation
- Craigslist terms
Cite this page
Scraper Finder. "How to get Craigslist data." https://scraperfinder.com/sites/craigslist/ (data checked 2026-10-25).
Highest-scoring catalogue Actor
Craigslist Classifieds Scraper with Category Attributes: 0 of 7 core fields, $0.99 per 1,000 results, score 63. The highest score overall is 95 (Craigslist Scraper, a Store tool from another publisher); both are in the table above.