What you get backNine columns,
one row per listing.
What the board shows about each posting: what it is, what it costs, what condition the seller claims, where it is, and where to go and look at it.
Two of these columns behave in ways worth knowing before you build on them, so they are called out in the table rather than left for you to trip over. price is a string and uses -1 to mean no price was posted, so a naive cast to number pulls every average down. And description is a preview capped at 500 characters, not the full posting; longer bodies stop mid-word at exactly that length.
The column set, the sentinel and the truncation are properties of the export and hold regardless of what you query. How often the optional fields carry a value is a different matter - that moves with the category, the board you point it at and how many rows you take.
Scrape Craigslist listings into a spreadsheet
Livescraper's Craigslist Scraper turns a classifieds search into a dataset. You submit a Craigslist search URL or a single listing URL - typed one per line, or uploaded as a CSV, XLSX, TXT or Parquet file - set a limit per query if you want one, and download the results as a clean CSV, Excel or JSON file. One row per listing, numbered in the order the board returned it.
Each row carries the listing title as the seller wrote it, the asking price and its currency, the condition they selected where they set one, the neighbourhood they posted under, a link to the posting, its photo, and a preview of the description. Nine columns in the file, with a tenth in the JSON carrying the result rank.
Resellers pull every listing for the thing they deal in and read the prices as a distribution rather than a feed. Operations teams use the neighbourhood column to turn one city search into a map of where supply actually sits. Researchers run the same search on a schedule, because secondhand pricing moves quickly and a single snapshot cannot show a trend.
Two properties of this export are worth knowing before you write code against it. The price column is a string and uses -1 to mean no price was posted, so cast it naively and every average you compute drifts downward - filter those rows first. And the description is a preview capped at 500 characters, cut mid-word at the limit, rather than the full posting. Start free: your first 500 rows cost nothing and need no credit card, and after that it is $0.002 per row, flat.