---
title: "Create"
method: POST
path: "/api/v1/policies"
tags: ["Policy"]
---

# Create

`POST /api/v1/policies`

Create a policy.

## Request body

- C1ApiPolicyV1CreatePolicyRequest — The CreatePolicyRequest message is used to create a new policy.
  - `description` string — The description of the new policy.
  - `displayName` string, required — The display name of the new policy.
  - `policySteps` object — The map of policy type to policy steps. The key is the stringified version of the enum. See other policies for examples.
  - `policyType` 'POLICY_TYPE_UNSPECIFIED' | 'POLICY_TYPE_GRANT' | 'POLICY_TYPE_REVOKE' | 'POLICY_TYPE_CERTIFY' | 'POLICY_TYPE_ACCESS_REQUEST' | 'POLICY_TYPE_PROVISION' — The enum of the policy type.
  - `postActions` C1ApiPolicyV1PolicyPostActions[], nullable — Actions to occur after a policy finishes. As of now this is only valid on a certify policy to remediate a denied certification immediately.
    - `certifyRemediateImmediately` boolean, nullable — ONLY valid when used in a CERTIFY Ticket Type: Causes any deprovision or change in a grant to be applied when Certify Ticket is closed. This field is part of the `action` oneof. See the documentation for `c1.api.policy.v1.PolicyPostActions` for more details.
  - `reassignTasksToDelegates` boolean — Deprecated. Use setting in policy step instead
  - `rules` C1ApiPolicyV1Rule[], nullable — The rules field.
    - `condition` string — The condition field.
    - `policyKey` string — This is a reference to a list of policy steps from `policy_steps`

## Response `200`

The CreatePolicyResponse message contains the created policy object.

- C1ApiPolicyV1CreatePolicyResponse — The CreatePolicyResponse message contains the created policy object.
  - `policy` C1ApiPolicyV1Policy — A policy describes the behavior of the ConductorOne system when processing a task. You can describe the type, approvers, fallback behavior, and escalation processes.
    - `createdAt` string, date-time
    - `deletedAt` string, date-time
    - `description` string — The description of the Policy.
    - `displayName` string — The display name of the Policy.
    - `id` string — The ID of the Policy.
    - `policySteps` object — A map of string(policy type) to steps in a policy. This structure is leftover from a previous design, and should only ever have one key->value set.
    - `policyType` 'POLICY_TYPE_UNSPECIFIED' | 'POLICY_TYPE_GRANT' | 'POLICY_TYPE_REVOKE' | 'POLICY_TYPE_CERTIFY' | 'POLICY_TYPE_ACCESS_REQUEST' | 'POLICY_TYPE_PROVISION' — Indicates the type of this policy. Can also be used to get the value from policySteps.
    - `postActions` C1ApiPolicyV1PolicyPostActions[], nullable — An array of actions (ordered) to take place after a policy completes processing.
      - `certifyRemediateImmediately` boolean, nullable — ONLY valid when used in a CERTIFY Ticket Type: Causes any deprovision or change in a grant to be applied when Certify Ticket is closed. This field is part of the `action` oneof. See the documentation for `c1.api.policy.v1.PolicyPostActions` for more details.
    - `reassignTasksToDelegates` boolean — Deprecated. Use setting in policy step instead
    - `rules` C1ApiPolicyV1Rule[], nullable — The rules field.
      - `condition` string — The condition field.
      - `policyKey` string — This is a reference to a list of policy steps from `policy_steps`
    - `systemBuiltin` boolean — Whether this policy is a builtin system policy. Builtin system policies cannot be edited.
    - `updatedAt` string, date-time

## Changes

- **2025-08-06** `e09d811ca082` — 10 info
  - added the new optional request property `policySteps/additionalProperties/steps/items/approval/agent/agentFailureAction`
  - added the new optional request property `policySteps/additionalProperties/steps/items/approval/agent/reassignToUserIds`
  - added the new optional request property `policySteps/additionalProperties/steps/items/approval/allowDelegation`
  - added the new optional request property `policySteps/additionalProperties/steps/items/form`
  - …6 more
- **2025-06-24** `f5a989bebcdb` — 2 info
  - added the new optional request property `policySteps/additionalProperties/steps/items/provision/provisionPolicy/connector/deleteAccount`
  - added the optional property `policy/policySteps/additionalProperties/steps/items/provision/provisionPolicy/connector/deleteAccount` to the response with the `200` status
- **2025-05-30** `d5c56e8615fe` — 6 info
  - added the new optional request property `policySteps/additionalProperties/steps/items/approval/agent/agentMode`
  - added the new optional request property `policySteps/additionalProperties/steps/items/approval/escalation`
  - added the new optional request property `policySteps/additionalProperties/steps/items/approval/escalationEnabled`
  - added the optional property `policy/policySteps/additionalProperties/steps/items/approval/agent/agentMode` to the response with the `200` status
  - …2 more
- …earlier changes not shown

[Full history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/policies/post.md)

---

[API](https://skmtc.dev/conductorone/apis/c1-api.md) · [All operations](https://skmtc.dev/conductorone/apis/c1-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conductorone/c1-api/revisions/e09d811ca082/schema)
