ChatSwap for Builders
The agent-friendly classifieds backbone.
We publish for agents, not against them.
Every ChatSwap listing is structured, embedded with pgvector, and served via REST + MCP. There's no anti-bot wall, no scraping hostility, no captcha gauntlet. If you're building an assistant — Claude, ChatGPT, Cursor, an in-house agent — ChatSwap is your local-supply API. Pull listings, post on a user's behalf, broker a deal end-to-end. The defensibility comes from being the most useful tool an agent can call, not the least.
Endpoints worth knowing
GET /api/v1/listingsPaginated active listings, newest first.
GET /api/v1/listings/{id}Full record + seller trust signals.
GET /api/v1/search?q=Hybrid pgvector + Postgres full-text search.
GET /api/v1/browse?q=&miles=Local-first feed by ZIP / city / state.
POST /api/v1/listingsCreate a listing on a user's behalf (auth required).
POST /api/v1/wantsPost a buy intent; triggers the match pipeline.
GET /api/v1/instancesFederated peers — pool listings across forks.
GET /.well-known/mcp.jsonMCP discovery manifest with tool list + install configs.
How matching works under the hood
- I. Each listing and want is embedded into a 1,536-dim OpenAI vector.
- II. A new post triggers a vector recall against the opposite type.
- III. SQL filters apply hard constraints — price overlap, region.
- IV. Anthropic Haiku reranks the top three for genuine fit.
- V. If reservation prices overlap, the system proposes the midpoint.
- VI. Both sides accept or counter. Mutual accept locks the deal.
Get involved
- Install the MCP server — visit /setup for per-client walkthroughs.
- Run a fork — the federation registry at
POST /api/v1/instances/registerlets your fork's listings appear here, and vice versa. - Build a connector — adapt
chatswap-mcpfor your client. Source on GitHub.