Submit survey answers and change feed status
POST /task/v1/feeds/{feed_key}/survey
Operation id: submitFeedSurvey
Description
Submits survey answers and atomically changes the feed status to feed_status. Survey answer fields (e.g. q_1001, q_1002) are passed transparently to the service. File attachments are supported via multipart.
Feed identification modes same as GET survey (Mode A: positive feed_key; Mode B: feed_key=-1).
Response variants:
- Success →
{status: OK, message: "Survey submitted successfully."} - Validation failure (answer-level) → HTTP 200 with
{status: ER, response: "...", error_list: {q_xxx: "..."}} - Server error → HTTP 500
Language resolution same as GET survey endpoint.
Tags: MyWorkFeeds
Parameters
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
feed_key | integer | Yes | Unique numeric feed identifier |
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 → {status: OK, message: "Survey submitted successfully."}.
Validation error → {status: ER, response: "...", error_list: {field: message}}.
Content type: application/json
400 — - E128 — feed_status is mandatory
- E129 — feed_key ≤ 0 and required_unit_id or cluster_id missing
Content type: application/json
401 — Missing or invalid X-reflexis-csrf-token-X session token
Content type: application/json
500 — Unexpected server-side error
Content type: application/json
Request body
Required: Yes
multipart/form-data
Schema
| Property | Type | Required | Description |
|---|---|---|---|
feed_status | string | Yes | Target feed status: C=Complete, F=Force-Close (mandatory — E128 if missing) |
cluster_id | string | No | Cluster identifier. Required when feed_key ≤ 0 (Mode B) |
cluster_child_id | string | No | Cluster child identifier for Mode B |
requested_unit_id | string | No | Unit ID of target user. Required when feed_key ≤ 0 (Mode B) |
requested_lang_code | string | No | Language code override for service processing |
requested_user_id | string | No | User ID of the data owner (also used as userId in service call) |
requested_profile_id | string | No | Profile ID of target user |
requested_dept_id | string | No | Department ID of target user |
{
"type": "object",
"required": [
"feed_status"
],
"properties": {
"feed_status": {
"type": "string",
"description": "Target feed status: C=Complete, F=Force-Close (mandatory — E128 if missing)",
"enum": [
"C",
"F"
]
},
"cluster_id": {
"type": "string",
"description": "Cluster identifier. **Required when feed_key ≤ 0** (Mode B)"
},
"cluster_child_id": {
"type": "string",
"description": "Cluster child identifier for Mode B"
},
"requested_unit_id": {
"type": "string",
"description": "Unit ID of target user. **Required when feed_key ≤ 0** (Mode B)"
},
"requested_lang_code": {
"type": "string",
"description": "Language code override for service processing"
},
"requested_user_id": {
"type": "string",
"description": "User ID of the data owner (also used as userId in service call)"
},
"requested_profile_id": {
"type": "string",
"description": "Profile ID of target user"
},
"requested_dept_id": {
"type": "string",
"description": "Department ID of target user"
}
}
}
Response models
200 — Success → {status: OK, message: "Survey submitted successfully."}.
Validation error → {status: ER, response: "...", error_list: {field: message}}.
Content type: application/json
Schema
JSON object (structure varies by endpoint).
{
"type": "object",
"description": "JSON object (structure varies by endpoint)."
}
400 — - E128 — feed_status is mandatory
- E129 — feed_key ≤ 0 and required_unit_id or cluster_id missing
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"
}
}
}
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 — Unexpected server-side error
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": "E302",
"response": "Internal server error"
}