Ambassador
Campus ambassador program application intake.
Description
A deliberately small surface today: applying to become a campus ambassador, and checking your application status. There is no points, rewards, or redemption API yet — that system has not been built. Applications capture college name, graduation year (a real, validated 4-digit year), and a few short free-text answers, and are reviewed manually.
Off by default in production
The entire group is gated behind a feature flag (config.growth.ambassadorProgramEnabled), which
defaults off in production until explicitly enabled. Every route in this group returns 503
while the flag is off.
Authentication
All routes in this group require a session cookie — none accept an API key.
Available Endpoints
GET /ambassador/me— Get Ambassador StatusPOST /ambassador/apply— Apply For Campus Ambassador Program
Request Affiliate WithdrawalPOST
Requests a payout of available affiliate commission balance (minimum $25 / 2,500 cents). Payouts are reviewed and marked paid manually by an admin out-of-band (bank transfer, PayPal, etc) — Dodo Payments only exposes a read-only settlements API, not an outbound transfer API, so this cannot be automated end-to-end yet. Session-authenticated only.
Get Ambassador StatusGET
Returns the caller's current ambassador application status. This is intentionally a small surface today — application intake and status are the only things live. There is no points/rewards/redemption API yet; that system has not been built. Gated behind a feature flag (`config.growth.ambassadorProgramEnabled`) that defaults off in production until explicitly enabled — every route in this group returns `503` while the flag is off. Session-authenticated only.