---
title: "Read one schedule risk run with its result"
method: GET
path: "/scheduling/projects/{id}/risk-runs/{runId}"
tags: ["scheduling"]
---

# Read one schedule risk run with its result

`GET /scheduling/projects/{id}/risk-runs/{runId}`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/scheduling/projects/{id}/risk-runs/{runId}`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

The run plus `result` once DONE: planAsOf, statusDate, finish (p10, p50, p80, p90, earliest, latest as YYYY-MM-DD, and a 40-bin histogram whose edges are ISO instants), plan { finish, chance, source, scheduledFinish, scheduledChance } (finish is the plan's stored finish, the latest task finish date, when source is stored; scheduledFinish is the finish as the links schedule it), target { date, chance } or null, milestones (P50 and P80 each), criticality (share of runs each task was critical, top 500), sensitivity (Spearman rank correlation with the finish, top 20), notes (iterations, seed, distribution, defaultRange, task counts, clamped estimates, hard constraints, engine warnings) and taskTitles. A FAILED run carries `error` (noTasks, cycle, tooManyTasks, switchedOff, expired, queueUnavailable, failed) and `errorMessage`. Durations are sampled independently, so the spread is narrower than it really is.

## Path parameters

- `id` string, required
- `runId` string, required

## Headers

- `X-Organization-Id` string, required

## Response `200`

The run with its result

## Other responses

- `402`: Plan gate: feature scheduleRisk, Business and above. Still readable inside a downgrade's read-only window
- `404`: Project or run not found, or not visible to the caller

---

[API](https://skmtc.dev/onplana/apis/onplana-api.md) · [All operations](https://skmtc.dev/onplana/apis/onplana-api/llms.txt) · [OpenAPI document](https://skmtc.dev/onplana/apis/onplana-api/revisions/c3d6c89e9dc8?raw)
