> ## Documentation Index
> Fetch the complete documentation index at: https://www.c1.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Delete Excluded Entitlements

> AddDeleteExcludedEntitlements adds and/or removes individual excluded entitlements for a
 user-first campaign without replacing the whole excluded set, so concurrent edits are not
 overwritten. Entitlements that are already excluded are skipped, and entitlements that are not
 excluded are ignored on removal. Exclusions only take effect for user-first campaigns (scope
 type ACCESS_REVIEW_SCOPE_TYPE_BY_USERS). This does not change the campaign's scope_v2, and
 exclusions only take effect while scope_v2 sets excluded_specific_resources; use
 SetCampaignScopeAndExcludedEntitlements to set the scope.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/access_review/{access_review_id}/excluded_entitlements/add_delete
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/access_review/{access_review_id}/excluded_entitlements/add_delete:
    post:
      tags:
        - Access Review
      summary: Add Delete Excluded Entitlements
      description: >-
        AddDeleteExcludedEntitlements adds and/or removes individual excluded
        entitlements for a
         user-first campaign without replacing the whole excluded set, so concurrent edits are not
         overwritten. Entitlements that are already excluded are skipped, and entitlements that are not
         excluded are ignored on removal. Exclusions only take effect for user-first campaigns (scope
         type ACCESS_REVIEW_SCOPE_TYPE_BY_USERS). This does not change the campaign's scope_v2, and
         exclusions only take effect while scope_v2 sets excluded_specific_resources; use
         SetCampaignScopeAndExcludedEntitlements to set the scope.
      operationId: >-
        c1.api.accessreview.v1.AccessReviewSetupEntitlementService.AddDeleteExcludedEntitlements
      parameters:
        - in: path
          name: access_review_id
          required: true
          schema:
            description: The ID of the user-first access review campaign to configure.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsRequestInput
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsResponse
          description: >-
            AccessReviewAddDeleteExcludedEntitlementsResponse is empty. Read the
            current exclusions with GetCampaignScopeAndEntitlements.
components:
  schemas:
    c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsRequestInput:
      description: >-
        Incrementally adds and/or removes excluded entitlements for a user-first
        campaign without
         replacing the entire set (contrast AccessReviewSetCampaignScopeAndExcludedEntitlementsRequest).
      properties:
        toAdd:
          description: The entitlements to add to the campaign's excluded set.
          items:
            $ref: >-
              #/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput
          type:
            - array
            - 'null'
        toDelete:
          description: The entitlements to remove from the campaign's excluded set.
          items:
            $ref: >-
              #/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput
          type:
            - array
            - 'null'
      title: Access Review Add Delete Excluded Entitlements Request
      type: object
      x-speakeasy-name-override: AccessReviewAddDeleteExcludedEntitlementsRequest
    c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsResponse:
      description: >-
        AccessReviewAddDeleteExcludedEntitlementsResponse is empty. Read the
        current exclusions with GetCampaignScopeAndEntitlements.
      title: Access Review Add Delete Excluded Entitlements Response
      type: object
      x-speakeasy-name-override: AccessReviewAddDeleteExcludedEntitlementsResponse
    c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput:
      description: Identifies an entitlement to exclude from a user-first campaign's scope.
      properties:
        appEntitlementId:
          description: The ID of the entitlement to exclude.
          type: string
        appId:
          description: The ID of the application that owns the entitlement.
          type: string
      title: Access Review Excluded Entitlement Input
      type: object
      x-speakeasy-name-override: AccessReviewExcludedEntitlementInput
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````