{"app":"onlycrush-backend","version":"0.13.0","endpoints":{"websocket":["WS  /ws?token=<accessToken>   — events: connected/message.new/message.delta/message.complete/typing"],"iap":["GET  /api/products              — public catalog","POST /api/iap/verify            — verify StoreKit 2 signed transaction","POST /webhooks/apple-iap        — Apple S2S V2 notifications","GET  /api/user/me/iap/history   — my purchase history","POST /api/pay/wechat/order      — create WeChat Pay App-payment prepay","POST /webhooks/wechat-pay       — WeChat Pay async notification"],"auth":["POST /api/auth/phone/otp        — request SMS code","POST /api/auth/phone/verify     — verify code + login/register","POST /api/auth/apple            — sign in with Apple","POST /api/auth/wechat           — wechat oauth (stubbed)","POST /api/auth/refresh          — rotate refresh → new tokens","POST /api/auth/logout           — revoke refresh token","GET  /api/auth/me               — am I logged in?","GET  /api/auth/sessions         — my active devices"],"read":["GET /health","GET /health/db","GET /health/redis","GET /health/all","GET /api/user/me/timeline","GET /api/user/me/devices","GET /api/characters","GET /api/characters/:slug","GET /api/characters/:slug/moments","GET /api/characters/:slug/chapters","GET /api/gifts","GET /api/gifts/sent","GET /api/card-pools","GET /api/card-pools/:slug","GET /api/card-pools/:slug/pulls","GET /api/user/me","GET /api/user/me/characters","GET /api/user/me/cards","GET /api/user/me/cards/:cardId         — 单卡详情 (#0428 序号 + 解锁剧情 + pull 历史)","GET /api/user/me/custom-characters     — 我的专属 Crush 列表","GET /api/onboarding","GET /api/chat/sessions","GET /api/chat/sessions/:id/messages","GET /api/voice-calls","GET /api/user/me/preferences           — 设置页 toggles (push/DND/teen mode/lang/dark)","GET /api/user/me/notifications         — 通知中心 (tab=all|unread|social|system)","GET /api/user/me/notifications/unread-count","GET /api/user/me/data-export           — latest export status + signed URL","GET /api/user/me/data-exports          — history","GET /api/support/faqs                  — 客服 chips (categorized)","GET /api/support/tickets               — my tickets","GET /api/support/tickets/:id/messages  — ticket conversation","GET /api/user/me/check-in/today        — today claim state + cycle table","GET /api/user/me/check-in/calendar?month=YYYY-MM"],"write":["POST /api/uploads/sign","POST /api/user/me/devices","DELETE /api/user/me/devices/:token","POST /api/onboarding","POST /api/chat/sessions","POST /api/chat/sessions/:id/messages","POST /api/card-pools/:slug/pull","POST /api/gifts/send","PATCH /api/user/me","PATCH /api/user/me/cards/:cardId/favorite","PATCH /api/user/me/characters/:slug/pin","POST /api/user/me/recharge","POST /api/voice-calls","PATCH /api/voice-calls/:id/end","POST /api/voice-calls/:id/realtime-token  — mint Volcengine 豆包实时语音 session","POST /api/chat/messages/:id/tts           — MiniMax 海螺 TTS for an AI message (cached on Message.audioKey)","PATCH /api/user/me/preferences          — toggle push/DND/teen mode/lang/dark/...","PATCH /api/user/me/notifications/:id/read","POST  /api/user/me/notifications/read-all  — \"全部已读\"","POST  /api/user/me/data-export          — kick off data export (rate-limited 1/day)","POST  /api/support/tickets              — open ticket + first AI reply","POST  /api/support/tickets/:id/messages — send msg in ticket (AI replies inline)","POST  /api/support/tickets/:id/escalate — 转人工","PATCH /api/support/tickets/:id/close","POST  /api/user/me/check-in/claim       — daily check-in (idempotent, UTC+8 day)","POST  /api/user/me/custom-characters    — 创建专属 Crush (Onboarding finish)","PATCH /api/user/me/custom-characters/:slug","DELETE /api/user/me/custom-characters/:slug","POST  /api/chat/sessions/:id/mark-read  — 进入会话标记已读","DELETE /api/user/me                 — soft-delete account (App Store 5.1.1(v))"]}}