nvNeuralVerge
E-commerce & Marketplaces

Craigslist Posting Data — Price, Body, Attributes & Location

Send a Craigslist posting ID or URL and this source returns the posting as structured data: title, price, body text and HTML, category attributes, images, location and dates.

Example response
{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "craigslist_postings",
  "posting": "2BsVfSUfZ3t4jqHF9sYzJL",
  "human": "# Craigslist posting\n\n- **Posting:** 2BsVfSUfZ3t4jqHF9sYzJL\n- **Proxy traffic:** 2.3 KB\n- **Title:** Apple Magic Mouse 2 (Model A1657) Wireless Bluetooth + Cable\n- **Price:** $30\n- **Location:** peninsula, SF bay area\n- **Category:** electronics - by owner\n- **Posted:** 2026-09-30T07:57:00.000Z",
  "machine": {
    "posting": {
      "id": "2BsVfSUfZ3t4jqHF9sYzJL",
      "posting_id": 7975325586,
      "posting_title": "Apple Magic Mouse 2 (Model A1657) Wireless Bluetooth + Cable",
      "url": "https://www.craigslist.org/view/d/pacifica-apple-magic-mouse-model-a1657/2BsVfSUfZ3t4jqHF9sYzJL",
      "section": "for_sale",
      "category": "electronics - by owner",
      "category_id": 96,
      "category_alias": "ele",
      "price": 30,
      "price_string": "$30",
      "description": "Selling an authentic Apple Magic Mouse 2 (Model A1657) with built-in rechargeable battery and Multi-Touch surface.\n\nModel: Apple Magic Mouse 2 (A1657 / MLA02LL/A)\n\nFeatures: Wireless Bluetooth connect",
      "body_html": "Selling an authentic Apple Magic Mouse 2 (Model A1657) with built-in rechargeable battery and Multi-Touch surface.   <br>\n<br>\nModel: Apple Magic Mouse 2 (A1657 / MLA02LL/A)   <br>\n<br>\nFeatures: Wire",
      "created_at": 1790755020,
      "updated_at": 1790754780,
      "has_contact_info": true,
      "has_other_postings": false,
      "is_open_to_recruiters": null,
      "company": null,
      "repost_of_id": null,
      "location": {
        "area_id": 1,
        "area_alias": "sfbay",
        "subarea_alias": "pen",
        "description": "Pacifica",
        "neighborhood": null,
        "lat": 37.5902,
        "lon": -122.4768,
        "area_code": "sfo",
        "area": "SF bay area",
        "subarea": "peninsula",
        "address": null,
        "full_address": null,
        "location_type": "area"
      },
      "image": "https://images.craigslist.org/00t0t_7GNxCOqiva5_0t20CI_600x450.jpg",
      "images": [
        "https://images.craigslist.org/00t0t_7GNxCOqiva5_0t20CI_600x450.jpg",
        "https://images.craigslist.org/00U0U_7KWh8rxDWPP_0CI0n0_600x450.jpg"
      ],
      "image_count": 4,
      "attributes": [
        {
          "key": "condition",
          "label": "condition",
          "value": "excellent",
          "special_type": "key_value",
          "search_filters": {
            "condition": "30"
          }
        },
        {
          "key": "sale_manufacturer",
          "label": "make / manufacturer",
          "value": "Apple",
          "special_type": "key_value",
          "search_filters": null
        }
      ],
      "vin_specs": []
    },
    "proxy_traffic_bytes": 2339
  },
  "total_points": 5
}
You send
A Craigslist posting ID (22 characters) or URL
You get back
Title, price, body text and HTML, category attributes with matching search filters, images, location and dates
Coverage
Craigslist postings with a public posting page.
Price
5 pts — $5 per 1,000
Charged only when the posting resolves. A posting ID or URL that doesn't resolve is not billed.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Checking the posting by handOpen the page and read itFree, and slowFine for one ad, useless across a watchlist
Building a scraperWrite it, host it, and repair it when Craigslist changes the pageEngineering timeA maintenance commitment for something that isn't your product
NeuralVergeOne request per posting$5 per 1,000, misses not billedReturns what the posting shows at request time — ads get edited, flagged and removed
Response

What you get back

Every field in the response shown above.

FieldTypeDescription
idstring22-character posting ID.
posting_idnumberNumeric posting ID.
posting_titlestringPosting title.
urlstringDirect link to the posting.
sectionstringTop-level section, e.g. for_sale.
categorystringCategory name, e.g. electronics - by owner.
category_idnumberCraigslist's numeric category ID.
category_aliasstringCategory alias, the value used for the category filter in searches.
pricenumberAsking price.
price_stringstringPrice formatted as displayed.
descriptionstringBody text.
body_htmlstringBody as HTML.
created_atnumberUnix timestamp of creation.
updated_atnumberUnix timestamp of the last update.
has_contact_infobooleanWhether the posting has contact information.
has_other_postingsbooleanWhether the posting flags other postings by the same seller.
is_open_to_recruitersnullRecruiter flag, relevant to job postings; null in the sample.
companynullHiring company, relevant to job postings; null in the sample.
repost_of_idnullOriginal posting ID when this one is a repost; null in the sample.
locationobjectArea, subarea, description, neighbourhood, lat/lon and location type.
imagestringPrimary image URL.
imagesarrayImage URLs.
image_countnumberNumber of images on the posting.
attributesarrayCategory attributes (key, label, value) with the search_filters that match each one, where one exists.
vin_specsarrayDecoded VIN specification for vehicle postings; empty when there is none.
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

One posting per request; posting accepts the 22-character posting ID or a full URL. Pass a posting to Craigslist seller postings to see everything else its seller has published.

curl -X POST https://api.neuralverge.ai/functions/v1/run-craigslist-postings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "posting": "2BsVfSUfZ3t4jqHF9sYzJL" }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Price checks

Read the asking price, condition and location of a specific ad.

Vehicle research

Pull the attributes and decoded VIN spec of a car posting.

Rental and job monitoring

Capture the full text and dates of housing or job postings you track.

Building search filters

Use the attributes' search_filters to narrow a follow-up postings search.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Craigslist postings with a public posting page.

Freshness

Read at request time.

Handling

This source returns publicly visible posting information, stamped with the posting ID it was read from and a session id you can trace. Postings can include personal details in their text, so handle them under your own privacy obligations.

What it will not do
  • —Postings are edited, expired and removed often; the response reflects the moment of the request.
  • —Attributes depend on the category and on what the poster filled in.
  • —VIN specs and company details only appear on postings of the matching type.
FAQ

Questions, answered

Yes — the posting field accepts either the 22-character posting ID or a full posting URL.

Related

Related sources

Try craigslist posting on your own data

One request format across every source in the catalog.

Get started