---
title: "Activate campaign"
method: POST
path: "/access-certification/campaigns/{campaignId}/activate"
tags: ["Access Certification"]
---

# Activate campaign

`POST /access-certification/campaigns/{campaignId}/activate`

## Request

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

Starts a campaign run immediately. The service identifies all identities in scope,
creates a review item for each, and captures a frozen snapshot of their directory
attributes at activation time.

Activation is asynchronous — the response may return `status: activating` while review
items are being created. Poll `GET /access-certification/campaigns/{campaignId}` or
`GET /access-certification/campaign-runs/{runId}` until `materializationStatus` is `complete`.

Returns **409 Conflict** when Access Certification is disabled
(`featureEnabled` is `false` in access certification settings). Scheduled auto-start is
also blocked while disabled.

**Required permission:** `accesscertification` (Full Access)

## Path parameters

- `campaignId` string, required

## Response `200`

Campaign already active with review items materialized (idempotent)

- JumpcloudHttpAccesscertificationActivateCampaignResponse
  - `campaignId` string, required
  - `runId` string, required
  - `status` 'active' | 'activating', required
  - `reviewItemsMaterialized` integer, required: Number of review items created when the campaign was activated
  - `materializationStatus` 'in_progress' | 'complete' | 'failed': Cohort materialization progress while review items are created at activate
  - `reviewWindowStart` string, date-time
  - `reviewWindowEnd` string, date-time

## Other responses

- `202`: Campaign activation started — review items materialize asynchronously
- `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
- `409`: Conflict — resource state prevents the requested action
- `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)
