Craigslist Scraper avatar

Craigslist Scraper

Pricing

from $15.75 / 1,000 listing scrapeds

Go to Apify Store
Craigslist Scraper

Craigslist Scraper

Scrape Craigslist listings across all categories and locations. Extract prices, descriptions, images, and contact details.

Pricing

from $15.75 / 1,000 listing scrapeds

Rating

4.7

(3)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

🏷️ Craigslist Scraper — Classifieds, Jobs, Housing & For Sale

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Search and scrape Craigslist listings by keyword and city. Extract titles, prices, locations, images, and direct links from classifieds, jobs, housing, gigs, and for-sale sections across any US city. Pure HTTP scraping — no browser needed.

✨ Features

  • 🔍 Search by keyword + city — "used car" in New York, "apartment" in San Francisco
  • 📂 7 categories — For Sale, Jobs, Housing, Community, Gigs, Services, Resumes
  • 💲 Price extraction — Parsed numeric prices with currency
  • 📍 Location data — Neighborhood and area from listings
  • 🖼️ Image URLs — First listing image via JSON-LD enrichment
  • 🔄 Sort options — By relevance, date, price ascending, or price descending
  • 🛡️ Anti-placeholder guardrails — Every result validated as real data
  • Fast & lightweight — Pure HTTP with got-scraping + cheerio (256 MB)

📥 Input

ParameterTypeRequiredDefaultDescription
searchQueriesstring[]Keywords to search (1-10 queries)
citystring"newyork"Craigslist city subdomain (newyork, sfbay, losangeles, chicago, seattle, miami, boston, austin)
categorystring"sss"Section: sss (For Sale), jjj (Jobs), hhh (Housing), ccc (Community), ggg (Gigs), bbb (Services), res (Resumes)
maxItemsPerQueryinteger50Max listings per query (1-200)
sortBystring"rel"Sort: rel (Relevance), date (Newest), priceasc (Low to High), pricedsc (High to Low)
proxyConfigurationobjectProxy settings (optional, Craigslist usually works without proxy)

Input Example

{
"searchQueries": [
"used car",
"apartment 2br",
"remote software engineer"
],
"city": "sfbay",
"category": "sss",
"maxItemsPerQuery": 50,
"sortBy": "date"
}

📤 Output

Every listing includes these fields:

FieldTypeDescription
postIdstringCraigslist post ID
titlestringListing title
pricenumberListed price (0 if not specified)
currencystringCurrency code (USD)
locationstringNeighborhood or area
imageUrlstringFirst listing image URL
itemUrlstringDirect link to the listing
categorystringCraigslist category code
citystringCraigslist city subdomain
searchQuerystringOriginal search keyword
platformstringAlways "craigslist"
scrapedAtstringISO 8601 timestamp

Output Example

{
"postId": "7841293056",
"title": "2019 Honda Civic EX - Clean Title, Low Miles",
"price": 18500,
"currency": "USD",
"location": "San Jose, CA",
"imageUrl": "https://images.craigslist.org/00H0H_kT3vN8mR2Lz_0CI0t2_600x450.jpg",
"itemUrl": "https://sfbay.craigslist.org/sby/cto/d/san-jose-2019-honda-civic-ex-clean/7841293056.html",
"category": "sss",
"city": "sfbay",
"searchQuery": "used car",
"platform": "craigslist",
"scrapedAt": "2026-03-06T14:32:18.542Z"
}

📋 Use Cases

  • Market Research — Track prices for products, housing, or services across US cities
  • Price Monitoring — Compare prices for used goods in different regions
  • Job Market Analysis — Scrape job listings by city and keyword
  • Real Estate Intelligence — Monitor housing listings, prices, and availability
  • Lead Generation — Extract service provider listings with contact information
  • Academic Research — Collect classified ad data for economic or sociological studies

❓ FAQ

Q: What city names can I use? A: Use Craigslist subdomain names such as newyork, sfbay, losangeles, chicago, seattle, miami, boston, austin, denver, portland. The full list matches what appears before .craigslist.org in the URL.

Q: Is a proxy required? A: Usually not. Craigslist works without a proxy for moderate usage. If you encounter 403 or 429 errors on high-volume runs, enable the proxy configuration in the input.

Q: What is the maximum number of results per query? A: The actor supports up to 200 results per query (maxItemsPerQuery). However, Craigslist limits pagination to approximately 480 results, so very broad queries may hit this ceiling across all pages.

Q: How does the actor extract images? A: Images are extracted from the JSON-LD structured data embedded in Craigslist search result pages, matched to HTML rows by title. Not all listings have images, so the imageUrl field may be empty.

Q: Can I search across multiple categories in one run? A: No. Each run searches a single category. To search across For Sale, Jobs, and Housing, you need to run the actor three times with different category values (sss, jjj, hhh).

💰 Pricing

This actor uses Pay Per Event (PPE) pricing:

MetricCost
Per listing scraped$0.03

📝 Changelog

v1.0 (Current)

  • ✅ Search by keyword + city across 7 categories
  • ✅ Full listing extraction (title, price, location, images, URLs)
  • ✅ JSON-LD enrichment for images and structured location data
  • ✅ Sort by relevance, date, or price
  • ✅ Pagination support (up to ~480 results per query)
  • ✅ Deduplication by post ID
  • ✅ Anti-placeholder guardrails
  • ✅ Retry logic with rate limit handling (429/403)

🏷️ Craigslist Scraper — Classificados, Empregos, Imóveis & Vendas

🇺🇸 English | 🇧🇷 Português

Busque e extraia anúncios do Craigslist por palavra-chave e cidade. Extraia títulos, preços, localizações, imagens e links diretos de classificados, empregos, imóveis, bicos e seções de vendas em qualquer cidade dos EUA. Scraping HTTP puro — sem navegador.

✨ Funcionalidades

  • 🔍 Busca por palavra-chave + cidade — "used car" em New York, "apartment" em San Francisco
  • 📂 7 categorias — Vendas, Empregos, Imóveis, Comunidade, Bicos, Serviços, Currículos
  • 💲 Extração de preços — Preços numéricos com moeda
  • 📍 Dados de localização — Bairro e área dos anúncios
  • 🖼️ URLs de imagens — Primeira imagem via enriquecimento JSON-LD
  • 🔄 Opções de ordenação — Por relevância, data, preço crescente ou decrescente
  • 🛡️ Guardrails anti-placeholder — Todo resultado validado como dado real
  • Rápido e leve — HTTP puro com got-scraping + cheerio (256 MB)

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
searchQueriesstring[]Palavras-chave de busca (1-10 queries)
citystring"newyork"Subdomínio da cidade no Craigslist (newyork, sfbay, losangeles, chicago, seattle, miami, boston, austin)
categorystring"sss"Seção: sss (Vendas), jjj (Empregos), hhh (Imóveis), ccc (Comunidade), ggg (Bicos), bbb (Serviços), res (Currículos)
maxItemsPerQueryinteiro50Máximo de anúncios por query (1-200)
sortBystring"rel"Ordenar: rel (Relevância), date (Mais Recente), priceasc (Menor Preço), pricedsc (Maior Preço)
proxyConfigurationobjetoConfiguração de proxy (opcional, Craigslist geralmente funciona sem proxy)

Exemplo de Entrada

{
"searchQueries": [
"used car",
"apartment 2br",
"remote software engineer"
],
"city": "sfbay",
"category": "sss",
"maxItemsPerQuery": 50,
"sortBy": "date"
}

📤 Saída

Cada anúncio inclui estes campos:

CampoTipoDescrição
postIdstringID do anúncio no Craigslist
titlestringTítulo do anúncio
pricenúmeroPreço listado (0 se não especificado)
currencystringCódigo da moeda (USD)
locationstringBairro ou área
imageUrlstringURL da primeira imagem
itemUrlstringLink direto para o anúncio
categorystringCódigo da categoria no Craigslist
citystringSubdomínio da cidade
searchQuerystringPalavra-chave original
platformstringSempre "craigslist"
scrapedAtstringTimestamp ISO 8601

Exemplo de Saída

{
"postId": "7841293056",
"title": "2019 Honda Civic EX - Clean Title, Low Miles",
"price": 18500,
"currency": "USD",
"location": "San Jose, CA",
"imageUrl": "https://images.craigslist.org/00H0H_kT3vN8mR2Lz_0CI0t2_600x450.jpg",
"itemUrl": "https://sfbay.craigslist.org/sby/cto/d/san-jose-2019-honda-civic-ex-clean/7841293056.html",
"category": "sss",
"city": "sfbay",
"searchQuery": "used car",
"platform": "craigslist",
"scrapedAt": "2026-03-06T14:32:18.542Z"
}

📋 Casos de Uso

  • Pesquisa de Mercado — Acompanhe preços de produtos, imóveis ou serviços em cidades dos EUA
  • Monitoramento de Preços — Compare preços de usados em diferentes regiões
  • Análise do Mercado de Trabalho — Extraia vagas por cidade e palavra-chave
  • Inteligência Imobiliária — Monitore anúncios, preços e disponibilidade
  • Geração de Leads — Extraia anúncios de prestadores de serviço
  • Pesquisa Acadêmica — Colete dados de classificados para estudos econômicos ou sociológicos

❓ Perguntas Frequentes

P: Quais nomes de cidades posso usar? R: Use os nomes de subdomínio do Craigslist como newyork, sfbay, losangeles, chicago, seattle, miami, boston, austin, denver, portland. A lista completa corresponde ao que aparece antes de .craigslist.org na URL.

P: É necessário usar proxy? R: Geralmente não. O Craigslist funciona sem proxy para uso moderado. Se você encontrar erros 403 ou 429 em execuções de alto volume, habilite a configuração de proxy na entrada.

P: Qual é o número máximo de resultados por query? R: O actor suporta até 200 resultados por query (maxItemsPerQuery). Porém, o Craigslist limita a paginação a aproximadamente 480 resultados, então queries muito amplas podem atingir esse teto ao longo de todas as páginas.

P: Como o actor extrai imagens? R: As imagens são extraídas dos dados estruturados JSON-LD embutidos nas páginas de resultados de busca do Craigslist, combinados com as linhas HTML por título. Nem todos os anúncios têm imagens, então o campo imageUrl pode estar vazio.

P: Posso buscar em múltiplas categorias em uma execução? R: Não. Cada execução busca em uma única categoria. Para buscar em Vendas, Empregos e Imóveis, você precisa executar o actor três vezes com valores diferentes de category (sss, jjj, hhh).

💰 Preços

Este actor usa precificação Pay Per Event (PPE):

MétricaCusto
Por anúncio extraído$0.03

🔗 Actors Relacionados

📝 Changelog

v1.0 (Atual)

  • ✅ Busca por palavra-chave + cidade em 7 categorias
  • ✅ Extração completa de anúncios (título, preço, localização, imagens, URLs)
  • ✅ Enriquecimento JSON-LD para imagens e localização estruturada
  • ✅ Ordenação por relevância, data ou preço
  • ✅ Suporte a paginação (até ~480 resultados por query)
  • ✅ Deduplicação por post ID
  • ✅ Guardrails anti-placeholder
  • ✅ Lógica de retry com tratamento de rate limit (429/403)