Craigslist · craigslist-listings

Search Craigslist listings API

Craigslist listings for sale, housing, jobs, cars and services in any city: title, price, full description, photos, location with coordinates, category, attributes and posting date.
CraigslistWeblovelyjsoninput"cities": ["sfbay"]"category": "sss""searchQuery": "bicycle""maxItems": 3
Price
$0.0016 / listing
Results per run
20 default · up to 500
Billing
Only results delivered are billed. Failed runs pay no call fee.

Hand it to your AI agent

Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.

Use the Lovely Router data tool "Search Craigslist listings" (id `craigslist-listings`, Craigslist) to get data for me. It returns JSON.

- Docs (read first): https://lovelyrouter.com/docs/tools/run.md and https://lovelyrouter.com/docs/api/tools.md
- Input fields and price: GET https://lovelyrouter.com/v1/tools/craigslist-listings (public, no key needed). Price: $0.0016 / listing.
- Run: POST https://lovelyrouter.com/v1/tools/craigslist-listings/run with a body like `{"input":{"cities":["sfbay"],"category":"sss","searchQuery":"bicycle","maxItems":3},"max_results":10}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up (up to 500 per run).
- If you support MCP, you can instead connect the server https://lovelyrouter.com/mcp (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool with tool "craigslist-listings".
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.

My task: <describe the data you need, e.g. which places, profiles, keywords or URLs, and the output format>

Input

citiesarray

Craigslist city subdomains from the address bar, e.g. sfbay, newyork, miami, london. Several cities share maxItems.

categorystring

Section: sss for sale (all), apa apartments, hhh housing, cta cars & trucks, jjj jobs, ggg gigs, ccc community, bbb services.

apa · hhh · roo · sub · rea · sss · cta · mca · rva · boo · fua · ela

categoryCodestring

Any other section by its code (letters after /search/), e.g. sof software jobs, bik bicycles. Overrides category.

searchQuerystring

Words as typed into the Craigslist search box.

minPriceinteger

Optional. Only listings priced at least this much, in the city's own currency. Listings without a price are left out when a price limit is set.

maxPriceinteger

Optional. Only listings priced at most this much, in the city's own currency. Listings without a price are left out when a price limit is set.

sortstring

Order in which Craigslist returns listings — matters when you take fewer than all of them.

newest · oldest · priceasc · pricedsc · relevance

postedTodayboolean

Only listings posted today (Craigslist's own "posted today" filter).

hasImagesboolean

Only listings that have at least one photo (Craigslist's "has image" filter).

searchTitlesOnlyboolean

Match the keywords in listing titles only, not in the description. Ignored when there are no keywords.

startUrlsarray

Craigslist search pages, filtered in the browser, instead of cities.

maxItemsinteger

Listings in total across all cities.

Try it

Costs at most $0.016
Sign up to run
curl https://lovelyrouter.com/v1/tools/craigslist-listings/run \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{"input":{"cities":["sfbay"],"category":"sss","searchQuery":"bicycle","maxItems":3},"max_results":20}'
# MCP (agents): suggest_tools → get_tool → run_tool
run_tool({
  "tool": "craigslist-listings",
  "input": {"cities":["sfbay"],"category":"sss","searchQuery":"bicycle","maxItems":3},
  "max_results": 20
})

What it costs

ResultsRuns (at 500 per run)Cost
1001$0.16
1,0002$1.60
10,00020$16.00

Prepaid, no subscription. Fewer results than requested cost less. Pricing

Frequently asked questions

How much does the Search Craigslist listings API cost?

$0.0016 / listing. 1,000 results, fetched in runs of up to 500, cost $1.60. There is no subscription: you pay from a prepaid balance.

How many results does one run return?

20 by default and up to 500 per run. Set max_results to cap a run: you are billed only for the results it delivers.

Do I need a Craigslist account or API key?

No. You call the tool with your Lovely Router API key and get JSON back. There is nothing to set up on Craigslist.

Can an AI agent use this tool?

Yes. Connect Claude Code, Cursor or any MCP client to the Lovely Router MCP server: the agent finds the tool with suggest_tools and runs it with run_tool and the id craigslist-listings.

What happens if a run fails?

A run that fails or is stopped pays only for the results it delivered, with no call fee. The most a run can cost is held when it starts and the rest is released when it settles.

Related tools