Bulk Import Risks
POST/api/v1/risks/bulk-import
Spreadsheet importer for the Risk Register — create-only.
Each row carries its own row_index so the caller can pair the
response back to its spreadsheet row. A row whose reference matches
an existing risk is skipped — the importer never updates existing
risks, so re-importing a previously exported register is idempotent.
Every other row creates a brand-new risk with a freshly generated
R-NNNNNN reference. Owner is resolved best-effort by email
(preferred) or exact display name; cards are linked best-effort by exact
name. Unresolved / ambiguous values produce a non-blocking warning and
are skipped — the risk still imports.
dry_run=True runs every validator and resolver, then rolls back so
the UI can preview the outcome without persisting anything (and without
emitting owner Todos, notifications, or card-timeline events).
Permission: risks.manage.
Request
Responses
- 200
- 422
Successful Response
Validation Error