Comment list (full paginated or MSG two-phase load)
GET /task/v1/comments/list
Operation id: getCommentList
Description
Retrieves the full paginated comment list for the authenticated user.
Always-injected from session (not overridable): domain_id, user_id, store_id, dept_id, profile_id, time_zone_long.
Two paths:
on_load_call=MSG— two-phase load: returns feed summaries +count_data[]per cluster.skip_recordsis absent from the response.- Default (flat paginated) — pages through comments via
skip_records/no_records.count_datais absent.
⚠️ If feed_status contains A but msg_status is blank → service returns null → E404.
Requires ROS_UNIT_DOMAIN line-of-sight authorization.
Tags: MyWorkComments
Parameters
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
cluster_id | string | No | Filter by cluster; -1 or absent = all clusters (general messages) |
cut_off_time | integer (int64) | No | Legacy cutoff timestamp — forwarded but has no effect on the query |
feed_key | integer | No | Feed/project key — forwarded but NOT used by getCommentList (thread scoping is cluster_id only) |
feed_status | string | No | CSV lifecycle filter — A=Active feeds, I=Inactive/closed. When A is present, msg_status must also be provided. |
feed_title | string | No | Filter by feed title text |
feed_type_id | string | No | Filter by feed type ID |
message_type | string | No | Feed/message type token (default PROJECTEXTRACT) |
msg_status | string | No | CSV active-status filter — N=Unread, R=Read. Required when feed_status contains A. |
msg_text | string | No | Server-side text filter on comment body |
no_records | integer | No | DAO page size; 0=all records (flat paginated path only) |
on_load_call | string | No | Send MSG for the initial two-phase load; omit or send any other value for flat paginated path |
selected_dates | string | No | Comma-separated start/end dates in yyyyMMdd (e.g. 20240115,20240120). Service uses first as fromDate and last as toDate. |
skip_records | integer | No | DAO pagination offset (flat paginated path only) |
unit_category | string | No | C=Corporate, S=Store; defaults to session unit category if omitted |
view_type | string | No | SV=Store View, MV=My Work View, DV=Dept View. Session fallback only when key is entirely absent (sending view_type= preserves empty string). |
Security
- ApiKeyHeader (apiKey)
- APIGEE API key header validated by VerifyAPIKey policy.
- AuthTokenHeader (apiKey)
- Session authentication token validated server-side against the user session store.
Responses
200 — Success — comment_data_list[], last_fetch_time, optionally skip_records and count_data[].
Response shape depends on the path:
Flat paginated path (default):
comment_data_list[]— individual comment/message objects (shape below)last_fetch_time— epoch ms; always presentskip_records— echoes theno_recordspage-size value (NOT the offset); absent for MSG path
on_load_call=MSG path:
comment_data_list[]— feed/project summary objects (different shape)count_data[]— per-cluster unread summary; each:feed_key,cluster_id,count,unread(Boolean),unread_msg_data[]
comment_data_list[*] fields (flat path): domain_id, feed_key, cluster_id, msg_id, msg_parent_id, msg_main_id, store_id, user_id, profile_id, dept_id, reason_code, reason_text, assign_store, assign_profile, assign_dept, assign_user, comment (HTML), plain_comment, link, attachment_names, message_status (N/R/C/F), message_type, creation_time (Long), last_update_time (Long), key_description, internal (Y/N), display_date, last_update_date, creator_id, created_by, show_reply (Boolean), show_unread (Boolean), attributes (optional Object)
No data → E404.
Content type: application/json
401 — Missing or invalid X-reflexis-csrf-token-X session token
Content type: application/json
500 — E302 — Internal server error.
E312 — Refresh interval exceeded (list/latest only).
Content type: application/json
Response models
200 — Success — comment_data_list[], last_fetch_time, optionally skip_records and count_data[].
Response shape depends on the path:
Flat paginated path (default):
comment_data_list[]— individual comment/message objects (shape below)last_fetch_time— epoch ms; always presentskip_records— echoes theno_recordspage-size value (NOT the offset); absent for MSG path
on_load_call=MSG path:
comment_data_list[]— feed/project summary objects (different shape)count_data[]— per-cluster unread summary; each:feed_key,cluster_id,count,unread(Boolean),unread_msg_data[]
comment_data_list[*] fields (flat path): domain_id, feed_key, cluster_id, msg_id, msg_parent_id, msg_main_id, store_id, user_id, profile_id, dept_id, reason_code, reason_text, assign_store, assign_profile, assign_dept, assign_user, comment (HTML), plain_comment, link, attachment_names, message_status (N/R/C/F), message_type, creation_time (Long), last_update_time (Long), key_description, internal (Y/N), display_date, last_update_date, creator_id, created_by, show_reply (Boolean), show_unread (Boolean), attributes (optional Object)
No data → E404.
Content type: application/json
Schema
JSON object (structure varies by endpoint).
{
"type": "object",
"description": "JSON object (structure varies by endpoint)."
}
Example:
{
"status": "OK",
"comment_data_list": [
{
"feed_key": 42465943,
"cluster_id": "4286147",
"msg_id": 101,
"msg_parent_id": 0,
"msg_main_id": 100,
"store_id": "UNIT_01",
"user_id": "SYSADMIN",
"comment": "<p>Please review the schedule update.</p>",
"plain_comment": "Please review the schedule update.",
"message_status": "N",
"creation_time": 1705312800000,
"show_reply": true,
"show_unread": true
}
],
"last_fetch_time": 1705312800000,
"skip_records": 20
}
401 — Missing or invalid X-reflexis-csrf-token-X session token
Content type: application/json
Schema
| Property | Type | Required | Description |
|---|---|---|---|
status | string | Yes | Always "ER" for error responses |
errorCode | string | Yes | Application-level error code (e.g. E202, E105, E404) |
response | string | Yes | Human-readable error message |
{
"type": "object",
"example": {
"status": "ER",
"errorCode": "E202",
"response": "User session is invalid"
},
"required": [
"status",
"errorCode",
"response"
],
"properties": {
"status": {
"type": "string",
"description": "Always \"ER\" for error responses",
"enum": [
"ER"
]
},
"errorCode": {
"type": "string",
"description": "Application-level error code (e.g. E202, E105, E404)"
},
"response": {
"type": "string",
"description": "Human-readable error message"
}
}
}
Example:
{
"status": "ER",
"errorCode": "E202",
"response": "User session is invalid"
}
500 — E302 — Internal server error.
E312 — Refresh interval exceeded (list/latest only).
Content type: application/json
Schema
| Property | Type | Required | Description |
|---|---|---|---|
status | string | Yes | Always "ER" for error responses |
errorCode | string | Yes | Application-level error code (e.g. E202, E105, E404) |
response | string | Yes | Human-readable error message |
{
"type": "object",
"example": {
"status": "ER",
"errorCode": "E202",
"response": "User session is invalid"
},
"required": [
"status",
"errorCode",
"response"
],
"properties": {
"status": {
"type": "string",
"description": "Always \"ER\" for error responses",
"enum": [
"ER"
]
},
"errorCode": {
"type": "string",
"description": "Application-level error code (e.g. E202, E105, E404)"
},
"response": {
"type": "string",
"description": "Human-readable error message"
}
}
}