Craigslist API
Craigslist has no API for reading listings. Its official interface only lets agents and their software upload their own listings. Listingrail reads live Craigslist rent and sale listings (United States) and returns them as JSON with one key, in the same format as the other 16 portals.
| Portal | Location | Type | Price | Remarks |
|---|---|---|---|---|
| Craigslist | Fremont CA | Rent | $2,635 | On market |
Is there an official Craigslist API?
Craigslist has no API for reading or searching listings. Its official Bulk Posting Interface (RSS/XML, plus a newer OAuth2 REST 'Bulkpost API') only submits paid postings for approved high-volume posters.
Access. Granted case by case to posters with hundreds of postings a month or more, in US paid categories only (jobs offered, NYC apartment rentals, for sale by dealer); request by phone (415-399-5200 x8283). Requires a craigslist account with prepaid posting blocks or an invoiced account.
Price. Normal per-posting fees of the category, paid by prepaid blocks, invoice or credit card; no API fee. The interface page publishes no amounts; fees by location are queryable through the Bulkpost API.
What the official route covers. Validating and posting your own ads, images, price changes on active posts, account balance.
What it does not. Reading or searching any listings, including your own beyond returned IDs/URLs; free categories; real estate by owner, sublets, parking & storage; areas outside the US for card payment.
Checked on 2026-10-15. Sources: craigslist Bulk Posting Interface · Craigslist Bulkpost API docs (OpenAPI)
Get Craigslist listings with Listingrail
POST this body to /v1/listings/search with your key. craigslist takes Craigslist site code, e.g. 'sfbay', 'newyork', 'losangeles'. One credit per listing returned; up to 500 per request.
{
"source": "craigslist",
"location": "sfbay",
"type": "rent",
"limit": 50
}Python
import requests
r = requests.post(
"https://listingrail.com/v1/listings/search",
headers={"Authorization": "Bearer YOUR_KEY"},
json={"source":"craigslist","location":"sfbay","type":"rent","limit":50},
timeout=180,
)
for home in r.json()["listings"]:
print(home["price"], home["currency"], home["address"], home["url"])JavaScript
const r = await fetch("https://listingrail.com/v1/listings/search", {
method: "POST",
headers: { Authorization: "Bearer YOUR_KEY", "content-type": "application/json" },
body: JSON.stringify({"source":"craigslist","location":"sfbay","type":"rent","limit":50}),
});
const { listings } = await r.json();
console.log(listings.length, listings[0]);Fields Craigslist fills
idurltitlecountrylatlngpricecurrencyprice_periodbedsbathsarealisted_atphotos
Not given by Craigslist to a visitor, so returned as null: address, city, region, postal_code, rooms, property_type, agent.name, agent.phone, agent.company.
Questions about the Craigslist API
Does Craigslist have a public API?
Craigslist has no API for reading listings. Its official interface only lets agents and their software upload their own listings. The details, with sources, are above on this page.
How do I get a Craigslist API key?
Officially: Granted case by case to posters with hundreds of postings a month or more, in US paid categories only (jobs offered, NYC apartment rentals, for sale by dealer); request by phone (415-399-5200 x8283). Listingrail gives you a key for Craigslist and 16 other portals at once: enter your email on the home page and the key comes with 100 free listings.
How much does the Craigslist API cost?
The official price list starts at a monthly fee a month. On Listingrail one listing returned costs one credit: 100 free once, then $29 a month for 10,000 listings ($0.0029 each) down to $0.0012 on the largest plan. Searches that find nothing are free.
Can I get Craigslist listings in Python or JavaScript?
Yes. Send one POST request to /v1/listings/search with "source": "craigslist" and a location; the examples on this page run as they are once you add your key.
Which Craigslist fields does the API return?
id, url, title, country, lat, lng, price, currency, price_period, beds, baths, area, listed_at, photos. Fields Craigslist does not show a visitor come back as null, and every listing also carries the portal's own record in "raw".
Is it allowed to use Craigslist data?
Listingrail reads what Craigslist shows any visitor, at the moment you ask. How you use it is up to you: check Craigslist's terms and the data-protection law that applies to you, especially before storing agent names or phone numbers.