Craigslist Scraper - $0.85 per 1,000, No API Key
Pricing
Pay per event
Craigslist Scraper - $0.85 per 1,000, No API Key
A flat $0.85 per 1,000 listings plus $0.002 per run. Search any Craigslist city and category and get listing id, title, price, neighborhood, posted date, images and the listing URL. No account, no API key, no captcha wrangling. Blocked or empty runs are never charged.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Craigslist Scraper
Give it a city and a search term. Get back structured Craigslist listings — id, title, price, location, neighborhood, posted date, category, image URLs and the listing URL. Turn on Fetch full posting text and each row also carries the seller's body text and the attribute table.
No API key. No login. No browser.
Why this one
Craigslist's search pages are an empty shell that fills itself in from Craigslist's own JSON API. Most scrapers drive a headless browser at the shell and pay for the compute. This one talks to the JSON API directly with a real browser TLS fingerprint, so it is plain HTTP the whole way.
That has two effects you can measure:
- 10,000 listings come back in one request. Roughly 7 seconds, 3.4 MB. There is no page-by-page crawl to wait on.
- No browser means no bandwidth bill. You pay $0.85 per 1,000 listings and nothing else — there is no compute or proxy charge stacked on top.
Input
| Field | What it does |
|---|---|
city | Craigslist subdomain — newyork, sfbay, losangeles, london. Plain names like new york city also resolve. Pass several to search several cities in one run. 707 Craigslist sites across 79 countries are recognised. |
query | Search terms. Leave empty to take the whole category. |
category | Category abbreviation. sss all for sale, hhh housing, jjj jobs, ggg gigs, bbb services, ccc community, cta cars & trucks, eee events. Leaf codes work too — bia bicycles, apa apartments, fuo furniture, zip free stuff. |
searchUrls | Or skip the fields above and paste Craigslist search URLs. Filters already in the URL are kept. |
maxItems | Total listings across all searches. Default 100, ceiling 50,000. |
fetchDetails | Open every posting page for body text, attributes, street address and last-updated time. |
sort | newest (default) or relevant. |
minPrice / maxPrice | Price bounds. |
postalCode + radiusMiles | Search around a ZIP instead of the whole city. |
sellerType | owner, dealer or anyone. |
hasImage, titleOnly, postedToday | The same switches Craigslist's own filter bar has. |
{"city": ["sfbay"],"query": "toyota tacoma","category": "cta","maxItems": 500,"maxPrice": 25000,"fetchDetails": true}
Output
Every row:
listingId, title, price, priceText, currency, url, postedAt, categoryId, categoryAbbr, categoryName, location, neighborhood, subarea, city, cityName, region, country, latitude, longitude, images, imageCount, searchUrl, scrapedAt
With fetchDetails on, five more: description, attributes, attributeTags, updatedAt, address.
{"listingId": "7951229837","title": "21 Speed TREK NAVIGATOR 2.0 Hybrid Bicycle 15 inch frame","price": 220,"priceText": "$220","currency": "USD","url": "https://www.craigslist.org/view/d/commack-21-speed-trek-navigator-20/pvSPx2jAvzkhXUUURwoxxd","postedAt": "2026-08-07T18:12:58.000Z","categoryId": 68,"categoryAbbr": "bik","categoryName": "bicycles - by owner","location": "Commack/Western Suffolk","neighborhood": null,"subarea": "que","city": "newyork","cityName": "new york city","region": "NY","country": "US","latitude": 40.843,"longitude": -73.2799,"images": ["https://images.craigslist.org/00m0m_kE7opkfWlRt_0jm0ew_600x450.jpg"],"imageCount": 3,"searchUrl": "https://newyork.craigslist.org/search/bia?query=trek","scrapedAt": "2026-08-07T18:45:21.751Z","description": "Selling 21 Speed TREK NAVIGATOR 2.0 Hybrid Bicycle. 26 inch tires, 15 inch frame...","attributes": { "bicycle type": "hybrid/comfort", "frame size": "15 inches", "wheel size": "26 in" },"attributeTags": [],"updatedAt": "2026-08-07T18:07:58.000Z","address": null}
attributes is whatever Craigslist labelled for that category — condition, odometer, VIN, transmission, title status on cars; rent period, pets cat, pets dog on housing; bicycle type, frame size on bikes. attributeTags holds the unlabelled chips: 1BR / 1Ba, 547ft2, available oct 1.
Pricing
$0.85 per 1,000 listings ($0.00085 each), plus $0.002 each time a run starts. Flat rate — no volume tiers, no plan gates — and you are charged only for listings actually returned.
| Listings in the run | Listing fees | All-in, with the start fee |
|---|---|---|
| 100 | $0.085 | $0.087 |
| 1,000 | $0.85 | $0.852 |
| 10,000 | $8.50 | $8.502 |
| 100,000 | $85.00 | $85.002 |
Because the start fee is charged once per run rather than per city or per search, batching several
cities into one run is cheaper than running them separately. A run that returns no listings costs
only the $0.002 start fee. Blocks, bad input and empty searches write a labelled diagnostic row
instead of a listing, and diagnostic rows are never charged. fetchDetails adds description,
attributes, attributeTags, updatedAt and address to the same row at no extra charge — there
is no second event for the detail fetch.
Limits
Read this part before you build on it.
- Relevance sorting stops at 360 results. That is Craigslist's cap, not ours.
sort: "newest"has no such limit and is the default. - Craigslist does not sort by price. Its API dropped the option. Sort the dataset yourself.
neighborhoodis usually null. Craigslist only assigns neighborhoods inside a handful of dense metros — about 7% of New York rows have one.locationis populated on effectively every row.- One city per search. Craigslist has no nationwide index. Pass a list of cities to cover more ground; each is a separate search.
priceis null on postings with no price — jobs, gigs, most community posts, and for-sale posts where the seller left it blank.- Cross-posts come back as separate rows. A seller who posts the same couch to three subareas creates three postings with three ids, and Craigslist reports them separately.
listingIdis deduplicated within a run; identical text under different ids is not. fetchDetailscosts about one extra second per 6 listings. Six detail pages run at a time. On 10,000 rows that is a long run — setmaxItemsdeliberately.- Expired postings. A posting deleted between the search and the detail fetch returns
detailErroron that row rather than failing the run. - The RSS feed is dead. Craigslist answers
?format=rsswith HTTP 403 from every address. If you have old tooling built on it, that is why it stopped.
FAQ
Do I need a Craigslist account or API key? No. Everything it reads is public.
Can it scrape all of Craigslist at once? No. Craigslist is organised as ~707 independent city sites with no combined index. You give it cities; it searches each one.
How many listings can I get from one city?
One request returns up to 10,000. Past that the scraper walks backwards through posting dates, so a large maxItems keeps going until the search is exhausted. New York's "all for sale" section had 118,618 live postings when this was written.
Does it get the seller's phone number or email?
No. Craigslist hides contact details behind a reply relay that requires solving a challenge. This scraper returns what the public posting shows. If a seller typed their number into the description, it will be in description — that is the seller's own doing, not an extraction.
Does it work outside the US? Yes. 79 countries. Non-US sites are much thinner than US ones — London's for-sale section had 2 matches for "bike" while New York had 3,711.
What do I get without fetchDetails?
Everything except description, attributes, attributeTags, updatedAt and address. Titles, prices, images, coordinates, dates and URLs all come from the search response, so the cheap mode is not a stub.
Why is imageCount sometimes higher than what I see on the page?
It is the count Craigslist reports for the gallery. Sellers occasionally upload duplicates.
Is this affiliated with Craigslist? No. It reads public pages. Check Craigslist's terms and your own local rules before you use the output commercially.
Notes
Built as plain HTTP with impit for a Chrome TLS fingerprint. No Playwright, no residential proxy, no per-GB bandwidth bill.