Get the risk flow breakdown for an organization.
const url = 'https://api.adversarial.com/api/v1/organizations/123e4567-e89b-12d3-a456-426614174000/risk-flow?start_date=2026-01-01&end_date=2026-12-31';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.adversarial.com/api/v1/organizations/123e4567-e89b-12d3-a456-426614174000/risk-flow?start_date=2026-01-01&end_date=2026-12-31'Describes how risks discovered in the look-back window flow from their source, class, and opener to their final urgency. Requires both risk read access and integration read access, since the breakdown exposes per-integration-source performance.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The UUID of the organization
Example
123e4567-e89b-12d3-a456-426614174000Query Parameters
Section titled “Query Parameters”Inclusive lower bound on the window. RFC 3339 timestamp or bare
YYYY-MM-DD; either way the window starts at 00:00:00Z of the UTC day
it falls on. Defaults to 90 days before today.
Example
2026-01-01Inclusive upper bound on the window. RFC 3339 timestamp or bare
YYYY-MM-DD; either way the window ends at 23:59:59.999999Z of the UTC
day it falls on. Defaults to end-of-day today.
Example
2026-12-31Responses
Section titled “Responses”Risk flow breakdown for the organization
How risks flowed from source to final urgency, grouped by each supported
dimension. Covers risks discovered between start_date and end_date
inclusive, the same window the risk metrics use.
object
Grouped by risk class / type (untyped risks fall into “Unclassified”).
object
Mean signed level change (final_idx − initial_idx, range −4..+4):
positive = net downgrade (toward Info), negative = net upgrade (toward
Critical). None when there is no scored transition evidence.
Share moved to a LOWER urgency than reported (0..1); None when
there is no scored transition evidence.
Final-urgency totals across the dimension, in the same index order.
Per-group rows; the highest-volume groups are kept and the long tail is folded into a single “Other” row.
One group row in a risk integration urgency flow dimension.
object
Optional avatar/icon URL (set for opener groups).
Mean signed level change (final_idx − initial_idx, range −4..+4) over
scored transitions: positive = net downgrade (toward Info), negative
= net upgrade (toward Critical). None when no transition is scored.
Share of scored transitions moved to a LOWER urgency than reported;
None when scored_transition_count is 0.
Value to filter the register by for this group; None for the synthetic
Unknown source / Unclassified / Other groups, which aren’t directly filterable.
Final-urgency marginals (column sums), in the same index order.
Initially-reported-urgency marginals (row sums of transition_counts). Order
[Critical, High, Medium, Low, Info, Unscored] (index 5 = unscored).
Display name of the group (a source/class/opener name, or “Other”).
Reliability band 1–5 from 1 − downgrade_rate (urgency mostly upheld ⇒
more reliable); None when there is no scored transition evidence to band.
Risks with both initial and final urgency scored; the denominator for the triage rates above.
Matrix transition_counts[initial][final] = count of risks that arrived at
the initial-urgency row and were scored to the final-urgency column. Both
axes use the order above (index 5 = unscored).
Share of the group’s risks (including unscored) with no final urgency score (0..1).
Share of scored transitions moved to a HIGHER urgency than reported;
None when scored_transition_count is 0.
Share of risks with scored initial and final urgency whose final urgency equals the reported
one (0..1); None when scored_transition_count is 0.
Initially-reported-urgency totals across the dimension. Order
[Critical, High, Medium, Low, Info, Unscored] (index 5 = unscored).
Reliability band 1–5 derived from 1 − downgrade_rate (fewer
downgrades ⇒ more reliable signal); None when there is no
scored transition evidence to band.
Share of all risks in the dimension with no final urgency score (0..1).
Share moved to a HIGHER urgency than reported (0..1); None when
there is no scored transition evidence.
Share of risks with scored initial and final urgency whose final urgency equals the reported
one, computed from all scored transitions in the dimension (0..1).
None when the dimension has no scored transitions (no evidence).
Grouped by the user who opened the risk.
object
Mean signed level change (final_idx − initial_idx, range −4..+4):
positive = net downgrade (toward Info), negative = net upgrade (toward
Critical). None when there is no scored transition evidence.
Share moved to a LOWER urgency than reported (0..1); None when
there is no scored transition evidence.
Final-urgency totals across the dimension, in the same index order.
Per-group rows; the highest-volume groups are kept and the long tail is folded into a single “Other” row.
One group row in a risk integration urgency flow dimension.
object
Optional avatar/icon URL (set for opener groups).
Mean signed level change (final_idx − initial_idx, range −4..+4) over
scored transitions: positive = net downgrade (toward Info), negative
= net upgrade (toward Critical). None when no transition is scored.
Share of scored transitions moved to a LOWER urgency than reported;
None when scored_transition_count is 0.
Value to filter the register by for this group; None for the synthetic
Unknown source / Unclassified / Other groups, which aren’t directly filterable.
Final-urgency marginals (column sums), in the same index order.
Initially-reported-urgency marginals (row sums of transition_counts). Order
[Critical, High, Medium, Low, Info, Unscored] (index 5 = unscored).
Display name of the group (a source/class/opener name, or “Other”).
Reliability band 1–5 from 1 − downgrade_rate (urgency mostly upheld ⇒
more reliable); None when there is no scored transition evidence to band.
Risks with both initial and final urgency scored; the denominator for the triage rates above.
Matrix transition_counts[initial][final] = count of risks that arrived at
the initial-urgency row and were scored to the final-urgency column. Both
axes use the order above (index 5 = unscored).
Share of the group’s risks (including unscored) with no final urgency score (0..1).
Share of scored transitions moved to a HIGHER urgency than reported;
None when scored_transition_count is 0.
Share of risks with scored initial and final urgency whose final urgency equals the reported
one (0..1); None when scored_transition_count is 0.
Initially-reported-urgency totals across the dimension. Order
[Critical, High, Medium, Low, Info, Unscored] (index 5 = unscored).
Reliability band 1–5 derived from 1 − downgrade_rate (fewer
downgrades ⇒ more reliable signal); None when there is no
scored transition evidence to band.
Share of all risks in the dimension with no final urgency score (0..1).
Share moved to a HIGHER urgency than reported (0..1); None when
there is no scored transition evidence.
Share of risks with scored initial and final urgency whose final urgency equals the reported
one, computed from all scored transitions in the dimension (0..1).
None when the dimension has no scored transitions (no evidence).
Grouped by integration source (sourceless risks fall into an “Unknown source” group).
object
Mean signed level change (final_idx − initial_idx, range −4..+4):
positive = net downgrade (toward Info), negative = net upgrade (toward
Critical). None when there is no scored transition evidence.
Share moved to a LOWER urgency than reported (0..1); None when
there is no scored transition evidence.
Final-urgency totals across the dimension, in the same index order.
Per-group rows; the highest-volume groups are kept and the long tail is folded into a single “Other” row.
One group row in a risk integration urgency flow dimension.
object
Optional avatar/icon URL (set for opener groups).
Mean signed level change (final_idx − initial_idx, range −4..+4) over
scored transitions: positive = net downgrade (toward Info), negative
= net upgrade (toward Critical). None when no transition is scored.
Share of scored transitions moved to a LOWER urgency than reported;
None when scored_transition_count is 0.
Value to filter the register by for this group; None for the synthetic
Unknown source / Unclassified / Other groups, which aren’t directly filterable.
Final-urgency marginals (column sums), in the same index order.
Initially-reported-urgency marginals (row sums of transition_counts). Order
[Critical, High, Medium, Low, Info, Unscored] (index 5 = unscored).
Display name of the group (a source/class/opener name, or “Other”).
Reliability band 1–5 from 1 − downgrade_rate (urgency mostly upheld ⇒
more reliable); None when there is no scored transition evidence to band.
Risks with both initial and final urgency scored; the denominator for the triage rates above.
Matrix transition_counts[initial][final] = count of risks that arrived at
the initial-urgency row and were scored to the final-urgency column. Both
axes use the order above (index 5 = unscored).
Share of the group’s risks (including unscored) with no final urgency score (0..1).
Share of scored transitions moved to a HIGHER urgency than reported;
None when scored_transition_count is 0.
Share of risks with scored initial and final urgency whose final urgency equals the reported
one (0..1); None when scored_transition_count is 0.
Initially-reported-urgency totals across the dimension. Order
[Critical, High, Medium, Low, Info, Unscored] (index 5 = unscored).
Reliability band 1–5 derived from 1 − downgrade_rate (fewer
downgrades ⇒ more reliable signal); None when there is no
scored transition evidence to band.
Share of all risks in the dimension with no final urgency score (0..1).
Share moved to a HIGHER urgency than reported (0..1); None when
there is no scored transition evidence.
Share of risks with scored initial and final urgency whose final urgency equals the reported
one, computed from all scored transitions in the dimension (0..1).
None when the dimension has no scored transitions (no evidence).
Examplegenerated
{ "byClass": { "averageTriageShift": 1, "downgradeRate": 1, "finalTotals": [ 1 ], "groups": [ { "avatarPath": "example", "averageTriageShift": 1, "downgradeRate": 1, "filterValue": "example", "finalUrgencyCounts": [ 1 ], "initialUrgencyCounts": [ 1 ], "name": "example", "reliabilityLevel": 1, "scoredTransitionCount": 1, "transitionCounts": [ [ 1 ] ], "unscoredRate": 1, "upgradeRate": 1, "upheldRate": 1 } ], "initialUrgencyTotals": [ 1 ], "reliabilityLevel": 1, "unscoredRate": 1, "upgradeRate": 1, "upheldRate": 1 }, "byOpenedBy": { "averageTriageShift": 1, "downgradeRate": 1, "finalTotals": [ 1 ], "groups": [ { "avatarPath": "example", "averageTriageShift": 1, "downgradeRate": 1, "filterValue": "example", "finalUrgencyCounts": [ 1 ], "initialUrgencyCounts": [ 1 ], "name": "example", "reliabilityLevel": 1, "scoredTransitionCount": 1, "transitionCounts": [ [ 1 ] ], "unscoredRate": 1, "upgradeRate": 1, "upheldRate": 1 } ], "initialUrgencyTotals": [ 1 ], "reliabilityLevel": 1, "unscoredRate": 1, "upgradeRate": 1, "upheldRate": 1 }, "bySource": { "averageTriageShift": 1, "downgradeRate": 1, "finalTotals": [ 1 ], "groups": [ { "avatarPath": "example", "averageTriageShift": 1, "downgradeRate": 1, "filterValue": "example", "finalUrgencyCounts": [ 1 ], "initialUrgencyCounts": [ 1 ], "name": "example", "reliabilityLevel": 1, "scoredTransitionCount": 1, "transitionCounts": [ [ 1 ] ], "unscoredRate": 1, "upgradeRate": 1, "upheldRate": 1 } ], "initialUrgencyTotals": [ 1 ], "reliabilityLevel": 1, "unscoredRate": 1, "upgradeRate": 1, "upheldRate": 1 }}Insufficient permissions
Organization not found