Local prices by category
- Asking prices
- Categories
- Listing age
- Rotating
- City targeting
Real home IPs in the city each Craigslist site serves. Rotate on every request, or keep one IP for a browsing session.
95.6%
of our 1,000 IPs rated low risk by Scamalytics
Low risk: scores 0–19 on Scamalytics’ 0–100 scale.
Every request leaves from a real home IP in the location you pick, so the page you collect is the one local visitors see.
Collect public data and follow Craigslist’s terms. ProxyLane supplies the route; your scraper owns fetching and parsing.
Craigslist blocks many server ranges. Real home IPs look like local visitors.
Use a city IP that matches the Craigslist site you collect from.
Rotate on every request and spread load across 28M+ IPs.
Run your scraper on any VPS and exit through real home devices.
Keep one IP for a multi-page browsing session when you need it.
Clean IPs mean more of every GB turns into listing records.
ProxyLane offers premium residential IPs with ultra-low fraud scores, from ethically sourced, real devices.
Test your workload for $1.9595.6%
of our 1,000 IPs rated low risk by Scamalytics
Low risk: scores 0–19 on Scamalytics’ 0–100 scale.
import asyncio
import os
import httpx
PROXY_URL = os.environ["PROXY_URL"] # rotating endpoint from the dashboard
urls = [f"https://example.com/page/{n}" for n in range(1, 101)]
async def fetch(client, url):
response = await client.get(url)
return response.status_code
async def main():
limits = httpx.Limits(max_connections=50)
async with httpx.AsyncClient(proxy=PROXY_URL, limits=limits, timeout=30) as client:
statuses = await asyncio.gather(*(fetch(client, url) for url in urls))
print(statuses.count(200), "of", len(urls), "Craigslist pages OK")
asyncio.run(main())import { chromium } from "playwright";
// Endpoint targeted to the city or ZIP you collect for
const browser = await chromium.launch({
proxy: {
server: process.env.PROXY_SERVER,
username: process.env.PROXY_USER,
password: process.env.PROXY_PASS,
},
});
const context = await browser.newContext({
locale: "en-US",
timezoneId: "America/New_York",
});
const page = await context.newPage();
await page.goto("https://ipinfo.io/json");
console.log(await page.textContent("body"));
await browser.close();import os
import scrapy
class ListingsSpider(scrapy.Spider):
name = "listings"
custom_settings = {"CONCURRENT_REQUESTS": 64}
def start_requests(self):
proxy = os.environ["PROXY_URL"]
for page in range(1, 101):
url = f"https://example.com/search?page={page}"
yield scrapy.Request(url, meta={"proxy": proxy})
def parse(self, response):
yield {"url": response.url, "status": response.status}From $2/GB. Buy the traffic you need, keep it until you use it.
Test our IP quality: 350 MB$1.95
For your first requests
per GB · Traffic never expires
For projects taking shape
per GB · Traffic never expires
For everyday workflows
per GB · Traffic never expires
For growing workloads
per GB · Traffic never expires
For bigger operations
per GB · Traffic never expires
For high-volume data
per GB · Traffic never expires
For your business, at your scale
Let's build your setup together
Craigslist blocks many datacenter IPs outright and serves each city as its own site. Residential IPs in the right city return listings as a local visitor sees them.
Yes. Pick the city that matches the Craigslist site, for example Denver for denver.craigslist.org, or narrow further by ZIP code.
Rotate on every request for listing research. Keep a sticky session only for a multi-page browsing flow.
There is no connection limit. Run as many threads as your scraper handles; you pay only for traffic.
Collect only public listing data you are allowed to use and follow Craigslist’s terms. ProxyLane supplies the route; your tool decides what it fetches.
Start with 350 MB for $1.95. Keep any unused traffic for later.