1. 游玩记录 (Records)
Milracle-v2
  • 认证 (Auth)
    • 重定向认证操作 (OIDC / GitHub OAuth 回调)
      GET
    • 认证操作
      POST
  • 谱面 (Charts)
    • 获取谱面列表或详情
      GET
    • 删除谱面
      DELETE
    • 删除谱面 (兼容旧客户端,使用 POST 代替 DELETE)
      POST
    • Studio 管理:获取审核队列(支持待审核 / 上架申请 / 已通过 / 已上架 / 已拒绝等)
      GET
    • Studio 操作:投票 / 申请上架 / 处理上架
      POST
  • 成绩 (Scores)
    • 获取成绩
      GET
    • 上传成绩
      POST
  • 游玩记录 (Records)
    • 获取游玩记录
      GET
    • 上传游玩记录
      POST
  • 资源包 (Resource Packs)
    • 获取资源包列表/详情或下载资源包
      GET
    • 上传资源包或审核资源包
      POST
  • 用户 (User)
    • 获取用户信息或用户列表
      GET
    • 用户操作(某些操作需管理员权限,例如修改其他用户)
      POST
  • 管理员 (Admin)
    • 管理员查询
      GET
    • 管理员更新
      PUT
  • 内容 (Content)
    • 获取内容
      GET
    • 创建内容
      POST
    • 更新内容
      PUT
    • 删除内容
      DELETE
  • 上传 (Upload)
    • 获取 presigned 上传地址 / 头像代理
    • 文件上传
  • 工具 (Utils)
    • 获取谱面元数据(不再服务端打包 zip)
  • 工单 (Tickets)
    • 工单: 列表 / 详情 / 统计
    • 工单: 创建 / 回复 / 认领 / 结案 / 驳回
  • 数据模型
    • User
    • Chart
    • ChartAsset
    • Error
    • Score
    • Record
    • ResourcePack
    • RecordProperties
  1. 游玩记录 (Records)

获取游玩记录

GET
/api/v2/records
action=getsong:按 chartId 获取单个谱面的游玩记录(按 score 从高到低);action=getall:分页获取全部游玩记录(按创建时间从新到旧)。除 download 外均需要 JWT 鉴权。chartId 为纯数字时按谱面 ID 匹配,否则按谱面哈希(chart_hash)匹配。返回 { data: { items, total } };每条记录包含 props(客户端写入的 MilRecord::Properties,服务端原样返回)、file_url(本地 RSA 私钥解密后的明文记录文件)、file_hash(file_url 对应文件的 SHA-512 十六进制摘要,供下载后校验)与 create_time(Unix 时间戳,秒,含小数)。action=download 为兼容用的下载入口:记录本身已存为明文,通常直接访问 file_url 即可;若存储对象仍是加密态,该入口会用本地 RSA 私钥现场解密后返回明文并回写存储。列表结果最多缓存 60 秒,因此新上传的记录可能延后最多 60 秒才出现在列表中。

请求参数

Authorization
JWT Bearer
在 Header 添加参数
Authorization
示例:
Authorization: ********************
or
Query 参数

请求示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location 'https://api.xhsr.org.cn/api/v2/records?action=&id=&chartId=&page=&limit=' \
--header 'Authorization: Bearer <token>'

返回响应

🟢200
application/json
成功。返回 { data: { items, total } };每条记录含 props、file_url、file_hash、create_time。
Bodyapplication/json

示例
{
    "data": {
        "items": [
            {
                "id": 0,
                "props": {
                    "username": "string",
                    "user_id": "string",
                    "online_id": "string",
                    "chart_hash": "string",
                    "chart_env": "string",
                    "game_version": "string",
                    "modifiers": "string",
                    "grade": "string",
                    "score": 0,
                    "score_accuracy": 0,
                    "score_exact_count": 0,
                    "score_perfect_count": 0,
                    "score_great_count": 0,
                    "score_good_count": 0,
                    "score_bad_count": 0,
                    "score_miss_count": 0,
                    "score_fracture_exact_count": 0,
                    "score_fracture_miss_count": 0,
                    "played_at": "string",
                    "extra_info": "string",
                    "property1": "string",
                    "property2": "string"
                },
                "file_url": "string",
                "file_hash": "string",
                "create_time": 0
            }
        ],
        "total": 0
    }
}
🔵302
🟠400
🟠401
🟠404
🔴500
修改于 2026-10-07 10:19:10
上一页
上传成绩
下一页
上传游玩记录
Built with