ClassifiedsDifficulty: Easy

Craigslist Data Extraction

Extract publicly available data from Craigslist at scale using AlterLab's API — JavaScript rendering, structured extraction, and automatic retries in one request.

Automatic renderingJavaScript supportStructured data extractionChallenge resolution

Website Compatibility Notes

Craigslist uses minimal bot protections but employs IP-based rate limiting. Basic rendering works well for most listing pages. Craigslist serves mostly static HTML — JavaScript rendering is not required for most content. Geographic access is organized by subdomain (sfbay.craigslist.org, newyork.craigslist.org, etc.).

Technical Context

Craigslist uses a consistent URL pattern with city subdomains and category codes (e.g., sfbay.craigslist.org/search/apa for San Francisco Bay Area apartments). Search results include listing IDs in URLs. Pagination uses s=120 style offset parameters. The HTML structure is simple and consistent across all Craigslist sites — making parsing straightforward without JavaScript rendering.

Common Data Fields

Typical fields available when extracting data from Craigslist:

Listing title
Listing price
Location (neighborhood or city)
Posting date
Listing description text
Category
Image URLs (when provided)
Attributes (bedrooms, size for housing; mileage, year for cars)
Repost history

Responsible Use

AlterLab is designed for extracting publicly available data. Always review the terms of service for any website you access, respect robots.txt directives, and ensure your use case complies with applicable laws in your jurisdiction. Do not use this service to access non-public, authenticated, or personally identifiable data without appropriate authorization.

Quick Start — Extract from Craigslist

cURL
# Always verify the target site's robots.txt and terms of service before extracting data.
curl -X POST https://alterlab.io/api/v1/scrape \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://sfbay.craigslist.org/search/apa",
    "advanced": { "render_js": true }
  }'

Need an API key? — no credit card required.

Python Example

Python
import requests

# Always verify the target site's robots.txt and terms of service before extracting data.
response = requests.post(
    "https://alterlab.io/api/v1/scrape",
    headers={
        "X-API-Key": "YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "url": "https://sfbay.craigslist.org/search/apa",
        "advanced": {"render_js": True},
    },
)

data = response.json()
print(data["content"][:500])  # First 500 chars of extracted content

Frequently Asked Questions

How do I extract Craigslist listings?

Send Craigslist search or listing URLs to AlterLab. The service returns listing titles, prices, locations, posting dates, and descriptions. No JavaScript rendering is needed for most pages.

Can I extract Craigslist apartment listings?

Yes. AlterLab handles Craigslist housing pages and returns rental prices, locations, bedrooms, square footage, and listing descriptions from public apartment listings.

Does AlterLab support multiple Craigslist cities?

Yes. Simply provide the city-specific Craigslist URL (e.g., sfbay.craigslist.org, newyork.craigslist.org) and AlterLab will extract listings from that region.

What Craigslist categories can I extract data from?

All Craigslist categories are accessible: housing (apa, roo, sub), jobs (web, sof, eng, etc.), for sale (fua, ele, bik, etc.), services, gigs, and community. Each category has a three-letter code in the URL.

How do Craigslist listing IDs work?

Each Craigslist listing has a unique numeric ID in its URL (e.g., craigslist.org/apa/d/listing-title/1234567890.html). This ID is stable for the lifetime of the posting and useful as a unique key when deduplicating listings collected at different times.

Can I get Craigslist listing photos?

Yes. Craigslist listing pages include image URLs in the photo section when the poster has added photos. AlterLab returns these image URLs in the rendered page content.

Related Use Cases

Business Data Guide

Your first scrape.
Sixty seconds.

$1 free credit — up to 5,000 scrapes. No credit card.Just a POST request.

terminal
curl -X POST https://api.alterlab.io/v1/scrape \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "formats": ["markdown"]}'

No credit card required · $1 free credit, up to 5,000 scrapes · Balance never expires

    Scrape Craigslist Data in 2026 — Anti-Bot Bypass | AlterLab