API Reference

The backend is a FastAPI application. In local development or deployed environments that keep FastAPI’s default documentation enabled, interactive schemas are typically available at /docs, /redoc, and /openapi.json.

Most product endpoints expect a bearer token issued through Supabase after the Sejong sign-in bootstrap flow.

Authentication and Onboarding

Method

Path

Purpose

POST

/api/auth/sejong/session

Validate Sejong credentials, bootstrap or look up the internal Supabase account, and return onboarding context

POST

/api/auth/send-welcome

Trigger welcome-email behavior

GET

/api/meta/onboarding

Return onboarding metadata

GET

/api/profiles/pseudonym-availability

Check whether a pseudonym can be used

POST

/api/profiles/onboarding

Create the initial student profile

Profiles, Discovery, and Social Graph

Method

Path

Purpose

GET

/api/profiles/{user_id}

Fetch the signed-in user’s full profile

PUT

/api/profiles/{user_id}

Update the signed-in user’s profile

GET

/api/profiles/{user_id}/public

Fetch the public profile view for another student

GET

/api/users/search

Search for users

GET

/api/recommendations/{user_id}

Fetch recommended users

GET

/api/matches

List matches

POST

/api/matches

Create a match request or record

PATCH

/api/matches/{match_id}

Update match state

DELETE

/api/matches/{match_id}

Remove a match

GET

/api/presence

List current presence information

PUT

/api/presence/me

Update the current user’s presence

Pulse Feed and Content

Method

Path

Purpose

GET

/api/pulses

List feed items

GET

/api/pulses/search

Search indexed pulses

GET

/api/pulses/{pulse_id}

Fetch a single pulse

POST

/api/pulses

Create a pulse

DELETE

/api/pulses/{pulse_id}

Remove a pulse

POST

/api/pulses/{pulse_id}/like

Toggle or record a reaction

GET

/api/pulses/{pulse_id}/comments

List comments for a pulse

POST

/api/pulses/{pulse_id}/comment

Add a comment

POST

/api/pulses/translate

Translate pulse content

POST

/api/feed-events

Record feed analytics or interaction events

Chat, Advisor, Channels, and Calls

Method

Path

Purpose

POST

/api/chat

Submit a chat request

POST

/api/chat/stream

Receive streaming chat responses

POST

/api/advisor/query

Legacy advisor-compatible chat request

POST

/api/chat/feedback

Submit turn-level feedback

POST

/api/chat/create-user

Provision or bootstrap chat identity

POST

/api/chat/notify-message

Trigger message notifications

POST

/api/chat/notify-call

Trigger call notifications

POST

/api/video/session

Create a LiveKit session token and metadata

GET

/api/channels

List channels

PUT

/api/channels/membership

Join or update channel membership

PUT

/api/channels/membership/role

Change membership roles

DELETE

/api/channels/membership/{channel_key}

Leave or remove membership

PUT

/api/channels/{channel_key}/pins

Manage pinned content in a channel

Notifications, Settings, Privacy, and Moderation

Method

Path

Purpose

GET

/api/notifications

List notifications

PATCH

/api/notifications/{notification_id}/read

Mark one notification as read

PATCH

/api/notifications/read-all

Mark all notifications as read

GET

/api/privacy/preferences

Fetch privacy settings

PUT

/api/privacy/preferences

Update privacy settings

GET

/api/settings/preferences

Fetch app-level preferences

PUT

/api/settings/preferences

Update app-level preferences

GET

/api/settings/sticker-packs

List sticker packs

POST

/api/settings/support-request

Send a support request

POST

/api/moderation/reports

Submit a moderation report

GET

/api/moderation/reports

List moderation reports

PATCH

/api/moderation/reports/{report_id}

Update moderation state

Billing

Billing routes are mounted through stitch/backend/controllers/billing_controller.py.

Method

Path

Purpose

GET

/api/billing/status

Return plan, credits, and billing status

POST

/api/billing/subscription/create

Create a subscription checkout

POST

/api/billing/subscription/activate

Activate a subscription after checkout

POST

/api/billing/subscription/cancel-renewal

Cancel renewal for an active subscription

POST

/api/billing/credit-packs/create-order

Create a credit-pack order

POST

/api/billing/credit-packs/capture-order

Capture a completed credit-pack order

POST

/api/billing/checkout/failure

Record a failed checkout attempt

POST

/api/billing/internal/renew-due

Internal renewal processing job endpoint

POST

/api/billing/paypal/webhook

Billing provider webhook ingestion

Health and Diagnostics

Method

Path

Purpose

GET

/

Simple root response

GET

/api/health

API health and startup diagnostics

GET

/api/recommendation/health

Recommendation-system health snapshot

Notes

  • Route coverage in this page is intentionally grouped for readability rather than generated directly from the OpenAPI schema.

  • For exact request and response payloads, use the live FastAPI schema from the running backend.