Skip to content

User Settings

GET   /api/user-settings
PATCH /api/user-settings

Authentication required. No additional privilege required - each user manages their own settings.

Per-user preferences controlling display behaviour, data aggregation, and workflow prompts.


Settings Object

{
  "aggregate_global": false,
  "indirect_demand": true,
  "indirect_forecast": true,
  "settings_show_suggested_orders": true,
  "settings_ask_when_accepting_suggested": true,
  "settings_ask_on_edit_suggested": "Ask",
  "hide_no_data_rows": false
}
Field Type Default Description
aggregate_global boolean false Show aggregated (global) data instead of per-warehouse
indirect_demand boolean true Include indirect/derived demand in planning views
indirect_forecast boolean true Include indirect/derived forecast in planning views
settings_show_suggested_orders boolean true Show system-suggested orders in procurement views
settings_ask_when_accepting_suggested boolean true Show confirmation prompt before accepting suggested orders
settings_ask_on_edit_suggested string "Ask" Prompt behaviour when editing suggested orders: Ask, Always, Never
hide_no_data_rows boolean false Hide rows with no data in inventory planning tables

GET - Read Settings

curl -b cookies.txt "https://acme.knosc.com/api/user-settings"

PATCH - Update Settings

Partial update - include only the fields you want to change.

PATCH /api/user-settings HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: <csrf>

{
  "aggregate_global": true,
  "hide_no_data_rows": true
}

Response

HTTP/1.1 200 OK

{
  "message": "Settings updated."
}

Code Example

csrf = session.cookies.get("csrf_access_token")

# Read current settings
settings = session.get("https://acme.knosc.com/api/user-settings").json()
print(settings["aggregate_global"])

# Update a single setting
session.patch(
    "https://acme.knosc.com/api/user-settings",
    headers={"X-XSRF-TOKEN": csrf},
    json={"hide_no_data_rows": True}
)