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/listings

Paginated 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/listings

Create a listing on a user's behalf (auth required).

POST /api/v1/wants

Post a buy intent; triggers the match pipeline.

GET /api/v1/instances

Federated peers — pool listings across forks.

GET /.well-known/mcp.json

MCP discovery manifest with tool list + install configs.

How matching works under the hood

  1. I. Each listing and want is embedded into a 1,536-dim OpenAI vector.
  2. II. A new post triggers a vector recall against the opposite type.
  3. III. SQL filters apply hard constraints — price overlap, region.
  4. IV. Anthropic Haiku reranks the top three for genuine fit.
  5. V. If reservation prices overlap, the system proposes the midpoint.
  6. 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/register lets your fork's listings appear here, and vice versa.
  • Build a connector — adapt chatswap-mcp for your client. Source on GitHub.