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.
{
"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.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Checking the posting by hand | Open the page and read it | Free, and slow | Fine for one ad, useless across a watchlist |
| Building a scraper | Write it, host it, and repair it when Craigslist changes the page | Engineering time | A maintenance commitment for something that isn't your product |
| NeuralVerge | One request per posting | $5 per 1,000, misses not billed | Returns what the posting shows at request time — ads get edited, flagged and removed |
What you get back
Every field in the response shown above.
| Field | Type | Description |
|---|---|---|
id | string | 22-character posting ID. |
posting_id | number | Numeric posting ID. |
posting_title | string | Posting title. |
url | string | Direct link to the posting. |
section | string | Top-level section, e.g. for_sale. |
category | string | Category name, e.g. electronics - by owner. |
category_id | number | Craigslist's numeric category ID. |
category_alias | string | Category alias, the value used for the category filter in searches. |
price | number | Asking price. |
price_string | string | Price formatted as displayed. |
description | string | Body text. |
body_html | string | Body as HTML. |
created_at | number | Unix timestamp of creation. |
updated_at | number | Unix timestamp of the last update. |
has_contact_info | boolean | Whether the posting has contact information. |
has_other_postings | boolean | Whether the posting flags other postings by the same seller. |
is_open_to_recruiters | null | Recruiter flag, relevant to job postings; null in the sample. |
company | null | Hiring company, relevant to job postings; null in the sample. |
repost_of_id | null | Original posting ID when this one is a repost; null in the sample. |
location | object | Area, subarea, description, neighbourhood, lat/lon and location type. |
image | string | Primary image URL. |
images | array | Image URLs. |
image_count | number | Number of images on the posting. |
attributes | array | Category attributes (key, label, value) with the search_filters that match each one, where one exists. |
vin_specs | array | Decoded VIN specification for vehicle postings; empty when there is none. |
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" }'What teams use it for
Where this field shows up in an actual workflow.
Read the asking price, condition and location of a specific ad.
Pull the attributes and decoded VIN spec of a car posting.
Capture the full text and dates of housing or job postings you track.
Use the attributes' search_filters to narrow a follow-up postings search.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Craigslist postings with a public posting page.
Read at request time.
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.
- —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.
Questions, answered
Yes — the posting field accepts either the 22-character posting ID or a full posting URL.
Related sources
Find postings by keyword, area and filters.
Everything else the posting's seller has published.
Category aliases for search filters.
Amazon, eBay, Walmart, AliExpress, Alibaba, Avito, Craigslist, Flipkart and Mercari product, seller and review data.
Try craigslist posting on your own data
One request format across every source in the catalog.