# Read one compliance run

Admin only. The run, everything it saw, and the trail of what people concluded. Each finding names the check, the subject (a deal, a submission, a member, a vendor or the workspace itself), whether it passed, and the reason in the check's own words. This is also the export: nothing is cached, so a client writes its CSV from this answer rather than from a second, staler copy.

Access class: `workspace:admin`.

## Endpoint

`GET /v1/workspace/compliance/runs/{runId}`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| runId | path | string | Yes |
| body | query | null | No |
| params | query | object | No |
| query | query | object | No |

## Responses

### 200

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "findings": [
      {
        "checkKey": "string",
        "createdAt": "string",
        "id": "",
        "outcome": "string",
        "reason": "string",
        "subjectKind": "string",
        "subjectLabel": "string",
        "subjectRowId": ""
      }
    ],
    "run": {
      "checksRun": [
        "string"
      ],
      "decisions": [
        {
          "decidedAt": "string",
          "decision": "string",
          "id": "",
          "note": "string",
          "signerName": "string",
          "signerUserId": ""
        }
      ],
      "failed": 1,
      "id": "",
      "outcome": "string",
      "passed": 1,
      "ranAt": "string",
      "ranBy": 1,
      "reportId": "",
      "reportName": "string",
      "standing": "string",
      "subjects": 1
    }
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
