Money-Log - Local API

Local IPC API specification for the Money-Log desktop app (Electron main ↔ renderer).

Version: 1.0.0

Servers

  • ipc://main
    Electron Main Process

Default

POST /ipc/app/reset
Reset application
Description

Source: S04 Step 55 → Step 62; clears all data.

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
None
Responses
200
Reset successful
Content-Type: application/json
successbooleanOptional
POST /ipc/auth/disable-password
Disable password lock
Description

Source: S04 Step 40 → Step 51

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
passwordstringCurrent passwordRequired
Responses
200
Disabled successfully
Content-Type: application/json
successbooleanOptional
401
Incorrect password (EX-43.1)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
POST /ipc/auth/set-password
Set password
Description

Source: S04 Step 27 → Step 36

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
passwordstring6-digit numeric PINRequired
minLen: 6; maxLen: 6
Responses
200
Set successfully
Content-Type: application/json
successbooleanOptional
400
Password does not meet requirements (EX-27.1, EX-27.2)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
POST /ipc/auth/verify-password
Verify password
Description

Source: S04 Step 11 → Step 22

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
passwordstring6-digit numeric PINRequired
minLen: 6; maxLen: 6
Responses
200
Verified successfully
Content-Type: application/json
validbooleanOptional
401
Incorrect password (EX-11.1)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
POST /ipc/categories/add
Add category
Description

Source: S03 Step 12 → Step 19

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
namestringCategory nameRequired
minLen: 1; maxLen: 20
Responses
200
Created successfully
Content-Type: application/json
successbooleanOptional
idintegerOptional
400
Invalid parameters (EX-12.1, EX-12.2)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
DELETE /ipc/categories/delete
Delete category
Description

Source: S03 Step 34 → Step 41

Request parameters
Path parameters
Query parameters
idintegerCategory IDRequired
Header parameters
Body parameters
None
Responses
200
Deleted successfully
Content-Type: application/json
successbooleanOptional
400
Built-in categories cannot be deleted (EX-12.3)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
GET /ipc/categories/list
List categories
Description

Source: S03 Step 1 → Step 8

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
None
Responses
200
Success
Content-Type: application/json
idintegerCategory IDOptional
namestringCategory nameOptional
iconstringCategory iconOptional
is_defaultbooleanWhether this is a built-in categoryOptional
created_atstring (date-time)Created atOptional
PUT /ipc/categories/update
Update category
Description

Source: S03 Step 23 → Step 30

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
idintegerCategory IDRequired
namestringCategory nameRequired
minLen: 1; maxLen: 20
Responses
200
Updated successfully
Content-Type: application/json
successbooleanOptional
GET /ipc/records/list
List expense records
Description

Returns expense records within the given time range.

Request parameters
Path parameters
Query parameters
start_datestringStart date (ISO 8601)Optional
end_datestringEnd date (ISO 8601)Optional
category_idintegerCategory ID (optional)Optional
Header parameters
Body parameters
None
Responses
200
Success
Content-Type: application/json
idintegerRecord IDOptional
amountnumberAmount (CNY)Optional
category_idintegerCategory IDOptional
category_namestringCategory nameOptional
created_atstring (date-time)Created atOptional
remarkstringNotesOptional
POST /ipc/records/save
Save expense record
Description

Source: S01 Step 8 → Step 15

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
amountnumberAmount (must be greater than 0)Required
min: 0.01; max: 999999
category_idintegerCategory IDRequired
remarkstringNotes (optional)Optional
maxLen: 200
Responses
200
Saved successfully
Content-Type: application/json
successbooleanOptional
idintegerOptional
400
Invalid parameters (EX-8.1, EX-8.2)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
500
Database write failed (EX-11.1)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired
GET /ipc/settings/get
Get setting
Description

Source: S04 Step 1 → Step 6

Request parameters
Path parameters
Query parameters
keystringSetting keyRequired
Header parameters
Body parameters
None
Responses
200
Success
Content-Type: application/json
keystringOptional
valuestringOptional
POST /ipc/settings/set
Set setting
Description

Sets or updates one setting.

Request parameters
Path parameters
Query parameters
Header parameters
Body parameters
Content-Type: application/json (required)
keystringSetting keyRequired
valuestringSetting valueRequired
Responses
200
Set successfully
Content-Type: application/json
successbooleanOptional
GET /ipc/statistics
Get statistics
Description

Source: S02 Step 1 → Step 8

Request parameters
Path parameters
Query parameters
time_rangestringTime rangeOptional
enum: week, month, custom
monthstringMonth (YYYY-MM)Optional
start_datestringCustom start dateOptional
end_datestringCustom end dateOptional
category_idintegerCategory ID (optional)Optional
Header parameters
Body parameters
None
Responses
200
Success
Content-Type: application/json
totalnumberTotal spendingOptional
dailyarray[object]Daily spendingOptional
datestringOptional
amountnumberOptional
by_categoryarray[object]Totals by categoryOptional
category_idintegerOptional
category_namestringOptional
amountnumberOptional
percentnumberOptional
400
Invalid time range (EX-9.1)
Content-Type: application/json
codestringMachine-readable error code (e.g. RECORD_SAVE_FAILED)Required
messagestringHuman-readable error messageRequired