---
title: "Create App Entitlement Routing Rule"
method: POST
path: "/api/v1/apps/{app_id}/entitlement_configuration_rules"
tags: ["App Entitlement Configuration Rule"]
---

# Create App Entitlement Routing Rule

`POST /api/v1/apps/{app_id}/entitlement_configuration_rules`

Invokes the c1.api.app.v1.AppEntitlementRoutingRuleService.CreateAppEntitlementRoutingRule method.

## Path parameters

- `app_id` string, required — The appId field.

## Request body

- C1ApiAppV1CreateAppEntitlementRoutingRuleRequestInput — The CreateAppEntitlementRoutingRuleRequest message.
  - `condition` string — CEL expression evaluated against the entitlement routing rule context. Empty string is valid and matches every target not matched earlier.
  - `description` string — The description field.
  - `displayName` string — The displayName field.
  - `enabled` boolean — The enabled field.
  - `priority` integer — A 1-indexed insertion slot; the server clamps it into [1, N+1] and re-packs siblings densely. Omit (or 0) to append the rule last.
  - `settings` C1ApiAppV1AppEntitlementRoutingRuleSettings — The AppEntitlementRoutingRuleSettings message.
    - `emergencyGrantEnabled` boolean — The emergencyGrantEnabled field.
    - `emergencyGrantPolicyId` string — The emergencyGrantPolicyId field.
    - `maxGrantDuration` string, duration, nullable
    - `requestPolicyId` string — The requestPolicyId field.
    - `requestSchemaId` string — The requestSchemaId field.

## Response `200`

Successful response

- C1ApiAppV1CreateAppEntitlementRoutingRuleResponse — The CreateAppEntitlementRoutingRuleResponse message.
  - `routingRule` C1ApiAppV1AppEntitlementRoutingRule — The AppEntitlementRoutingRule message.
    - `appId` string — The appId field.
    - `condition` string — CEL expression evaluated against the entitlement routing rule context. Empty string is valid and matches every target not matched earlier.
    - `createdAt` string, date-time, nullable
    - `deletedAt` string, date-time, nullable
    - `description` string — The description field.
    - `displayName` string — The displayName field.
    - `enabled` boolean — The enabled field.
    - `id` string — The id field.
    - `priority` integer — Evaluation order: lower numbers evaluate first; rules are sorted by (priority asc, id asc). On create, this is a 1-indexed insertion slot and the server re-packs siblings densely; omit it to append last. Ignored on update — use ReorderAppEntitlementRoutingRules (list order = priority order) to change an existing rule's position.
    - `settings` C1ApiAppV1AppEntitlementRoutingRuleSettings — The AppEntitlementRoutingRuleSettings message.
      - `emergencyGrantEnabled` boolean — The emergencyGrantEnabled field.
      - `emergencyGrantPolicyId` string — The emergencyGrantPolicyId field.
      - `maxGrantDuration` string, duration, nullable
      - `requestPolicyId` string — The requestPolicyId field.
      - `requestSchemaId` string — The requestSchemaId field.
    - `updatedAt` string, date-time, nullable

## Changes

- **2026-08-21** `f2cf3228f366` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/apps/:app_id/entitlement_configuration_rules/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/f2cf3228f366/schema)
