# Update segment

Update a segment.

Endpoint: PUT /audiences/{audienceId}/segments/{segmentId}
Version: 1.0.0
Security: TdApikeyAuth

## Path parameters:

  - `audienceId` (integer, required)
    Master Segment id of the segment

  - `segmentId` (integer, required)
    ID of Segment that needs to be updated

## Request fields (application/json):

  - `audienceId` (integer)

  - `name` (string)

  - `realtime` (boolean)
    use `kind` instead

  - `kind` (integer)
    0: batch, 1: realtime, 2: funnel_stage

  - `funnel_stage` (object)
    required if creating segment as a rule of funnel_stage

  - `funnel_stage.funnel_id` (integer)

  - `funnel_stage.stage_id` (integer)

  - `description` (string)

  - `segmentFolderId` (integer)

  - `rule` (any)

  - `rule.conditions` (array, required)

  - `rule.conditions.conditions` (array, required)

  - `rule.conditions.conditions.exclude` (boolean, required)

  - `rule.conditions.conditions.id` (string, required)

  - `rule.conditions.conditions.type` (string, required)
    Enum: "FunnelStageReference", "Reference", "AbTestVariantReference"

  - `rule.conditions.conditions.includeConvertedCustomers` (boolean, required)

  - `rule.conditions.conditions.maxGrade` (number, required)

  - `rule.conditions.conditions.minGrade` (number, required)

  - `rule.conditions.conditions.leftValue` (object, required)

  - `rule.conditions.conditions.leftValue.attribute` (string, required)
    Enum: "r_quartile", "f_quartile", "m_quartile", "rfm_segment", "rfm_score", "rfm_cluster_rank", "rfm_quartile"

  - `rule.conditions.conditions.operator` (any, required)

  - `rule.conditions.conditions.solutionType` (string, required)
    Enum: "rfm"

  - `rule.conditions.conditions.arrayMatching` (any, required)

  - `rule.conditions.conditions.arrayMatching.atLeast` (number, required)

  - `rule.conditions.conditions.arrayMatching.atMost` (number, required)

  - `rule.conditions.conditions.arrayMatching.exactly` (number, required)

  - `rule.conditions.conditions.limit` (object)

  - `rule.conditions.conditions.limit.number` (number, required)

  - `rule.conditions.conditions.limit.orderColumns` (array)

  - `rule.conditions.conditions.limit.type` (string, required)
    Enum: "Count", "Percent"

  - `rule.conditions.description` (string)

  - `rule.conditions.expr` (string)

  - `rule.conditions.type` (string, required)
    Enum: "Or", "And", "Composite"

  - `rule.expr` (string)

  - `rule.type` (string, required)
    Enum: "Or", "And", "Composite"

  - `countPopulation` (boolean)

## Response 200 fields (application/json):

  - `audienceId` (string)

  - `id` (string)

  - `name` (string)

  - `realtime` (boolean)
    Whether the segment is realtime segment or not

  - `kind` (integer)
    0: batch, 1: realtime, 2: funnel_stage

  - `description` (string)

  - `segmentFolderId` (string)

  - `population` (integer)

  - `createdAt` (string)

  - `updatedAt` (string)

  - `createdBy` (object)

  - `createdBy.id` (string)

  - `createdBy.td_user_id` (string)

  - `createdBy.name` (string)

  - `rule` (any)

  - `rule.type` (string, required)
    Enum: "And"

  - `rule.conditions` (array, required)

  - `rule.conditions.type` (string, required)
    Enum: "Or"

  - `rule.conditions.conditions` (array, required)

  - `rule.conditions.leftValue` (any)

  - `rule.conditions.operator` (object)

  - `rule.conditions.arrayMatching` (any)

  - `rule.conditions.arrayMatching.atLeast` (number)

  - `rule.conditions.arrayMatching.atMost` (number)

  - `rule.conditions.arrayMatching.exactly` (number)

  - `rule.expr` (string, required)

  - `rule.limit` (object)

  - `rule.limit.number` (number, required)

  - `rule.limit.orderColumns` (array)

  - `rule.limit.orderColumns.column` (string, required)

  - `rule.limit.orderColumns.order` (string, required)
    Enum: "ascending", "descending"

  - `rule.limit.orderColumns.type` (string, required)
    Enum: "Column"

  - `rule.limit.type` (string, required)
    Enum: "Count", "Percent"

## Response 400 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 401 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 403 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 404 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 4XX fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 5XX fields (application/json):

  - `status` (integer, required)
    Error status

  - `error` (string, required)
    Error message

  - `details` (string)
    Detailed error message

