Upload a CSV file to submit feedback for multiple evaluations in a single request.
Note:
Bulk CSV upload is API-only. The RiskOS™ Dashboard supports single-case feedback only through the Case Detail view. There is no CSV upload option in the UI.
Recommended structure
CSV format
The CSV must include a header row, but header names are ignored. Columns are parsed strictly by position, so the column order must match the specification below.
| Property | Requirement |
|---|---|
| File extension | .csv |
| Encoding | UTF-8 |
| Delimiter | , |
| Max file size | 10 MB |
| Columns per row | Exactly 8 |
Rows with fewer or more than 8 columns are rejected.
All columns must be present in each row, even if trailing fields are empty.
CSV column schema
| # | Column | Required | Description |
|---|---|---|---|
| 1 | id | Required | Evaluation or application ID |
| 2 | workflow | Required | Workflow associated with the evaluation |
| 3 | fraud_label | Required | Must be fraud or non-fraud (case-sensitive) |
| 4 | fraud_type | Optional | Free-text fraud classification |
| 5 | notes | Optional | Free-text notes |
| 6 | recorded_at | Optional | Date in YYYY-MM-DD format. Defaults to the current date |
| 7 | recorded_by | Optional | Defaults to the authenticated user |
| 8 | tags | Optional | Comma-separated list of tags |
Tag formatting
Multiple tags must be comma-separated within a single cell and wrapped in quotes:
"tag1,tag2"
Tags are validated against the namespace’s configured tag definitions. If any tag is invalid, the row is rejected.
Processing behavior
- Each row is processed independently
- Partial success is possible— some rows may succeed while others fail
- Files without a header row return an error
- Rows are processed serially, so large files take proportionally longer to complete
Example CSV
id,workflow,fraud_label,fraud_type,notes,recorded_at,recorded_by,tags
eval-123,loan_workflow,fraud,synthetic,Sample note,2025-03-13,[email protected],"tag1,tag2"
eval-456,loan_workflow,non-fraud,,,2025-03-12,,reviewed
eval-789,loan_workflow,fraud,,,,,"tag1,tag2,tag3" 400Bad Request - The request was unacceptable.
401Unauthorized - An invalid API key was provided.
404Not Found - The requested resource does not exist. The client should not repeat this request without modification.
429Too Many Requests - The rate limit for this API has been exceeded.
500Internal Server Error – An unexpected condition occurred on the server.

