---
title: "Get campaign run"
method: GET
path: "/access-certification/campaign-runs/{runId}"
tags: ["Access Certification"]
---

# Get campaign run

`GET /access-certification/campaign-runs/{runId}`

## Request

- Base URL: `https://console.jumpcloud.com/api/v2`
- URL: `https://console.jumpcloud.com/api/v2/access-certification/campaign-runs/{runId}`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2/docs/access-certification/campaign-runs/:runId/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns details for a single campaign run, including review window dates, progress percentage,
remediation status, and scope information. Works for active, closed, and canceled runs.

**Required permission:** `accesscertification` or `accesscertification.readonly`

## Path parameters

- `runId` string, required

## Response `200`

Campaign run retrieved successfully

- JumpcloudHttpAccesscertificationCampaignRunListItem: Summary row for one campaign run in a list response. Includes review window dates, progress, and remediation status. Flat `scopeType` and `scopeTargetId` identify the review scope. Optional nested `scope`, reviewer-chain flags, materialization fields, and related properties may also be present depending on run status and the operation (for example, single-run retrieval).
  - `runId` string, required
  - `campaignId` string, required
  - `campaignName` string, required
  - `campaignDescription` string: Campaign description from the run config snapshot
  - `runNumber` integer, required
  - `status` 'active' | 'closed' | 'canceled', required: Status of a campaign run in list responses
  - `scopeType` 'application' | 'group', required: What the campaign reviews — an SSO application or a user group
  - `scopeTargetId` string, required: Application or user group object ID from the run snapshot or campaign scope
  - `scope` JumpcloudHttpAccesscertificationCampaignRunScope: Review scope for a campaign run, including the target application or user groups and optional resource counts from Directory.
    - `type` 'application' | 'group', required: What the campaign reviews — an SSO application or a user group
    - `applicationId` string: Set when type is application
    - `applicationName` string: Display name when known (activate snapshot / Directory); omit when unresolved
    - `userGroups` JumpcloudHttpAccesscertificationUserGroup[]: In-scope user groups (ID and optional name). Group-scoped campaigns currently support one user group.
      - `id` string, required: User group object id
      - `name` string: Display name when known; omit when unresolved
    - `resourceCounts` JumpcloudHttpAccesscertificationGroupResourceCounts[]: Per user-group resource counts from the Directory (each user group is counted independently).
      - `userGroupId` string, required: User group object id these counts belong to
      - `counts` object, required: Map of directory type key to count (e.g. user, application, ldap_server). Keys omitted when the graph edge is unsupported or the count call failed.
  - `reviewerType` 'administrator' | 'systemuser': Primary reviewer type from the campaign's reviewer chain
  - `reviewWindowStart` string, date-time, required
  - `reviewWindowEnd` string, date-time, required
  - `reviewProgressPercent` integer, required
  - `remediationStatus` 'not_started' | 'no_action' | 'in_progress' | 'scheduled' | 'completed' | 'failed' | 'canceled': Overall remediation status for a campaign run. Reflects the campaign's remediation policy and per-identity progress — not review completion percentage alone. - `no_action` — Remediation policy does not require automated action on revoke - `failed` — Deprecated at campaign level; per-identity failures surface on review items while process completion uses `completed`
  - `closeReason` string: Reason recorded when the run was closed or canceled
  - `activatedAt` string, date-time
  - `closedAt` string, date-time
  - `materializationStatus` 'in_progress' | 'complete' | 'failed': Cohort materialization progress while review items are created at activate
  - `reviewItemsMaterialized` integer: Review items materialized so far for this run
  - `requireJustification` boolean: Effective require-justification for this run's reviewer chain
  - `allowReassign` boolean: Effective allow-reassign for this run's reviewer chain
  - `auditReportStatus` 'generating' | 'exports_ready' | 'failed': Audit artifact status for campaign list and detail UIs (maps from audit_artifacts)

## Other responses

- `400`: Validation error with field-level details
- `401`: Missing or invalid credentials
- `403`: Forbidden — principal not assigned or lacks required role
- `404`: Resource not found
- `default`: Unexpected error

---

[API](https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2.md) - [All operations](https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2/llms.txt) - [OpenAPI document](https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2/revisions/3f09fe63caaa?raw)
