craigslist.org APIinlandempire.craigslist.org ↗
Search Craigslist for sale listings across any region. Returns titles, prices, coordinates, images, and URLs via a single structured endpoint.
curl -X GET 'https://api.parse.bot/scraper/16e674d4-65b2-457c-b105-c5c214760322/search_listings?query=bicycle®ion=sfbay' \ -H 'X-API-Key: $PARSE_API_KEY'
Search Craigslist for sale listings by keyword and region. Returns all matching listings with title, price, location details, images, and direct URLs. Results are paginated by the limit parameter.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order: 'rel' (relevant), 'date' (newest), 'dateoldest', 'priceasc', 'pricedsc' |
| limit | integer | Maximum number of listings to return |
| query | string | Search keyword(s) |
| region | string | Craigslist region subdomain (e.g. 'sfbay', 'inlandempire', 'newyork', 'chicago') |
| category | string | Craigslist category code: 'sss' for all for sale, 'cta' for cars+trucks |
| max_price | string | Maximum price filter as a numeric string |
| min_price | string | Minimum price filter as a numeric string |
{
"type": "object",
"fields": {
"query": "search keyword used",
"region": "Craigslist region searched",
"listings": "array of listing objects with posting_id, title, price, price_display, location, area, latitude, longitude, images, and url",
"total_results": "total number of results reported by Craigslist",
"results_returned": "number of listings returned in this response"
},
"sample": {
"data": {
"query": "peloton",
"region": "inlandempire",
"listings": [
{
"url": "https://inlandempire.craigslist.org/d/rancho-cucamonga-peloton-bundle-open-to/34364485.html",
"area": "inlandempire",
"price": null,
"title": "PELOTON BUNDLE (open to trade) - Bike, Mat, His & Hers Shoes Included!",
"images": [
"https://images.craigslist.org/00C0C_2chXfC6gaPI_0MM132_600x450.jpg"
],
"latitude": 34.1705,
"location": "Rancho Cucamonga",
"longitude": -117.5182,
"posting_id": 34364485,
"price_display": ""
}
],
"total_results": 7,
"results_returned": 3
},
"status": "success"
}
}About the craigslist.org API
The Craigslist API provides one endpoint — search_listings — that returns up to dozens of structured for-sale listings per call, with 10 fields per listing including title, price, GPS coordinates, image arrays, and direct posting URLs. It covers all major Craigslist regions and category codes, making it straightforward to query items across geography or category without manually browsing regional subdomains.
What the API Returns
The search_listings endpoint accepts a query keyword and a region subdomain (e.g. sfbay, newyork, chicago, inlandempire) and returns a flat array of listing objects. Each listing includes posting_id, title, price (numeric), price_display (formatted string), location, area, latitude, longitude, images (array of image URLs), and a direct url to the Craigslist posting. The response also reports total_results (the count Craigslist attributes to the query) and results_returned (the count actually delivered in this response).
Filtering and Sorting
You can narrow results with min_price and max_price (passed as numeric strings) and control ordering via the sort parameter, which accepts rel (relevance), date (newest first), dateoldest, priceasc, and pricedsc. The limit parameter caps how many listings come back per call. The category parameter lets you target a specific vertical: sss covers all for-sale items, while cta restricts to cars and trucks.
Regional Coverage
Craigslist operates hundreds of regional subdomains. The region input takes the subdomain prefix as a string, so switching between markets is a single parameter change. There is no built-in multi-region aggregation in one call — each request targets exactly one region. Combine calls across regions in your own code if you need cross-market coverage.
- Track price trends for a specific item (e.g. 'Peloton') across multiple Craigslist regions using the
pricefield - Build a used-car search tool filtered by
min_price/max_priceusing thectacategory code - Plot listing density on a map using the
latitudeandlongitudefields returned per listing - Monitor new listings in near real-time by sorting with
sort=dateand comparingposting_idvalues - Aggregate image thumbnails from the
imagesarray to power a visual listing feed - Identify arbitrage opportunities by querying the same keyword across several regional subdomains and comparing
pricevalues
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Craigslist have an official developer API?+
How does pagination work — can I retrieve listings beyond the first page?+
limit parameter controls how many listings are returned per call. The response includes total_results so you can compare it against results_returned to know how many listings Craigslist attributes to the query. Offset-based pagination is not a built-in parameter on this endpoint; if you need deeper pagination, you can fork the API on Parse and revise it to add an offset or page parameter.Does the API return listing descriptions or seller contact information?+
search_listings endpoint returns listing-level fields — title, price, location, coordinates, images, and URL — but not the full posting body text or any seller contact details. You can fork the API on Parse and revise it to add a detail endpoint that fetches the full posting content by URL.Can I search categories other than for-sale items, such as housing or jobs?+
category parameter supports sss (all for sale) and cta (cars and trucks). Housing, jobs, services, and other Craigslist sections are not covered by this endpoint. You can fork the API on Parse and revise it to pass different category codes for those sections.