Skip to content

Cloud Save ​

The Cloud Save API lets an authenticated user inspect their own save summary and request a URL for the save file. Both endpoints require milthm:save:read.

Save Metadata ​

http
GET /v1/game/save/info
Authorization: Bearer ACCESS_TOKEN

The response data has this shape:

ts
export interface SaveInfo {
    meta: string;
    updated_at: string;
}

updated_at is an RFC 3339 timestamp. meta is a JSON document encoded as a string, so parse data.meta separately.

Save Metadata Fields ​

ts
export interface SaveInfoMeta {
    m_count: number;
    ss_count: number;
    s_count: number;
    a_count: number;
    b_count: number;
    c_count: number;
    f_count: number;

    rr_count: number;
    ap_count: number;
    fc_count: number;
    complete_count: number;

    date: string;
    hash: string;
    installation_id: string;
    reality_value: number;
}
FieldDescription
m_count through f_countCounts for each recorded grade.
rr_countCount of Rhythm of Rain results.
ap_countCount of All Perfect results.
fc_countCount of Full Combo results.
complete_countCount of completed records.
dateRFC 3339 timestamp recorded in the metadata.
hashSave hash recorded by Milthm.
installation_idInstallation identifier recorded by Milthm.
reality_valueReality value recorded with the save summary.

The metadata is a summary, not the save file itself.

Download URL ​

http
GET /v1/game/save
Authorization: Bearer ACCESS_TOKEN

Response type:

ts
export interface DownloadSave {
    file_url: string;
}

Each user can request a download URL up to five times per calendar day. Calling this endpoint to obtain a URL consumes one request; downloading from the returned URL does not request another URL from this endpoint.

Treat file_url as sensitive and temporary. Use it promptly, do not publish it, and do not store it in logs.

Errors ​

Both endpoints may return the common authentication errors.

OperationHTTP statusCodeMeaning
Read metadata or request a URL404GameSaveEmptyErrorThe current user has no cloud save available.
Request a URL429GameSaveDownloadLimitExceededErrorThe user has exceeded the five daily URL requests. Wait for the next daily quota period.