Skip to content

Create a new RSK.

POST
/v1/risks
curl --request POST \
--url https://api.adversarial.com/api/v1/risks \
--header 'Content-Type: application/json' \
--data '{ "assigned_to_id": null, "closed_date": null, "control_statement": null, "description": "", "discovered_date": null, "due_date": null, "expected_date": null, "impact": null, "impact_reasoning": null, "initially_reported_urgency": null, "likelihood": null, "likelihood_reasoning": null, "remediation_task": null, "source": null, "status": null, "tags": null, "threat_objectives": null, "title": "", "type": null }'
Media typeapplication/json

The required properties of a request to POST /risks

object
assigned_to_id
string | null format: uuid
closed_date
string | null format: date-time
control_statement
string | null
description
string
""
discovered_date
string | null format: date-time
due_date
string | null format: date-time
expected_date
string | null format: date-time
impact
One of:
string
Allowed values: Very Low Low Medium High Severe
impact_reasoning
string | null
initially_reported_urgency
One of:
string
Allowed values: Critical High Medium Low Info
likelihood
One of:
string
Allowed values: Remote Unlikely Possible Probable Imminent
likelihood_reasoning
string | null
remediation_task
string | null
source
string | null
status
One of:

The status of a risk

string
Allowed values: New Urgency Proposed Remediation Closure Proposed Closed
tags

Existing item tags to link. UUID values resolve only by id; other values match exact content after trimming. Tags are never created. Requires tags:read when non-empty.

Array<string> | null
threat_objectives
Array<object> | null

A threat objective paired with how relevant it is to a risk.

Two relations are considered the same when the objective and its relevance match; created_date records when the relation was last changed and is not part of its identity.

object
created_date

The time that this relation was mutated

string | null format: date-time
relevance
One of:

How relevant the threat objective is. Responses always carry a relevance. In a request, null removes the objective.

string
Allowed values: Moderate Substantial
threat_objective
required

The threat objective type

string
Allowed values: Sabotage Data Disclosure Extortion Customer Targeting Resource Hijacking Fraud
title
string
""
type
One of:
string
Allowed values: Code Configuration Control Deficiency Policy Procedural Vulnerability Third-party

Risk created successfully

Media typeapplication/json

Register row for Organization Risks (RSKs). A Risk plus the relational data shown on the risk register: threat objectives, incident associations, tags, and comment count.

object
attachments
required

Files attached to this risk, newest-first.

Array<object>

A file attached to a risk, an incident, or a comment on either.

Embedded in the attachments list of the record it is attached to, and returned when a file is uploaded to a risk or incident.

object
byte_size

File size in bytes.

integer | null format: int64
content_type
required

MIME content type.

string
created_by

The user who uploaded the file, if known. On a comment’s attachments this can differ from the comment’s author: a comment may reference a file someone else uploaded to the same record.

string | null format: uuid
created_date
required

When the file was uploaded.

string format: date-time
id
required

The attachment’s id; download it with GET /v1/files/{id}.

string format: uuid
name
required

Original file name as uploaded.

string
status
required

The file’s upload status. Attachments are only listed once their upload has finished, so this is always ready.

string
Allowed values: pending ready failed
comments
required

Count of comments on this risk (not the comments themselves).

integer format: int64
incident_associations
required
Array<string>
linked_children_count
required

Number of risks linked under this risk (i.e. children pointing at it). A risk is itself a linked child when risk.parent_id is set.

integer format: int64
risk
required

The core view of an Organization Risk (RSK).

Relational data — threat objectives, comments, incident associations, and tags — is exposed on RiskRegisterEntry, not here.

object
assigned_to
One of:

A User as returned by the API.

Profile images are not embedded — clients fetch them from GET /api/v1/{icon} when icon is Some.

object
email
required
string
first_name
required
string
icon

Relative path to the user’s avatar endpoint, e.g. "users/{id}/avatar?v={hash}". None when the user has no avatar.

string | null
id
required
string format: uuid
last_name
required
string
closed_date
string | null format: date-time
control_statement
string | null
created_date
required
string format: date-time
deleted_date
string | null format: date-time
description
required
string
discovered_date
required
string format: date-time
due_date
string | null format: date-time
expected_date
string | null format: date-time
id
required
string
impact
One of:
string
Allowed values: Very Low Low Medium High Severe
impact_reasoning
string | null
initially_reported_urgency
One of:
string
Allowed values: Critical High Medium Low Info
likelihood
One of:
string
Allowed values: Remote Unlikely Possible Probable Imminent
likelihood_reasoning
string | null
opened_by
required

A User as returned by the API.

Profile images are not embedded — clients fetch them from GET /api/v1/{icon} when icon is Some.

object
email
required
string
first_name
required
string
icon

Relative path to the user’s avatar endpoint, e.g. "users/{id}/avatar?v={hash}". None when the user has no avatar.

string | null
id
required
string format: uuid
last_name
required
string
parent_id

When set, this risk is linked under the named parent risk.

string | null
remediation_task
string | null
source
string | null
status
required

The status of a risk

string
Allowed values: New Urgency Proposed Remediation Closure Proposed Closed
title
required
string
type
required
string
Allowed values: Code Configuration Control Deficiency Policy Procedural Vulnerability Third-party
updated_by
required

A User as returned by the API.

Profile images are not embedded — clients fetch them from GET /api/v1/{icon} when icon is Some.

object
email
required
string
first_name
required
string
icon

Relative path to the user’s avatar endpoint, e.g. "users/{id}/avatar?v={hash}". None when the user has no avatar.

string | null
id
required
string format: uuid
last_name
required
string
updated_date
required
string format: date-time
urgency
One of:

Derived from likelihood and impact. Null when either is missing.

string
Allowed values: Info Low Medium High Critical
tags
required
Array<object>
object
content
required
string
creator_id
required
string format: uuid
id
required
string format: uuid
org_id
string | null format: uuid
threat_objectives
required
Array<object>

A threat objective paired with how relevant it is to a risk.

Two relations are considered the same when the objective and its relevance match; created_date records when the relation was last changed and is not part of its identity.

object
created_date

The time that this relation was mutated

string | null format: date-time
relevance
One of:

How relevant the threat objective is. Responses always carry a relevance. In a request, null removes the objective.

string
Allowed values: Moderate Substantial
threat_objective
required

The threat objective type

string
Allowed values: Sabotage Data Disclosure Extortion Customer Targeting Resource Hijacking Fraud
Example
{
"attachments": [
{
"status": "pending"
}
],
"incident_associations": "INC-00001",
"risk": {
"id": "RSK-00001",
"impact": "Very Low",
"initially_reported_urgency": "Critical",
"likelihood": "Remote",
"parent_id": "RSK-00001",
"status": "New",
"type": "Code",
"urgency": "Info"
},
"threat_objectives": [
{
"relevance": "Moderate",
"threat_objective": "Sabotage"
}
]
}

Validation failed (e.g. unknown source, inactive assignee, unknown tag)

Insufficient permissions