---
title: "Search"
method: POST
path: "/api/v1/search/entitlements"
tags: ["App Entitlement"]
---

# Search

`POST /api/v1/search/entitlements`

Search app entitlements based on filters specified in the request body.
 Each AppEntitlementView row is large — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.

## Request body

- C1ApiAppV1AppEntitlementSearchServiceSearchRequest — Search app entitlements by a variety of filters.
  - `accessReviewId` string — Search for app entitlements that are being reviewed as part of this access review campaign.
  - `alias` string — Search for app entitlements that have this alias (exact match).
  - `appIds` string[], nullable — Search for app entitlements contained in any of these apps.
  - `appUserIds` string[], nullable — Search for app entitlements that are granted to any of these app user ids.
  - `complianceFrameworkIds` string[], nullable — Search for app entitlements that are part of these compliance frameworks.
  - `displayName` string — Filter results to entitlements with this exact display name.
  - `excludeAppIds` string[], nullable — Exclude app entitlements from the results that are in these app IDs.
  - `excludeAppUserIds` string[], nullable — Exclude entitlements from results that are granted to any of these app users.
  - `excludeImmutable` boolean — If true, exclude immutable entitlements (e.g., system-managed entitlements that cannot be modified).
  - `excludeResourceTypeIds` string[], nullable — Exclude entitlements with any of these resource type IDs from results.
  - `excludedEntitlementRefs` C1ApiAppV1AppEntitlementRef[], nullable — Exclude these specific entitlements from results.
    - `appId` string — The appId field.
    - `id` string — The id field.
  - `expandMask` C1ApiAppV1AppEntitlementExpandMask — The app entitlement expand mask allows the user to get additional information when getting responses containing app entitlement views.
    - `paths` string[], nullable — Array of strings to describe which items to expand on the return value. Can be any combination of "*", "app_id", "app_resource_type_id", or "app_resource_id".
  - `includeDeleted` boolean — Include deleted app entitlements, this includes app entitlements that have a deleted parent object (app, app resource, app resource type)
  - `isAutomated` boolean — If true, restrict results to entitlements that have an automation rule configured.
  - `membershipType` string[], nullable — Filter results to entitlements where the user has any of these membership types (e.g., member, owner, admin).
  - `onlyGetExpiring` boolean — If true, restrict results to entitlements that have at least one expiring grant.
  - `pageSize` integer — The pageSize where 0 <= pageSize <= 100. Values < 10 will be set to 10. A value of 0 returns the default page size (currently 25)
  - `pageToken` string — The pageToken field.
  - `policyRefs` C1ApiPolicyV1PolicyRef[], nullable — Search for app entitlements that use any of these policies.
    - `id` string — The id field.
  - `query` string — Query the app entitlements with a fuzzy search on display name and description.
  - `refs` C1ApiAppV1AppEntitlementRef[], nullable — Filter results to only these specific entitlements.
    - `appId` string — The appId field.
    - `id` string — The id field.
  - `requestSchemaIds` string[], nullable — Search for app entitlements that are bound to any of these request schemas.
  - `resourceIds` string[], nullable — Search for app entitlements that belongs to these resources.
  - `resourceTraitIds` string[], nullable — Filter results to entitlements whose resource types have any of these trait IDs.
  - `resourceTypeIds` string[], nullable — Search for app entitlements that are for items with resources types that have matching names. Example names are "group", "role", and "app".
  - `riskLevelIds` string[], nullable — Search for app entitlements with these risk levels.
  - `sourceConnectorId` string — Filter results to entitlements synced from this connector.

## Response `200`

Successful response

- C1ApiAppV1AppEntitlementSearchServiceSearchResponse — The AppEntitlementSearchServiceSearchResponse message.
  - `expanded` object[], nullable — List of related objects.
    - `@type` string — The type of the serialized message.
  - `facets` C1ApiSearchV1Facets — Indicates one value of a facet.
    - `count` string, int64 — The count of items in this facet.
    - `facets` C1ApiSearchV1FacetCategory[], nullable — The facet being referenced.
      - `displayName` string — The display name of the category.
      - `iconUrl` string — An icon for the category.
      - `param` string — The param that is being set when checking a facet in this category.
      - `range` C1ApiSearchV1FacetRangeItem — The FacetRangeItem message.
        - `ranges` C1ApiSearchV1FacetRange[], nullable — An array of facet ranges.
          - `count` string, int64 — The count of items in the range.
          - `displayName` string — The display name of the range.
          - `from` string, int64 — The starting value of the range.
          - `iconUrl` string — The icon of the range.
          - `to` string, int64 — The ending value of the range.
      - `value` C1ApiSearchV1FacetValueItem — The FacetValueItem message.
        - `values` C1ApiSearchV1FacetValue[], nullable — An array of facet values.
          - `count` string, int64 — The count of the values in this facet.
          - `displayName` string — The name of this facet.
          - `iconUrl` string — The icon for this facet.
          - `value` string — The value of this facet.
  - `list` C1ApiAppV1AppEntitlementView[], nullable — List of app entitlement view objects.
    - `appEntitlement` C1ApiAppV1AppEntitlement — The app entitlement represents one permission in a downstream App (SAAS) that can be granted. For example, GitHub Read vs GitHub Write. This message contains a oneof named max_grant_duration. Only a single field of the following list may be set at a time: - durationUnset - durationGrant
      - `alias` string — The alias of the app entitlement used by Cone. Also exact-match queryable.
      - `annotations` object — Bounded key/value metadata bag for IaC marking and customer tags. See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128 chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars URL-safe ASCII; total serialized ≤ 4096 bytes. Keys matching ^c1/ are reserved. Well-known keys: `managed_by`, `iac_workspace`, `iac_resource_address`, `iac_tool_version`.
      - `appId` string — The ID of the app that is associated with the app entitlement.
      - `appResourceId` string — The ID of the app resource that is associated with the app entitlement
      - `appResourceTypeId` string — The ID of the app resource type that is associated with the app entitlement
      - `certifyPolicyId` string — The ID of the policy that will be used for certify tickets related to the app entitlement.
      - `complianceFrameworkValueIds` string[], nullable — The IDs of different compliance frameworks associated with this app entitlement ex (SOX, HIPAA, PCI, etc.)
      - `createdAt` string, date-time, nullable
      - `defaultValuesApplied` boolean — Flag to indicate if app-level access request defaults have been applied to the entitlement
      - `deletedAt` string, date-time, nullable
      - `deprovisionerPolicy` C1ApiPolicyV1ProvisionPolicy — ProvisionPolicy is a oneOf that indicates how a provision step should be processed. This message contains a oneof named typ. Only a single field of the following list may be set at a time: - connector - manual - delegated - webhook - multiStep - externalTicket - unconfigured - action - devicePlacement
        - `action` C1ApiPolicyV1ActionProvision — This provision step indicates that account lifecycle action should be called to provision this entitlement.
          - `actionName` string — The actionName field.
          - `appId` string — The appId field.
          - `connectorId` string — The connectorId field.
          - `displayName` string — The displayName field.
        - `connector` C1ApiPolicyV1ConnectorProvision — Indicates that a connector should perform the provisioning. This object has no fields. This message contains a oneof named provision_type. Only a single field of the following list may be set at a time: - defaultBehavior - account - deleteAccount
          - `account` C1ApiPolicyV1ConnectorProvisionAccountProvision — The AccountProvision message. This message contains a oneof named storage_type. Only a single field of the following list may be set at a time: - saveToVault - doNotSave
            - `config` object, nullable
            - `connectorId` string — The connectorId field.
            - `doNotSave` C1ApiPolicyV1ConnectorProvisionDoNotSave — The DoNotSave message.
            - `saveToVault` C1ApiPolicyV1ConnectorProvisionSaveToVault — The SaveToVault message.
              - …
            - `schemaId` string — The schemaId field.
          - `defaultBehavior` C1ApiPolicyV1ConnectorProvisionDefaultBehavior — The DefaultBehavior message.
            - `connectorId` string — this checks if the entitlement is enabled by provisioning in a specific connector this can happen automatically and doesn't need any extra info
          - `deleteAccount` C1ApiPolicyV1ConnectorProvisionDeleteAccount — The DeleteAccount message.
            - `connectorId` string — The connectorId field.
        - `delegated` C1ApiPolicyV1DelegatedProvision — This provision step indicates that we should delegate provisioning to the configuration of another app entitlement. This app entitlement does not have to be one from the same app, but MUST be configured as a proxy binding leading into this entitlement.
          - `appId` string — The AppID of the entitlement to delegate provisioning to.
          - `entitlementId` string — The ID of the entitlement we are delegating provisioning to.
          - `implicit` boolean — If true, a binding will be automatically created from the entitlement of the parent app.
        - `devicePlacement` C1ApiPolicyV1DevicePlacementProvision — This provision step is fulfilled by a Latchkey member device producing an MLS Welcome for the recipient. It has no assignee and no instructions because the step is not human-actionable.
          - `vaultBoundaryId` string — The vaultBoundaryId field.
        - `externalTicket` C1ApiPolicyV1ExternalTicketProvision — This provision step indicates that we should check an external ticket to provision this entitlement
          - `appId` string — The appId field.
          - `connectorId` string — The connectorId field.
          - `externalTicketProvisionerConfigId` string — The externalTicketProvisionerConfigId field.
          - `instructions` string — This field indicates a text body of instructions for the provisioner to indicate.
        - `manual` C1ApiPolicyV1ManualProvision — Manual provisioning indicates that a human must intervene for the provisioning of this step.
          - `assignee` C1ApiPolicyV1ProvisionerAssignment — ProvisionerAssignment defines how a provisioner is dynamically assigned. This message contains a oneof named typ. Only a single field of the following list may be set at a time: - users - appOwners - group - manager - expression - entitlementOwners
            - `appOwners` C1ApiPolicyV1AppOwnerProvisioner — AppOwnerProvisioner resolves to app owners.
              - …
            - `entitlementOwners` C1ApiPolicyV1EntitlementOwnerProvisioner — EntitlementOwnerProvisioner resolves to entitlement owners.
              - …
            - `expression` C1ApiPolicyV1ExpressionProvisioner — ExpressionProvisioner evaluates CEL expressions to determine provisioners.
              - …
            - `group` C1ApiPolicyV1GroupProvisioner — GroupProvisioner resolves to members of a specific group.
              - …
            - `manager` C1ApiPolicyV1ManagerProvisioner — ManagerProvisioner resolves to the user's manager.
              - …
            - `users` C1ApiPolicyV1UserProvisioner — UserProvisioner assigns specific users as provisioners.
              - …
          - `instructions` string — This field indicates a text body of instructions for the provisioner to indicate.
          - `userIds` string[], nullable — An array of users that are required to provision during this step. Deprecated: Use assignee field instead for dynamic provisioner assignment.
        - `multiStep` C1ApiPolicyV1MultiStep — MultiStep indicates that this provision step has multiple steps to process.
          - `provisionSteps` C1ApiPolicyV1ProvisionPolicy[], nullable — The array of provision steps to process.
        - `unconfigured` C1ApiPolicyV1UnconfiguredProvision — The UnconfiguredProvision message.
        - `webhook` C1ApiPolicyV1WebhookProvision — This provision step indicates that a webhook should be called to provision this entitlement.
          - `webhookId` string — The ID of the webhook to call for provisioning.
      - `description` string — The description of the app entitlement.
      - `displayName` string — The display name of the app entitlement.
      - `durationGrant` string, duration, nullable
      - `durationUnset` object, nullable
      - `emergencyGrantEnabled` boolean — This enables tasks to be created in an emergency and use a selected emergency access policy.
      - `emergencyGrantPolicyId` string — The ID of the policy that will be used for emergency access grant tasks.
      - `externalId` string — The upstream product's native external ID for this entitlement (e.g. an Okta group ID). Populated from the connector's external ID during sync.
      - `grantCount` string, int64 — The amount of grants open for this entitlement
      - `grantPolicyId` string — The ID of the policy that will be used for grant tickets related to the app entitlement.
      - `id` string — The unique ID for the App Entitlement.
      - `isAutomationEnabled` boolean — Flag to indicate whether automation (for adding users to entitlement based on rules) has been enabled.
      - `isManuallyManaged` boolean — Flag to indicate if the app entitlement is manually managed.
      - `matchBatonId` string — An identifier used to match this entitlement to a connector-synced entitlement during sync.
      - `overrideAccessRequestsDefaults` boolean — Flag to indicate if the app-level access request settings have been overridden for the entitlement
      - `provisionerPolicy` C1ApiPolicyV1ProvisionPolicy — ProvisionPolicy is a oneOf that indicates how a provision step should be processed. This message contains a oneof named typ. Only a single field of the following list may be set at a time: - connector - manual - delegated - webhook - multiStep - externalTicket - unconfigured - action - devicePlacement
        - `action` C1ApiPolicyV1ActionProvision — This provision step indicates that account lifecycle action should be called to provision this entitlement.
          - `actionName` string — The actionName field.
          - `appId` string — The appId field.
          - `connectorId` string — The connectorId field.
          - `displayName` string — The displayName field.
        - `connector` C1ApiPolicyV1ConnectorProvision — Indicates that a connector should perform the provisioning. This object has no fields. This message contains a oneof named provision_type. Only a single field of the following list may be set at a time: - defaultBehavior - account - deleteAccount
          - `account` C1ApiPolicyV1ConnectorProvisionAccountProvision — The AccountProvision message. This message contains a oneof named storage_type. Only a single field of the following list may be set at a time: - saveToVault - doNotSave
            - `config` object, nullable
            - `connectorId` string — The connectorId field.
            - `doNotSave` C1ApiPolicyV1ConnectorProvisionDoNotSave — The DoNotSave message.
            - `saveToVault` C1ApiPolicyV1ConnectorProvisionSaveToVault — The SaveToVault message.
              - …
            - `schemaId` string — The schemaId field.
          - `defaultBehavior` C1ApiPolicyV1ConnectorProvisionDefaultBehavior — The DefaultBehavior message.
            - `connectorId` string — this checks if the entitlement is enabled by provisioning in a specific connector this can happen automatically and doesn't need any extra info
          - `deleteAccount` C1ApiPolicyV1ConnectorProvisionDeleteAccount — The DeleteAccount message.
            - `connectorId` string — The connectorId field.
        - `delegated` C1ApiPolicyV1DelegatedProvision — This provision step indicates that we should delegate provisioning to the configuration of another app entitlement. This app entitlement does not have to be one from the same app, but MUST be configured as a proxy binding leading into this entitlement.
          - `appId` string — The AppID of the entitlement to delegate provisioning to.
          - `entitlementId` string — The ID of the entitlement we are delegating provisioning to.
          - `implicit` boolean — If true, a binding will be automatically created from the entitlement of the parent app.
        - `devicePlacement` C1ApiPolicyV1DevicePlacementProvision — This provision step is fulfilled by a Latchkey member device producing an MLS Welcome for the recipient. It has no assignee and no instructions because the step is not human-actionable.
          - `vaultBoundaryId` string — The vaultBoundaryId field.
        - `externalTicket` C1ApiPolicyV1ExternalTicketProvision — This provision step indicates that we should check an external ticket to provision this entitlement
          - `appId` string — The appId field.
          - `connectorId` string — The connectorId field.
          - `externalTicketProvisionerConfigId` string — The externalTicketProvisionerConfigId field.
          - `instructions` string — This field indicates a text body of instructions for the provisioner to indicate.
        - `manual` C1ApiPolicyV1ManualProvision — Manual provisioning indicates that a human must intervene for the provisioning of this step.
          - `assignee` C1ApiPolicyV1ProvisionerAssignment — ProvisionerAssignment defines how a provisioner is dynamically assigned. This message contains a oneof named typ. Only a single field of the following list may be set at a time: - users - appOwners - group - manager - expression - entitlementOwners
            - `appOwners` C1ApiPolicyV1AppOwnerProvisioner — AppOwnerProvisioner resolves to app owners.
              - …
            - `entitlementOwners` C1ApiPolicyV1EntitlementOwnerProvisioner — EntitlementOwnerProvisioner resolves to entitlement owners.
              - …
            - `expression` C1ApiPolicyV1ExpressionProvisioner — ExpressionProvisioner evaluates CEL expressions to determine provisioners.
              - …
            - `group` C1ApiPolicyV1GroupProvisioner — GroupProvisioner resolves to members of a specific group.
              - …
            - `manager` C1ApiPolicyV1ManagerProvisioner — ManagerProvisioner resolves to the user's manager.
              - …
            - `users` C1ApiPolicyV1UserProvisioner — UserProvisioner assigns specific users as provisioners.
              - …
          - `instructions` string — This field indicates a text body of instructions for the provisioner to indicate.
          - `userIds` string[], nullable — An array of users that are required to provision during this step. Deprecated: Use assignee field instead for dynamic provisioner assignment.
        - `multiStep` C1ApiPolicyV1MultiStep — MultiStep indicates that this provision step has multiple steps to process.
          - `provisionSteps` C1ApiPolicyV1ProvisionPolicy[], nullable — The array of provision steps to process.
        - `unconfigured` C1ApiPolicyV1UnconfiguredProvision — The UnconfiguredProvision message.
        - `webhook` C1ApiPolicyV1WebhookProvision — This provision step indicates that a webhook should be called to provision this entitlement.
          - `webhookId` string — The ID of the webhook to call for provisioning.
      - `purpose` 'APP_ENTITLEMENT_PURPOSE_VALUE_UNSPECIFIED' | 'APP_ENTITLEMENT_PURPOSE_VALUE_ASSIGNMENT' | 'APP_ENTITLEMENT_PURPOSE_VALUE_PERMISSION' | 'APP_ENTITLEMENT_PURPOSE_VALUE_OWNERSHIP' — The purpose of this entitlement (e.g., assignment, permission, ownership).
      - `requestSchemaId` string — The ID of the request schema associated with this app entitlement.
      - `revokePolicyId` string — The ID of the policy that will be used for revoke tickets related to the app entitlement
      - `riskLevelValueId` string — The ID of the risk level assigned to this entitlement.
      - `slug` string — The slug is displayed as an oval next to the name in the frontend of C1, it tells you what permission the entitlement grants. See https://www.conductorone.com/docs/product/admin/entitlements/
      - `sourceConnectorIds` object — Map to tell us which connector the entitlement came from.
      - `systemBuiltin` boolean — This field indicates if this is a system builtin entitlement.
      - `updatedAt` string, date-time, nullable
      - `userEditedMask` string, nullable
    - `appPath` string — JSONPATH expression indicating the location of the App object in the array.
    - `appResourcePath` string — JSONPATH expression indicating the location of the App Resource Type object in the expanded array.
    - `appResourceTypePath` string — JSONPATH expression indicating the location of the App Resource object in the array.
    - `objectPermissions` C1ApiIamV1ActorObjectPermissions — Legacy: do not use for new objects. Retained only for the existing AppResource / AppEntitlement / access-review consumers, which will migrate to c1.api.authorization.v1.ActorObjectPermissions in IGA-2331. New object views should reference c1.api.authorization.v1.ActorObjectPermissions instead.
      - `delete` boolean — The delete field.
      - `edit` boolean — The edit field.
      - `extra` object — The extra field.
      - `read` boolean — The read field.
  - `nextPageToken` string — The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.

---

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