Novus Founding Ambassador Platform
Mock API. Every endpoint returns the response envelope defined in docs/api-contract-v0.1.md. No database behind it yet, and the shapes will not change when there is one.
Triggering states
Append ?state= to any GET to exercise a state instead of the default. Screens need designed loading, empty, locked, stale, unavailable, suspended and error states, and this is how to see each one.
?state=ok?state=empty?state=locked?state=stale?state=unavailable?state=suspended?state=error
Example: /api/v1/dashboard/summary?state=unavailable returns data: null rather than zeros, because a zero is a claim that the ambassador earned nothing.
/api/v1/me also accepts ?state=not_authenticated, and POST /api/v1/applications accepts ?state=already_submitted.
Endpoints
GET | /api/v1/me | Account, role, program status, activation checklist |
POST | /api/v1/applications | Submit application. Validates and stamps consent server-side |
GET | /api/v1/learn | Chapters, progress, resume position |
POST | /api/v1/learn/{chapter_id}/progress | Save chapter progress |
GET | /api/v1/quiz | Knowledge check availability. No questions here |
POST | /api/v1/quiz/attempts | Start an attempt. Returns questions without answers |
POST | /api/v1/quiz/attempts/{id}/submit | Submit answers. Scored server-side |
GET | /api/v1/links | Both links. URL is null unless active |
GET | /api/v1/marketing/assets | Approved assets. Filter by audience_type or category |
GET | /api/v1/dashboard/summary | Referrals and earnings. pending = booked, inside the 30-day wait |
POST | /api/v1/help | Support request. No clinical route exists |
Deliberately unstyled
This page carries no design on purpose. The visual language is Andrés's to set, and a placeholder style is harder to remove than to never add.