---
title: "Update a segment"
method: PUT
path: "/v1/segments/{segment_id}"
tags: ["Segments"]
---

# Update a segment

`PUT /v1/segments/{segment_id}`

## Request

- Base URL: `https://api.mailrith.com`
- URL: `https://api.mailrith.com/v1/segments/{segment_id}`
- Auth: HTTP bearer

Updates a saved segment in the authenticated workspace.

## Path parameters

- `segment_id` string, required

## Request body

- SegmentUpdateRequest
  - `name` string
  - `description` string, nullable
  - `definition` AudienceDefinition
    - `match` 'all' | 'any', required
    - `groups` AudienceConditionGroup[], required
      - `id` string, required
      - `match` 'all' | 'any', required
      - `conditions` AudienceCondition[], required
        - `id` string, required
        - `field` 'subscriber_status' | 'country' | 'segment' | 'tag' | 'sequence' | 'form' | 'custom_field' | 'email_opened' | 'email_unsubscribed' | 'magic_link_clicked', required
        - `operator` 'is' | 'is_not' | 'has_any_of' | 'has_none_of' | 'is_active_in_any_of' | 'is_not_active_in_any_of' | 'has_completed_any_of' | 'has_not_completed_any_of' | 'has_ever_been_in_any_of' | 'has_never_been_in_any_of' | 'contains' | 'does_not_contain' | 'is_empty' | 'is_not_empty' | 'before' | 'after' | 'on' | 'in_last_days' | 'greater_than' | 'less_than' | 'in_region' | 'not_in_region', required
        - `value` union
          - string
          - number
          - boolean
          - string[]
        - `customFieldId` string, nullable

## Response `200`

Successful response

- object
  - `data` Segment, required
    - `self` string, required: Stable relative Public API path for retrieving this resource.
    - `id` string, required
    - `name` string, required
    - `description` string, nullable, required
    - `definition` AudienceDefinition, required
      - `match` 'all' | 'any', required
      - `groups` AudienceConditionGroup[], required
        - `id` string, required
        - `match` 'all' | 'any', required
        - `conditions` AudienceCondition[], required
          - `id` string, required
          - `field` 'subscriber_status' | 'country' | 'segment' | 'tag' | 'sequence' | 'form' | 'custom_field' | 'email_opened' | 'email_unsubscribed' | 'magic_link_clicked', required
          - `operator` 'is' | 'is_not' | 'has_any_of' | 'has_none_of' | 'is_active_in_any_of' | 'is_not_active_in_any_of' | 'has_completed_any_of' | 'has_not_completed_any_of' | 'has_ever_been_in_any_of' | 'has_never_been_in_any_of' | 'contains' | 'does_not_contain' | 'is_empty' | 'is_not_empty' | 'before' | 'after' | 'on' | 'in_last_days' | 'greater_than' | 'less_than' | 'in_region' | 'not_in_region', required
          - `value` union
            - string
            - number
            - boolean
            - string[]
          - `customFieldId` string, nullable
    - `confirmed_subscriber_count` integer, required
    - `total_subscriber_count` integer, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: The request is invalid.
- `404`: The segment was not found.
- `409`: The request conflicts with the current segment state.

---

[API](https://skmtc.dev/mailrith/apis/mailrith-api.md) · [All operations](https://skmtc.dev/mailrith/apis/mailrith-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mailrith/apis/mailrith-api/revisions/41f09536f2da?raw)
