---
title: "Waitlist Broker Sync"
method: POST
path: "/api/waitlist/broker-sync"
tags: ["billing", "team"]
---

# Waitlist Broker Sync

`POST /api/waitlist/broker-sync`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/waitlist/broker-sync`
- Auth: none declared

Record interest in direct broker-sync for a specific broker.

F9 (Code-Review-Cowork audit 2026-05-12): the prior broker-modal
framed every broker as "coming Q2 2026" vaporware. The replacement
flow leads with CSV import + offers a per-broker "Notify me"
button. This route is what that button POSTs to.

Persistence strategy (MVP): emit a Sentry breadcrumb tagged
`broker_id`. No database write, no migration. If signups are
material (OWNER call after seeing breadcrumb counts), the route
promotes to a real `broker_waitlist` table with the standard
v{N}_*.py migration pattern. Keeping the MVP DB-free means F9
can ship the user-visible copy fix today without coupling to a
schema decision.

Rate-limit: shared per-endpoint limiter (anti-spam). No auth
required — the audit's framing was that free users should be
able to express interest without signing up first.

## Response `200`

Successful Response

- WaitlistResponse: Response for POST /api/waitlist/broker-sync (F9, audit 2026-05-12). Strict shape so the broker-modal click handler can branch deterministically on `ok`.
  - `ok` boolean, required: True iff the signup was recorded.
  - `broker_id` string, nullable: Echoed broker id, normalised to lowercase.
  - `message` string, nullable: Optional human-readable status.

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
