Skip to main content
所有 Client API 前缀为 /api,除认证接口外均需在 Header 中携带 JWT Token:
Authorization: Bearer {access_token}

认证(Auth)

发送邮箱验证码

email
string
required
邮箱地址
purpose
string
required
用途:register | login | reset_password
属性
方法POST
路径/api/auth/email/send-code
鉴权
响应:
字段类型说明
okboolean是否成功
messagestring提示信息
expire_secondsint验证码有效期(秒),默认 600
cooldown_secondsint冷却时间(秒),默认 60

邮箱 + 验证码注册

属性
方法POST
路径/api/auth/register/code
鉴权
请求 Body:
字段类型必填说明
emailstring邮箱地址
passwordstring密码(最少 6 位)
confirm_passwordstring确认密码
codestring邮箱验证码
响应: TokenResponseaccess_token + token_type

邮箱 + 密码注册

属性
方法POST
路径/api/auth/register
鉴权
请求 Body:
字段类型必填说明
emailstring邮箱地址
passwordstring密码(最少 6 位)
confirm_passwordstring确认密码
响应: TokenResponse

邮箱 + 密码登录

属性
方法POST
路径/api/auth/login
鉴权
请求 Body:
字段类型必填说明
emailstring邮箱地址
passwordstring密码
响应: TokenResponse

邮箱 + 验证码登录

属性
方法POST
路径/api/auth/login/code
鉴权
请求 Body:
字段类型必填说明
emailstring邮箱地址
codestring邮箱验证码
响应: TokenResponse

重置密码

属性
方法POST
路径/api/auth/password/reset
鉴权
请求 Body:
字段类型必填说明
emailstring邮箱地址
codestring验证码
new_passwordstring新密码(最少 6 位)
confirm_passwordstring确认新密码
响应: ActionResponseok + message

小程序登录

属性
方法POST
路径/api/miniapp/auth/login
鉴权
请求 Body:
字段类型必填说明
codestringwx.login() 返回的 code
nicknamestring用户昵称
响应:
字段类型说明
access_tokenstringJWT Token
token_typestring固定 bearer
openidstring微信 OpenID

用户(User)

获取用户资料

属性
方法GET
路径/api/user/profile
鉴权JWT
响应:
字段类型说明
uuidstring用户唯一标识
nicknamestring用户昵称
ai_namestringAI 助手名称
ai_emojistringAI 助手头像 Emoji
platformstring当前来源平台
emailstring绑定邮箱
setup_stagestring引导阶段
binding_stageint绑定阶段

获取用户身份列表

属性
方法GET
路径/api/user/identities
鉴权JWT
响应: 身份对象数组,每项包含 platformplatform_idcreated_at

提交反馈

属性
方法POST
路径/api/user/feedback
鉴权JWT
请求 Body:
字段类型必填说明
contentstring反馈内容
contactstring联系方式
响应: FeedbackCreateResponseok + id

生成绑定码

属性
方法POST
路径/api/user/bind-code
鉴权JWT
请求 Body:
字段类型必填说明
platformstring来源平台
响应: BindCodeCreateResponseok + code + expires_in

消费绑定码

属性
方法POST
路径/api/user/bind-consume
鉴权JWT
请求 Body:
字段类型必填说明
codestring6 位绑定码
响应:
字段类型说明
okboolean是否成功
messagestring结果信息
canonical_user_idint合并后的主用户 ID
access_tokenstring如用户被合并则返回新 Token

对话(Chat)

获取聊天记录

属性
方法GET
路径/api/chat/history
鉴权JWT
查询参数:
参数类型默认说明
limitint50返回条数,1-200
响应: 消息对象数组(按时间正序):
字段类型说明
rolestringuserassistant
contentstring消息内容
created_atstring发送时间
image_urlsstring[]图片 URL 列表

发送消息

属性
方法POST
路径/api/chat/send
鉴权JWT
查询参数:
参数类型默认说明
streamboolfalse是否使用 SSE 流式响应
请求 Body:
字段类型必填说明
contentstring消息文本
image_urlsstring[]附带图片 URL
source_platformstring来源平台,默认 web
非流式响应:
{
  "responses": ["AI 回复内容"],
  "debug": { ... }
}
流式响应(SSE):
data: {"chunk": "AI"}
data: {"chunk": "回复"}
data: {"chunk": "内容"}
data: {"done": true, "debug": {...}}
流式模式返回 text/event-stream,每个 SSE event 的 data 为 JSON,包含 chunk(增量文本)或 done(完成标记)。

WebSocket 对话

详见 WebSocket 协议文档

会话管理(Conversations)

获取会话列表

属性
方法GET
路径/api/conversations
鉴权JWT
响应: ConversationResponse 数组:
字段类型说明
idint会话 ID
titlestring会话标题
summarystring会话摘要
last_message_atstring最后消息时间
activeboolean是否为当前活跃会话

获取当前会话

属性
方法GET
路径/api/conversations/current
鉴权JWT
响应: 单个 ConversationResponse

创建会话

属性
方法POST
路径/api/conversations
鉴权JWT
请求 Body:
字段类型必填说明
titlestring会话标题
响应: ConversationResponse

切换会话

属性
方法POST
路径/api/conversations/{conversation_id}/switch
鉴权JWT
响应: ConversationResponse

重命名会话

属性
方法PATCH
路径/api/conversations/{conversation_id}
鉴权JWT
请求 Body:
字段类型必填说明
titlestring新标题
响应: ConversationResponse

删除会话

属性
方法DELETE
路径/api/conversations/{conversation_id}
鉴权JWT
响应:
字段类型说明
okboolean是否成功
deleted_idint被删除的会话 ID
deleted_titlestring被删除的会话标题
active_conversationobject自动切换到的新活跃会话

账本(Ledger)

获取账本列表

属性
方法GET
路径/api/ledgers
鉴权JWT
查询参数:
参数类型默认说明
limitint30返回条数,1-200
before_idint-游标分页,返回此 ID 之前的记录
响应: LedgerItemResponse 数组:
字段类型说明
idint记录 ID
amountfloat金额
currencystring货币
categorystring分类
itemstring项目名称
transaction_datestring交易时间
created_atstring创建时间

创建账本记录

属性
方法POST
路径/api/ledgers
鉴权JWT
请求 Body:
字段类型必填说明
amountfloat金额
categorystring分类,默认”其他”
itemstring项目名称,默认”手动记录”
transaction_datestring交易时间(ISO 8601)
响应: LedgerItemResponse

更新账本记录

属性
方法PATCH
路径/api/ledgers/{ledger_id}
鉴权JWT
请求 Body:
字段类型必填说明
amountfloat金额
categorystring分类
itemstring项目名称
响应: LedgerItemResponse

删除账本记录

属性
方法DELETE
路径/api/ledgers/{ledger_id}
鉴权JWT
响应: { "ok": true, "id": 123 }

账本统计

属性
方法GET
路径/api/stats/ledger
鉴权JWT
查询参数:
参数类型默认说明
scopestring-范围:day / week / month
daysint30统计天数(1-365),scope 为空时生效

日历视图

属性
方法GET
路径/api/calendar
鉴权JWT
查询参数:
参数类型默认说明
start_datestring本月 1 日起始日期(YYYY-MM-DD)
end_datestring下月 1 日结束日期(YYYY-MM-DD),不含
响应:
{
  "start_date": "2026-03-01",
  "end_date": "2026-04-01",
  "days": [
    {
      "date": "2026-03-01",
      "ledger_total": -150.0,
      "ledger_count": 3,
      "schedule_count": 1,
      "ledgers": [...],
      "schedules": [...]
    }
  ]
}

日程(Schedule)

获取日程列表

属性
方法GET
路径/api/schedules
鉴权JWT
查询参数:
参数类型默认说明
limitint50返回条数,1-200
响应: ScheduleItemResponse 数组:
字段类型说明
idint日程 ID
contentstring提醒内容
trigger_timestring触发时间
statusstring状态:PENDING / COMPLETED / CANCELLED
created_atstring创建时间

创建日程

属性
方法POST
路径/api/schedules
鉴权JWT
请求 Body:
字段类型必填说明
contentstring提醒内容
trigger_timestring触发时间(ISO 8601)
响应: ScheduleItemResponse

更新日程

属性
方法PATCH
路径/api/schedules/{schedule_id}
鉴权JWT
请求 Body:
字段类型必填说明
contentstring新提醒内容
trigger_timestring新触发时间
statusstring新状态
响应: ScheduleItemResponse

删除日程

属性
方法DELETE
路径/api/schedules/{schedule_id}
鉴权JWT
响应: { "ok": true, "id": 123 }

技能(Skills)

获取技能列表

属性
方法GET
路径/api/skills
鉴权JWT
响应: SkillItemResponse 数组:
字段类型说明
slugstring技能标识
namestring技能名称
descriptionstring技能描述
statusstring状态:DRAFT / PUBLISHED / DISABLED / BUILTIN
active_versionint当前激活版本号
sourcestring来源:user / builtin
read_onlyboolean是否只读

获取技能详情

属性
方法GET
路径/api/skills/{slug}
鉴权JWT
查询参数:
参数类型默认说明
sourcestringuser来源:user / builtin
响应:SkillItemResponse 基础上增加 content_md(Markdown 内容)。

创建 / 更新草稿

属性
方法POST
路径/api/skills/draft
鉴权JWT
请求 Body:
字段类型必填说明
requeststring用户对技能的描述或修改请求
skill_slugstring已有技能的 slug(编辑模式)
skill_namestring技能名称
响应:
字段类型说明
slugstring技能标识
versionint草稿版本号
statusstring状态
content_mdstring生成的 Markdown 内容

发布技能

属性
方法POST
路径/api/skills/{slug}/publish
鉴权JWT
响应: SkillItemResponse

禁用技能

属性
方法POST
路径/api/skills/{slug}/disable
鉴权JWT
响应: SkillItemResponse

MCP 工具

获取工具列表

属性
方法GET
路径/api/mcp/tools
鉴权JWT
响应: 工具对象数组:
字段类型说明
namestring工具名称
descriptionstring工具描述

抓取 URL 内容

属性
方法POST
路径/api/mcp/fetch
鉴权JWT
请求 Body:
字段类型必填说明
urlstring目标 URL
max_lengthint最大返回长度
start_indexint起始偏移
rawbool是否返回原始内容
响应: { "content": "..." }

配置(Config)

获取小程序首页弹窗配置

属性
方法GET
路径/api/config/miniapp/home-popup
鉴权
响应:
字段类型说明
enabledboolean是否启用
titlestring弹窗标题
contentstring弹窗内容
show_modestring展示模式:once_per_day
versionint配置版本号
activeboolean当前是否生效(考虑时间窗口)
server_timestring服务器当前时间