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

# Replace items in a condition set

> Create an intent to replace all items in a condition set. The intent must be authorized by the condition set owner before it can be executed.



## OpenAPI

````yaml put /v1/intents/condition_sets/{condition_set_id}/condition_set_items
openapi: 3.1.0
info:
  version: 0.0.1
  title: Privy API
  description: >-
    REST API for Privy's wallet infrastructure — provision and manage wallets
    across EVM, Solana, and Bitcoin, authenticate users, sign transactions, and
    configure programmable policies and authorization intents.
  contact:
    name: Privy
    url: https://www.privy.io/
    email: support@privy.io
servers:
  - url: https://api.privy.io
security: []
tags:
  - name: Accounts
    description: Operations related to asset accounts
  - name: Actions
    description: Operations related to looking up wallet actions across an app
  - name: Aggregations
    description: Operations related to aggregations for tracking and measuring metrics
  - name: Apps
    description: Operations related to app settings and allowlist management
  - name: Cards
    description: Operations related to stablecoin-backed card issuing
  - name: Client Auth
    description: OAuth token exchange and device authorization operations
  - name: Condition Sets
    description: Operations related to condition sets
  - name: Embedded wallets
    description: Operations related to embedded wallet creation and authentication
  - name: Fiat
    description: Operations related to fiat onramping and offramping
  - name: Intents
    description: Operations related to authorization intents for wallet actions
  - name: Key quorums
    description: Operations related to key quorums
  - name: Kraken Embed
    description: >-
      Operations for Kraken Embed integration, including quotes, trades, user
      management, and portfolio operations
  - name: OAuth
    description: >-
      OAuth 2.0 endpoints including Device Authorization Grant (RFC 8628) for
      CLI and limited-input device login flows
  - name: Organizations
    description: Operations related to organizations
  - name: Policies
    description: Operations related to policies
  - name: Shared
    description: Common schemas shared across resources
  - name: Swaps
    description: Operations for swapping tokens within wallets
  - name: Teams
    description: Operations related to dashboard team management
  - name: Transactions
    description: Operations related to transactions
  - name: User signers
    description: Operations related to user signers
  - name: Users
    description: Operations related to users
  - name: Users MFA
    description: Operations related to user MFA
  - name: Wallet Actions
    description: Operations related to wallet actions
  - name: Wallet Automations
    description: Operations related to wallet automations
  - name: Wallets
    description: Operations related to wallets
  - name: Webhooks
    description: >-
      Webhook events that Privy sends to your configured endpoint when specific
      actions occur in your app
  - name: Yield
    description: >-
      Operations for depositing and withdrawing funds from ERC-4626 yield vaults
      (Morpho, Aave)
paths:
  /v1/intents/condition_sets/{condition_set_id}/condition_set_items:
    put:
      tags:
        - Intents
      summary: Create condition set items update intent
      description: >-
        Create an intent to replace all items in a condition set. The intent
        must be authorized by the condition set owner before it can be executed.
      operationId: createConditionSetItemsUpdateIntent
      parameters:
        - schema:
            type: string
            minLength: 24
            maxLength: 24
          required: true
          name: condition_set_id
          in: path
        - schema:
            type: string
            description: ID of your Privy app.
          required: true
          name: privy-app-id
          in: header
        - schema:
            type: string
            description: >-
              Request expiry. Value is a Unix timestamp in milliseconds
              representing the deadline by which the request must be processed.
          required: false
          name: privy-request-expiry
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConditionSetItemsRequestBody'
      responses:
        '200':
          description: Created condition set items update intent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConditionSetItemMutateIntentResponse'
      security:
        - appSecretAuth: []
components:
  schemas:
    ConditionSetItemsRequestBody:
      type: array
      items:
        $ref: '#/components/schemas/ConditionSetItemValueInput'
      minItems: 1
      maxItems: 100
      description: >-
        Array of values to add to the condition set. Maximum 100 items per
        request.
      title: ConditionSetItemsRequestBody
      x-stainless-model: policies.condition_set_items_request_body
    ConditionSetItemMutateIntentResponse:
      allOf:
        - $ref: '#/components/schemas/BaseIntentResponse'
        - type: object
          properties:
            intent_type:
              type: string
              enum:
                - CONDITION_SET_ITEM
            current_resource_data:
              allOf:
                - $ref: '#/components/schemas/ConditionSetItem'
                - description: >-
                    Current state of the targeted condition set item. Undefined
                    for intents that add or replace items, or if the item was
                    deleted
            condition_set:
              allOf:
                - $ref: '#/components/schemas/ConditionSet'
                - description: >-
                    Parent condition set of the items. If undefined, the
                    condition set was deleted and no longer exists
            request_details:
              $ref: '#/components/schemas/ConditionSetItemIntentRequestDetails'
            action_result:
              allOf:
                - $ref: '#/components/schemas/BaseActionResult'
                - type: object
                  properties:
                    response_body:
                      $ref: '#/components/schemas/ConditionSetItems'
                    prior_state:
                      allOf:
                        - $ref: '#/components/schemas/ConditionSetItems'
                        - description: >-
                            Items of the condition set immediately before
                            execution, all of which a replace deletes. For a
                            large condition set, includes only some of its
                            items. Undefined for intents that add items
              description: >-
                Result of condition set item execution (only present if status
                is 'executed' or 'failed')
              title: BaseActionResult
              x-stainless-model: intents.base_action_result
          required:
            - intent_type
            - request_details
      description: Response for an intent that adds or replaces condition set items
      title: ConditionSetItemMutateIntentResponse
      x-stainless-model: intents.condition_set_item_mutate_intent_response
    ConditionSetItemValueInput:
      type: object
      properties:
        value:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
          maxLength: 100
          description: >-
            Optional label for the item, unique within the condition set
            ignoring case.
      required:
        - value
      additionalProperties: false
      description: A value to add to a condition set, with an optional name.
      title: ConditionSetItemValueInput
      x-stainless-model: policies.condition_set_item_value_input
    BaseIntentResponse:
      type: object
      properties:
        intent_id:
          type: string
          description: Unique ID for the intent
        created_by_display_name:
          type: string
          description: Display name of the user who created the intent
        created_by_id:
          type: string
          description: >-
            ID of the user who created the intent. If undefined, the intent was
            created using the app secret
        created_at:
          type: number
          description: Unix timestamp when the intent was created
        resource_id:
          type: string
          description: ID of the resource being modified (wallet_id, policy_id, etc)
        authorization_details:
          type: array
          items:
            $ref: '#/components/schemas/IntentAuthorization'
          description: >-
            Detailed authorization information including key quorum members,
            thresholds, and signature status
        status:
          $ref: '#/components/schemas/IntentStatus'
        custom_expiry:
          type: boolean
          description: >-
            Whether this intent has a custom expiry time set by the client. If
            false, the intent expires after a default duration.
        expires_at:
          type: number
          description: Unix timestamp when the intent expires
        rejected_at:
          type: number
          description: >-
            Unix timestamp when the intent was rejected, present when status is
            'rejected'
        dismissed_at:
          type: number
          description: >-
            Unix timestamp when the intent was dismissed, present when status is
            'dismissed'
        dismissal_reason:
          type: string
          description: >-
            Human-readable reason for dismissal, present when status is
            'dismissed'
      required:
        - intent_id
        - created_by_display_name
        - created_at
        - resource_id
        - authorization_details
        - status
        - custom_expiry
        - expires_at
      description: Common fields shared by all intent response types.
      title: BaseIntentResponse
      x-stainless-model: intents.base_intent_response
    ConditionSetItem:
      type: object
      properties:
        id:
          type: string
          minLength: 24
          maxLength: 24
          description: Unique ID of the created condition set item.
        condition_set_id:
          type: string
          minLength: 24
          maxLength: 24
          description: Unique ID of the condition set this item belongs to.
        value:
          type: string
          description: The value stored in this condition set item.
        name:
          type:
            - string
            - 'null'
          default: null
          description: Label for the item, or null if it has none.
        created_at:
          type: number
          description: >-
            Unix timestamp of when the condition set item was created in
            milliseconds.
      required:
        - id
        - condition_set_id
        - value
        - created_at
      description: A single item in a condition set.
      title: ConditionSetItem
      example:
        id: abc123xyz456def789ghi012
        condition_set_id: qvah5m2hmp9abqlxdmfiht95
        value: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
        name: Treasury cold storage
        created_at: 1761271537642
      x-stainless-model: policies.condition_set_item
    ConditionSet:
      type: object
      properties:
        id:
          type: string
          minLength: 24
          maxLength: 24
          description: >-
            Unique ID of the created condition set. This will be the primary
            identifier when using the condition set in the future.
        name:
          type: string
          minLength: 1
          maxLength: 100
          description: Name of the condition set.
        owner_id:
          description: >-
            The key quorum ID of the owner of the condition set, or null if
            unowned.
          anyOf:
            - $ref: '#/components/schemas/KeyQuorumId'
            - type: 'null'
        created_at:
          type: number
          description: >-
            Unix timestamp of when the condition set was created in
            milliseconds.
      required:
        - id
        - name
        - owner_id
        - created_at
      description: A condition set for grouping related condition values.
      title: ConditionSet
      example:
        id: qvah5m2hmp9abqlxdmfiht95
        name: Approved Recipients
        owner_id: asgkan0r7gi0wdbvf9cw8qio
        created_at: 1761271537642
      x-stainless-model: policies.condition_set
    ConditionSetItemIntentRequestDetails:
      oneOf:
        - $ref: '#/components/schemas/ConditionSetItemIntentCreateRequestDetails'
        - $ref: '#/components/schemas/ConditionSetItemIntentUpdateRequestDetails'
        - $ref: '#/components/schemas/ConditionSetItemIntentDeleteRequestDetails'
      discriminator:
        propertyName: method
        mapping:
          POST: '#/components/schemas/ConditionSetItemIntentCreateRequestDetails'
          PUT: '#/components/schemas/ConditionSetItemIntentUpdateRequestDetails'
          DELETE: '#/components/schemas/ConditionSetItemIntentDeleteRequestDetails'
      description: >-
        The original condition set item request. Method is POST (add items), PUT
        (replace items), or DELETE (delete an item)
      title: ConditionSetItemIntentRequestDetails
      x-stainless-model: intents.condition_set_item_intent_request_details
    BaseActionResult:
      type: object
      properties:
        status_code:
          type: number
          description: HTTP status code from the action execution
        executed_at:
          type: number
          description: Unix timestamp when the action was executed
        authorized_by_display_name:
          type: string
          description: Display name of the key quorum that authorized execution
        authorized_by_id:
          type: string
          description: ID of the key quorum that authorized execution
      required:
        - status_code
        - executed_at
      description: Common fields for intent action execution results.
      title: BaseActionResult
      x-stainless-model: intents.base_action_result
    ConditionSetItems:
      type: array
      items:
        $ref: '#/components/schemas/ConditionSetItem'
      description: Array of condition set items.
      title: ConditionSetItems
      x-stainless-model: policies.condition_set_items
    IntentAuthorization:
      type: object
      properties:
        members:
          type: array
          items:
            $ref: '#/components/schemas/IntentAuthorizationMember'
          description: Members in this authorization quorum
        threshold:
          type: number
          description: Number of signatures required to satisfy this quorum
        display_name:
          type: string
          description: Display name of the key quorum
      required:
        - members
        - threshold
      description: Authorization quorum for an intent
      title: IntentAuthorization
      x-stainless-model: intents.intent_authorization
    IntentStatus:
      type: string
      enum:
        - pending
        - processing
        - executed
        - failed
        - expired
        - rejected
        - dismissed
      description: Current status of an intent.
      title: IntentStatus
      x-stainless-model: intents.intent_status
    KeyQuorumId:
      type: string
      format: cuid2
      description: A unique identifier for a key quorum.
      title: KeyQuorumId
      x-stainless-model: shared.key_quorum_id
    ConditionSetItemIntentCreateRequestDetails:
      type: object
      properties:
        method:
          type: string
          enum:
            - POST
        url:
          type: string
          pattern: >-
            (?:https:\/\/(?:[^/]+\.privy\.io|privy\.io|[^/]+\.privy-preview\.app|privy-preview\.app)(?:\/api)?|http:\/\/localhost(?::\d+)?(?:\/api)?)\/v1\/condition_sets\/[0-9a-z]{24,32}\/condition_set_items$
        body:
          $ref: '#/components/schemas/ConditionSetItemsRequestBody'
      required:
        - method
        - url
        - body
      additionalProperties: false
      description: Request details for adding items to a condition set via intent.
      title: ConditionSetItemIntentCreateRequestDetails
      x-stainless-model: intents.condition_set_item_intent_create_request_details
    ConditionSetItemIntentUpdateRequestDetails:
      type: object
      properties:
        method:
          type: string
          enum:
            - PUT
        url:
          type: string
          pattern: >-
            (?:https:\/\/(?:[^/]+\.privy\.io|privy\.io|[^/]+\.privy-preview\.app|privy-preview\.app)(?:\/api)?|http:\/\/localhost(?::\d+)?(?:\/api)?)\/v1\/condition_sets\/[0-9a-z]{24,32}\/condition_set_items$
        body:
          $ref: '#/components/schemas/ConditionSetItemsRequestBody'
      required:
        - method
        - url
        - body
      additionalProperties: false
      description: Request details for replacing the items of a condition set via intent.
      title: ConditionSetItemIntentUpdateRequestDetails
      x-stainless-model: intents.condition_set_item_intent_update_request_details
    ConditionSetItemIntentDeleteRequestDetails:
      type: object
      properties:
        method:
          type: string
          enum:
            - DELETE
        url:
          type: string
          pattern: >-
            (?:https:\/\/(?:[^/]+\.privy\.io|privy\.io|[^/]+\.privy-preview\.app|privy-preview\.app)(?:\/api)?|http:\/\/localhost(?::\d+)?(?:\/api)?)\/v1\/condition_sets\/[0-9a-z]{24,32}\/condition_set_items\/[0-9a-z]{24,32}$
        body:
          allOf:
            - $ref: '#/components/schemas/ConditionSetItemIntentDeleteRequestBody'
            - default: {}
      required:
        - method
        - url
      additionalProperties: false
      description: Request details for deleting a condition set item via intent.
      title: ConditionSetItemIntentDeleteRequestDetails
      x-stainless-model: intents.condition_set_item_intent_delete_request_details
    IntentAuthorizationMember:
      oneOf:
        - $ref: '#/components/schemas/IntentAuthorizationUserMember'
        - $ref: '#/components/schemas/IntentAuthorizationKeyMember'
        - $ref: '#/components/schemas/IntentAuthorizationKeyQuorum'
      discriminator:
        propertyName: type
        mapping:
          user: '#/components/schemas/IntentAuthorizationUserMember'
          key: '#/components/schemas/IntentAuthorizationKeyMember'
          key_quorum: '#/components/schemas/IntentAuthorizationKeyQuorum'
      description: >-
        A member of an intent authorization quorum. Can be a user, key, or
        nested key quorum.
      title: IntentAuthorizationMember
      x-stainless-model: intents.intent_authorization_member
    ConditionSetItemIntentDeleteRequestBody:
      type: object
      properties: {}
      description: Empty request body for a condition set item delete intent.
      x-stainless-empty-object: true
      title: ConditionSetItemIntentDeleteRequestBody
      x-stainless-model: intents.condition_set_item_intent_delete_request_body
    IntentAuthorizationUserMember:
      type: object
      properties:
        type:
          type: string
          enum:
            - user
        user_id:
          type: string
          description: User ID of the key quorum member
        signed_at:
          type:
            - number
            - 'null'
          description: Unix timestamp when this member signed, or null if not yet signed.
      required:
        - type
        - user_id
        - signed_at
      description: A user member of an intent authorization quorum.
      title: IntentAuthorizationUserMember
      x-stainless-model: intents.intent_authorization_user_member
    IntentAuthorizationKeyMember:
      type: object
      properties:
        type:
          type: string
          enum:
            - key
        public_key:
          type: string
          description: Public key of the key quorum member
        signed_at:
          type:
            - number
            - 'null'
          description: Unix timestamp when this member signed, or null if not yet signed.
      required:
        - type
        - public_key
        - signed_at
      description: A key member of an intent authorization quorum.
      title: IntentAuthorizationKeyMember
      x-stainless-model: intents.intent_authorization_key_member
    IntentAuthorizationKeyQuorum:
      type: object
      properties:
        type:
          type: string
          enum:
            - key_quorum
        key_quorum_id:
          type: string
          description: ID of the child key quorum member
        display_name:
          type: string
          description: Display name for the child key quorum (if any)
        threshold_met:
          type: boolean
          description: Whether this child key quorum has met its signature threshold
        threshold:
          type: number
          description: Number of signatures required from this child quorum
        members:
          type: array
          items:
            $ref: '#/components/schemas/IntentAuthorizationKeyQuorumMember'
          description: Members of this child quorum
      required:
        - type
        - key_quorum_id
        - threshold_met
        - threshold
        - members
      description: A nested key quorum member of an intent authorization quorum.
      title: IntentAuthorizationKeyQuorum
      x-stainless-model: intents.intent_authorization_key_quorum
    IntentAuthorizationKeyQuorumMember:
      oneOf:
        - $ref: '#/components/schemas/IntentAuthorizationUserMember'
        - $ref: '#/components/schemas/IntentAuthorizationKeyMember'
      discriminator:
        propertyName: type
        mapping:
          user: '#/components/schemas/IntentAuthorizationUserMember'
          key: '#/components/schemas/IntentAuthorizationKeyMember'
      description: >-
        A leaf member (user or key) of a nested key quorum in an intent
        authorization.
      title: IntentAuthorizationKeyQuorumMember
      x-stainless-model: intents.intent_authorization_key_quorum_member
  securitySchemes:
    appSecretAuth:
      type: http
      scheme: basic
      description: >-
        Basic Auth header with your app ID as the username and your app secret
        as the password.

````