Discover/Craigslist API
live

Craigslist APInewyork.craigslist.org

Search and retrieve NYC Craigslist apartment listings by neighborhood, bedrooms, price, and images. Get full listing details including address, photos, and coordinates.

Endpoint health
verified 4d ago
get_listing_details
search_apartments
2/2 passing latest checkself-healing
Endpoints
2
Updated
21d ago

What is the Craigslist API?

The Craigslist Apartments API exposes 2 endpoints for searching and retrieving New York City rental listings from Craigslist. The search_apartments endpoint returns up to 360 listing summaries per call — including price, bedroom count, square footage, neighborhood, coordinates, and thumbnail — while get_listing_details returns the full record for a single listing by its numeric Craigslist ID, including all images, address, and bathroom count.

Try it
Sort order for results.
Search keyword to filter listings by title and description text.
Only show listings with images: 1 (yes) or 0 (no).
Craigslist subarea code for the target city region (e.g. mnh for Manhattan, brk for Brooklyn, que for Queens, eby for East Bay). Varies by metro area.
Maximum monthly rent in USD (numeric string, e.g. '5000').
Minimum monthly rent in USD (numeric string, e.g. '1000').
Maximum number of results to return (up to 360).
Maximum number of bedrooms (numeric string, e.g. '3').
Minimum number of bedrooms (numeric string, e.g. '1').
Comma-separated neighborhood names or numeric codes to filter results within the selected subarea. Manhattan examples: chelsea, soho, east village, west village, greenwich village, lower east side, upper east side, upper west side, harlem, tribeca, midtown east, midtown west, hells kitchen, gramercy park, financial district, battery park city, murray hill, kips bay, stuyvesant town, chinatown, nolita, inwood, washington heights, hamilton heights, morningside heights, east harlem, marble hill. Unrecognized names are silently ignored.
api.parse.bot/scraper/bc4986ba-495e-47ed-82af-0bcd31334217/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/bc4986ba-495e-47ed-82af-0bcd31334217/search_apartments?sort=date&query=luxury&has_pic=1&subarea=mnh&max_price=10000&min_price=1000&max_results=5&max_bedrooms=4&min_bedrooms=1&neighborhoods=chelsea' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace craigslist-apartments-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Craigslist apartment search — bounded, re-runnable."""
from parse_apis.craigslist_apartment_listings_api import (
    Craigslist, Sort, Subarea, HasPic, ListingNotFound
)

client = Craigslist()

# Search Manhattan apartments with filters, capped at 5 results.
for listing in client.listings.search(
    subarea=Subarea.MNH,
    neighborhoods="chelsea,east village",
    min_bedrooms="1",
    max_price="5000",
    has_pic=HasPic.YES,
    sort=Sort.PRICE_ASC,
    limit=5,
):
    print(listing.title, listing.formatted_price, listing.neighborhood)

# Drill into a single listing for full details via refresh.
listing = client.listings.search(
    subarea=Subarea.BRK, min_bedrooms="2", limit=1
).first()
if listing:
    detail = listing.refresh()
    print(detail.title, detail.price, detail.address, detail.image_count)

# Typed error handling for an expired listing.
if listing:
    try:
        refreshed = listing.refresh()
        print(refreshed.description, refreshed.posted_date)
    except ListingNotFound as exc:
        print(f"Listing expired: {exc.listing_id}")

print("exercised: listings.search / listing.refresh / ListingNotFound catch")
All endpoints · 2 totalmissing one? ·

Full-text search over apartment listings in a Craigslist metro subarea. Filters by neighborhood codes/names, bedroom count, price range, and image presence. Returns up to max_results listing summaries sorted by the chosen order. Pagination is not supported — the single response contains all matching results up to the cap (max 360). Neighborhood names are resolved to Craigslist numeric codes internally; unrecognized names are silently ignored.

Input
ParamTypeDescription
sortstringSort order for results.
querystringSearch keyword to filter listings by title and description text.
has_picstringOnly show listings with images: 1 (yes) or 0 (no).
subareastringCraigslist subarea code for the target city region (e.g. mnh for Manhattan, brk for Brooklyn, que for Queens, eby for East Bay). Varies by metro area.
max_pricestringMaximum monthly rent in USD (numeric string, e.g. '5000').
min_pricestringMinimum monthly rent in USD (numeric string, e.g. '1000').
max_resultsstringMaximum number of results to return (up to 360).
max_bedroomsstringMaximum number of bedrooms (numeric string, e.g. '3').
min_bedroomsstringMinimum number of bedrooms (numeric string, e.g. '1').
neighborhoodsstringComma-separated neighborhood names or numeric codes to filter results within the selected subarea. Manhattan examples: chelsea, soho, east village, west village, greenwich village, lower east side, upper east side, upper west side, harlem, tribeca, midtown east, midtown west, hells kitchen, gramercy park, financial district, battery park city, murray hill, kips bay, stuyvesant town, chinatown, nolita, inwood, washington heights, hamilton heights, morningside heights, east harlem, marble hill. Unrecognized names are silently ignored.
Response
{
  "type": "object",
  "fields": {
    "listings": "array of listing summary objects with id, title, price, formatted_price, bedrooms, sqft, neighborhood, latitude, longitude, url, thumbnail_url, images, image_count",
    "total_results": "integer total number of matching listings on Craigslist",
    "returned_results": "integer number of listings returned in this response (capped by max_results)"
  }
}

About the Craigslist API

What the API Returns

The search_apartments endpoint accepts filters for price range (min_price, max_price), bedroom count (max_bedrooms), subarea code (subarea), image availability (has_pic), and a freeform query keyword. Results include a listings array where each object carries id, title, price, formatted_price, bedrooms, sqft, neighborhood, latitude, longitude, url, and thumbnail. The response also includes total_results (total matching listings on Craigslist) and returned_results (how many were returned in this call, capped at max_results up to 360).

Subarea Codes and Sorting

Craigslist divides New York into subareas — mnh for Manhattan, brk for Brooklyn, and so on. Pass the appropriate code via subarea to scope your search. The sort parameter accepts date (newest first), dateoldest, priceasc, or pricedsc, letting you retrieve the most recent listings or sort by rent without any post-processing.

Listing Details

get_listing_details takes a required listing_id (the numeric Craigslist ID, e.g. 7934124704) and an optional subarea. It returns a single object with id, url, title, price, sqft, bedrooms, bathrooms, address, latitude, longitude, and an images array containing all photo URLs attached to the listing. This is the endpoint to use when you need the full image gallery or the precise street address rather than just the neighborhood label.

Coverage Scope

The API targets the New York City regional Craigslist site. Subarea codes correspond to NYC boroughs and neighborhoods. Listings reflect what is currently active on Craigslist; there is no historical archive of expired or deleted postings.

Reliability & maintenanceVerified

The Craigslist API is a managed, monitored endpoint for newyork.craigslist.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when newyork.craigslist.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official newyork.craigslist.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a rental search app that filters Manhattan listings by max price and minimum bedroom count.
  • Monitor newly posted apartments in a specific borough using sort=date and subarea filters.
  • Aggregate listing thumbnails and coordinates to plot available rentals on a map.
  • Alert users when listings matching their keyword query and price range appear.
  • Collect sqft and price data across subareas to analyze rent-per-square-foot trends.
  • Display full photo galleries and street addresses for saved listings using get_listing_details.
  • Filter listings with has_pic=1 to exclude text-only posts from a user-facing rental feed.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Craigslist have an official developer API?+
No. Craigslist does not offer a public developer API or documented data access program.
What does `get_listing_details` return that `search_apartments` does not?+
get_listing_details returns the full images array (all listing photos, not just the thumbnail), a bathrooms count, and a street-level address string. The search endpoint returns only a single thumbnail URL and a neighborhood label without a specific street address.
How many results can `search_apartments` return in one call?+
The max_results parameter caps results at 360 per call. The total_results field in the response tells you the full count of matching listings so you know whether your query was truncated. There is no built-in pagination offset parameter in the current API, so queries returning more than 360 matches will not surface the full set.
Does the API cover Craigslist apartment listings outside New York City?+
Not currently. The API targets the New York City Craigslist region and its subareas (Manhattan, Brooklyn, etc.). You can fork it on Parse and revise it to point at other Craigslist regional domains such as sfbay.craigslist.org or chicago.craigslist.org.
Does the API return listing description text?+
Not currently. The search_apartments endpoint returns summaries, and get_listing_details exposes address, images, coordinates, price, and bedroom/bathroom counts but does not include the free-text description body. You can fork this API on Parse and revise it to add description extraction from the listing detail response.
Page content last updated . Spec covers 2 endpoints from newyork.craigslist.org.
Related APIs in Real EstateSee all →
craigslist.org API
Search and retrieve Craigslist listings for apartments, vehicles, jobs, services, and other categories across all regional sites to find exactly what you're looking for. Get detailed information about specific listings, browse by location and category, and compare options all in one place.
craigslist.org API
Search Craigslist listings across any region and instantly access structured data including prices, locations, coordinates, images, and direct URLs. Find exactly what you're looking for with organized sale listings that are easy to filter and analyze.
streeteasy.com API
Search and browse NYC apartment rentals to find detailed property information including photos, amenities, pricing, and direct contact details for brokers and agents. Filter through available listings and access comprehensive rental data to help you discover your next home in New York City.
losangeles.craigslist.org API
Search and browse Craigslist Los Angeles listings with powerful filtering options, including keyword search, price ranges, category filters, and location-based results. Retrieve full listing details across all major categories including for sale, housing, jobs, and more.
rentals.ca API
Search and browse rental listings across Canada by city or neighbourhood, and view detailed property information including prices, amenities, and availability. Find your next home by filtering thousands of rental properties on Rentals.ca in real-time.
apartments.com API
Search thousands of apartment listings, view detailed property information including amenities and pricing, and discover properties managed by specific companies all in one place. Find your ideal rental by filtering through available apartments and learning more about the management companies behind them.
rent.com API
Browse and extract rental property data from Rent.com. Search listings by location and filter by beds, baths, price, and pet policy. Retrieve full property details, floor plans, unit availability, amenities, nearby schools, points of interest, and active specials.
padmapper.com API
Search and browse rental listings across cities with detailed property information including prices, contact details, and market trends. Discover apartments and homes through city-wide searches or map-based exploration, and access comprehensive listing details to help you find your next rental.