Sensors Data Segment API

The Segment API from Sensors Data — 12 operation(s) for segment.

Operations 12

POST /segment/definition/list 获取分群列表 #
POST /segment/definition/get 获取分群信息 #
POST /segment/definition/create-with-rule 创建分群 #
POST /segment/definition/update-with-rule 编辑分群 #
POST /segment/definition/delete 删除分群 #
POST /segment/definition/recover 恢复被删除分群 #
POST /segment/definition/status/update 更新调度状态 #
POST /segment/definition/evaluate 触发分群计算 #
POST /segment/item/list 获取分群定义关联的分群包元素 #
POST /segment/latest-item/get 获取最新分群包元素 #
POST /segment/task/get 获取分群任务状态 #
POST /segment/task/cancel 停止分群任务 #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sensors-data-segment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sensors-data-segment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 分群管理服务
  title: 神策数界 Segment API
  version: ''
servers:
- url: /api/v3/horizon/v1
tags:
- name: Segment
paths:
  /segment/definition/list:
    post:
      description: "获取分群列表\n```\ncurl -X POST \"http://{host}:{port}/api/v3/horizon/v1/segment/definition/list\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"sensorsdata-project: {projectName}\" \\\n  -H \"api-key: {apiKey}\" \\\n  -d '{\"entity_name\":\"user\",\"segment_definition_names\":[\"user_segment_t\",\"user_segment_c001\"],\"segment_definition_fuzzy_name\":\"segment_c\",\"create_time_range\":{\"start_time\":\"2025-04-01T00:00:00Z\",\"end_time\":\"2025-04-30T23:59:59Z\"},\"has_valid_segment\":true,\"show_invisible\":true,\"page_size\":20,\"page\":-1}'\n 返回示例:\n{\"code\":\"SUCCESS\",\"request_id\":\"29144049a3397aefedcab4bebcb686cd\",\"data\":{\"total\":2,\"segment_definitions\":[{\"entity_name\":\"user\",\"name\":\"user_segment_c001\",\"display_name\":\"ceshi001\",\"comment\":\"\",\"segment_rule_ref\":{\"segment_rule_name\":\"7ed87d2d88124805bb6d81012648e782\",\"version\":\"1\"},\"trigger\":{\"trigger_type\":\"MANUAL\"},\"custom_params\":{\"INTERNAL_DEFINITION_ID\":{\"data_type\":\"INT\",\"int_value\":40,\"list_value\":[]}},\"visible\":true,\"managed\":true,\"status\":\"ACTIVE\",\"created_by\":\"SDH_WEB\",\"create_type\":\"QUICK_COMPONENT\",\"storage_settings\":{\"version_count\":1},\"alarm_config\":{\"enable\":false,\"alarm_rules\":[]},\"creator_id\":\"2\",\"modifier_id\":\"2\",\"create_time\":\"2025-04-09T08:12:12.580Z\",\"update_time\":\"2025-04-09T08:12:12.580Z\",\"notify_params\":{\"subscribe_param\":{\"enable\":false,\"contents\":[]},\"push_param\":{\"enable\":false,\"contents\":[]}},\"source\":{\"app\":\"SDH\",\"category\":\"SEGMENT\",\"sub_category\":\"\"},\"legacy_id\":792},{\"entity_name\":\"user\",\"name\":\"user_segment_t\",\"display_name\":\"tezheng\",\"comment\":\"\",\"segment_rule_ref\":{\"segment_rule_name\":\"13711b8bc45a4cfa83747864b468afe2\",\"version\":\"1\"},\"trigger\":{\"trigger_type\":\"MANUAL\"},\"custom_params\":{\"INTERNAL_DEFINITION_ID\":{\"data_type\":\"INT\",\"int_value\":42,\"list_value\":[]}},\"visible\":true,\"managed\":true,\"status\":\"ACTIVE\",\"created_by\":\"SDH_WEB\",\"create_type\":\"CUSTOMIZED_RULE\",\"storage_settings\":{\"version_count\":1},\"alarm_config\":{\"enable\":false,\"alarm_rules\":[]},\"creator_id\":\"2\",\"modifier_id\":\"2\",\"create_time\":\"2025-04-23T09:17:20.397Z\",\"update_time\":\"2025-04-23T09:17:20.397Z\",\"notify_params\":{\"subscribe_param\":{\"enable\":false,\"contents\":[]},\"push_param\":{\"enable\":false,\"contents\":[]}},\"source\":{\"app\":\"SDH\",\"category\":\"SEGMENT\",\"sub_category\":\"\"},\"legacy_id\":796}]}}\n```"
      operationId: ListSegmentDefinitions
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.horizon.v1.ListSegmentDefinitionsRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  segment_definitions:
                  - entity_name: user
                    segment_rule_ref:
                      expression:
                        eql_segment_rule:
                          eql: 'user.$SegmentMembership.user_segment_t111111.is_not_null()

                            and

                            user.user_tag_c4 == ''标签值1''

                            and

                            user.vip_level in [''高级VIP'',''普通用户'']'
                        entity_set_rules:
                        - {}
                        used_fields:
                        - user.id
                        sql_segment_rule:
                          query_options:
                            option: TIMEOUT
                            value: '120'
                          sql: select user_id as id from user where user_id > 100
                        loading_segment_rule:
                          matched_field: user.$identity_login_id
                          sync_flag: false
                          loading_type: TAG_LOADING_TYPE_OVERWRITE
                        custom_rule: {}
                        event_sequence_rule:
                          simple_event_sequences:
                          - time_window:
                              unit: DAY
                            time_range:
                              start_time:
                                type: RELATIVE
                                trunc_unit: DAY
                                base_time: $TASK_TIME
                                time_interval: -7
                              end_time:
                                type: RELATIVE
                                trunc_unit: DAY
                                base_time: $TASK_TIME
                                time_interval: -1
                            event_steps:
                            - condition:
                                operator: AND
                                conditions:
                                - function: IS_TRUE
                                  params:
                                  - param_type: FIELD
                                    field: user.$Events.$AppStart.$is_login_id
                              event_name: user.$Events.AppStart
                          operator: UNION
                        tailor:
                          function: LESS_EQUAL
                          rank_field:
                            type: PERCENT_ORDER_RANK
                            orders:
                            - measure:
                                type: EQL_MEASURE_FIELD
                                eql_measure: "user.$Events.virtual_event_for_tag.filter_event(\n  datetime_add(${var:base_time}, -1, 'DAY'),\n  datetime_add(${var:base_time}, -1, 'DAY')\n).count()"
                              is_asc: false
                          params:
                          - param_type: VALUE
                            value:
                              data_type: NUMBER
                              number_value: 0.1
                        type: SQL_BASED
                        version: 2
                        group_expression_rule:
                          group_expression: $1-$2
                      segment_rule_name: user_segment_rule_cs001
                    alarm_config:
                      alarm_rules:
                      - {}
                    name: user_segment_cs001
                    create_type: CUSTOMIZED_RULE
                    comment: 这是我的分群描述
                    trigger:
                      trigger_type: CRON
                      cron_trigger:
                        crontab_exp: 0 6 21 * * ? *
                      periodic_trigger: {}
                      static_trigger:
                        time: '2020-07-08T00:00:00Z'
                      sync_job_trigger: {}
                    source: {}
                    display_name: 我的分群
                    storage_settings:
                      version_count: 30
                    notify_params:
                      subscribe_param:
                        contents:
                        - {}
                    status: ACTIVE
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.horizon.v1.ListSegmentDefinitionsResponseHttpApiResult'
          description: sensorsdata.horizon.v1.ListSegmentDefinitionsResponse
      summary: 获取分群列表
      x-sd-openapi:
        responseClass: com.sensorsdata.horizon.v1.ListSegmentDefinitionsResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.horizon.v1.ListSegmentDefinitionsRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.SegmentServiceGrpc.SegmentServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: ListSegmentDefinitionsRequest
      tags:
      - Segment
  /segment/definition/get:
    post:
      description: "获取分群信息\n```\ncurl -X POST \"http://{host}:{port}/api/v3/horizon/v1/segment/definition/get\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"sensorsdata-project: {projectName}\" \\\n  -H \"api-key: {apiKey}\" \\\n  -d '{\"entity_name\":\"user\",\"name\":\"user_segment_t\"}'\n 返回示例:\n{\"code\":\"SUCCESS\",\"request_id\":\"2914451801921dbc95dc8cceff783fd4\",\"data\":{\"visible\":true,\"create_time\":\"2025-04-23T09:17:20.397Z\",\"entity_name\":\"user\",\"create_type\":\"CUSTOMIZED_RULE\",\"trigger\":{\"trigger_type\":\"MANUAL\"},\"source\":{\"app\":\"SDH\",\"category\":\"SEGMENT\",\"sub_category\":\"\"},\"display_name\":\"tezheng\",\"storage_settings\":{\"version_count\":1},\"created_by\":\"SDH_WEB\",\"custom_params\":{\"INTERNAL_DEFINITION_ID\":{\"data_type\":\"INT\",\"int_value\":42,\"list_value\":[]}},\"update_time\":\"2025-04-23T09:17:20.397Z\",\"managed\":true,\"segment_rule_ref\":{\"segment_rule_name\":\"13711b8bc45a4cfa83747864b468afe2\",\"version\":\"1\"},\"alarm_config\":{\"enable\":false,\"alarm_rules\":[]},\"name\":\"user_segment_t\",\"creator_id\":\"2\",\"modifier_id\":\"2\",\"legacy_id\":796,\"comment\":\"\",\"notify_params\":{\"subscribe_param\":{\"enable\":false,\"contents\":[]},\"push_param\":{\"enable\":false,\"contents\":[]}},\"status\":\"ACTIVE\"}}\n```"
      operationId: GetSegmentDefinition
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.horizon.v1.GetSegmentDefinitionRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  entity_name: user
                  segment_rule_ref:
                    expression:
                      eql_segment_rule:
                        eql: 'user.$SegmentMembership.user_segment_t111111.is_not_null()

                          and

                          user.user_tag_c4 == ''标签值1''

                          and

                          user.vip_level in [''高级VIP'',''普通用户'']'
                      entity_set_rules:
                      - {}
                      used_fields:
                      - user.id
                      sql_segment_rule:
                        query_options:
                          option: TIMEOUT
                          value: '120'
                        sql: select user_id as id from user where user_id > 100
                      loading_segment_rule:
                        matched_field: user.$identity_login_id
                        sync_flag: false
                        loading_type: TAG_LOADING_TYPE_OVERWRITE
                      custom_rule: {}
                      event_sequence_rule:
                        simple_event_sequences:
                        - time_window:
                            unit: DAY
                          time_range:
                            start_time:
                              type: RELATIVE
                              trunc_unit: DAY
                              base_time: $TASK_TIME
                              time_interval: -7
                            end_time:
                              type: RELATIVE
                              trunc_unit: DAY
                              base_time: $TASK_TIME
                              time_interval: -1
                          event_steps:
                          - condition:
                              operator: AND
                              conditions:
                              - function: IS_TRUE
                                params:
                                - param_type: FIELD
                                  field: user.$Events.$AppStart.$is_login_id
                            event_name: user.$Events.AppStart
                        operator: UNION
                      tailor:
                        function: LESS_EQUAL
                        rank_field:
                          type: PERCENT_ORDER_RANK
                          orders:
                          - measure:
                              type: EQL_MEASURE_FIELD
                              eql_measure: "user.$Events.virtual_event_for_tag.filter_event(\n  datetime_add(${var:base_time}, -1, 'DAY'),\n  datetime_add(${var:base_time}, -1, 'DAY')\n).count()"
                            is_asc: false
                        params:
                        - param_type: VALUE
                          value:
                            data_type: NUMBER
                            number_value: 0.1
                      type: SQL_BASED
                      version: 2
                      group_expression_rule:
                        group_expression: $1-$2
                    segment_rule_name: user_segment_rule_cs001
                  alarm_config:
                    alarm_rules:
                    - {}
                  name: user_segment_cs001
                  create_type: CUSTOMIZED_RULE
                  comment: 这是我的分群描述
                  trigger:
                    trigger_type: CRON
                    cron_trigger:
                      crontab_exp: 0 6 21 * * ? *
                    periodic_trigger: {}
                    static_trigger:
                      time: '2020-07-08T00:00:00Z'
                    sync_job_trigger: {}
                  source: {}
                  display_name: 我的分群
                  storage_settings:
                    version_count: 30
                  notify_params:
                    subscribe_param:
                      contents:
                      - {}
                  status: ACTIVE
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.horizon.v1.SegmentDefinitionHttpApiResult'
          description: sensorsdata.horizon.v1.SegmentDefinition
      summary: 获取分群信息
      x-sd-openapi:
        responseClass: com.sensorsdata.horizon.v1.SegmentDefinition
        isServerStreaming: false
        requestClass: com.sensorsdata.horizon.v1.GetSegmentDefinitionRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.SegmentServiceGrpc.SegmentServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: GetSegmentDefinitionRequest
      tags:
      - Segment
  /segment/definition/create-with-rule:
    post:
      description: "创建分群\n```\ncurl -X POST \"http://{host}:{port}/api/v3/horizon/v1/segment/definition/create-with-rule\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"sensorsdata-project: {projectName}\" \\\n  -H \"api-key: {apiKey}\" \\\n  -d '{\"segment_definition\":{\"entity_name\":\"user\",\"name\":\"user_segment_wdfq1\",\"display_name\":\"我的分群1\",\"comment\":\"备注信息\",\"segment_rule_ref\":{\"expression\":{\"type\":\"LOADING_BASED\",\"loading_segment_rule\":{\"matched_field\":\"user.$identity_login_id\",\"sync_flag\":false,\"loading_type\":\"LOADING_TYPE_OVERWRITE\"},\"version\":2}},\"trigger\":{\"trigger_type\":\"MANUAL\"},\"visible\":true,\"managed\":true,\"status\":\"ACTIVE\",\"created_by\":\"SDH_WEB\",\"create_type\":\"IMPORT\",\"storage_settings\":{\"version_count\":1}},\"dry_run\":false}'\n 返回示例:\n{\"code\":\"SUCCESS\",\"request_id\":\"29145736a5c98fb2c455a8919189fa2d\",\"data\":{\"visible\":true,\"create_time\":\"2025-04-29T06:57:36.724Z\",\"entity_name\":\"user\",\"create_type\":\"IMPORT\",\"trigger\":{\"trigger_type\":\"MANUAL\"},\"source\":{\"app\":\"SDH\",\"category\":\"SEGMENT\",\"sub_category\":\"\"},\"display_name\":\"我的分群1\",\"storage_settings\":{\"version_count\":1},\"created_by\":\"SDH_WEB\",\"custom_params\":{\"INTERNAL_DEFINITION_ID\":{\"data_type\":\"INT\",\"int_value\":43,\"list_value\":[]}},\"update_time\":\"2025-04-29T06:57:36.724Z\",\"managed\":true,\"segment_rule_ref\":{\"segment_rule_name\":\"78eabb46c13b4673a2b2af10ef4616f8\",\"version\":\"1\"},\"name\":\"user_segment_wdfq1\",\"creator_id\":\"2\",\"modifier_id\":\"2\",\"legacy_id\":800,\"comment\":\"备注信息\",\"status\":\"ACTIVE\"}}\n```"
      operationId: CreateSegmentDefinitionWithRule
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.horizon.v1.CreateSegmentDefinitionWithRuleRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  entity_name: user
                  segment_rule_ref:
                    expression:
                      eql_segment_rule:
                        eql: 'user.$SegmentMembership.user_segment_t111111.is_not_null()

                          and

                          user.user_tag_c4 == ''标签值1''

                          and

                          user.vip_level in [''高级VIP'',''普通用户'']'
                      entity_set_rules:
                      - {}
                      used_fields:
                      - user.id
                      sql_segment_rule:
                        query_options:
                          option: TIMEOUT
                          value: '120'
                        sql: select user_id as id from user where user_id > 100
                      loading_segment_rule:
                        matched_field: user.$identity_login_id
                        sync_flag: false
                        loading_type: TAG_LOADING_TYPE_OVERWRITE
                      custom_rule: {}
                      event_sequence_rule:
                        simple_event_sequences:
                        - time_window:
                            unit: DAY
                          time_range:
                            start_time:
                              type: RELATIVE
                              trunc_unit: DAY
                              base_time: $TASK_TIME
                              time_interval: -7
                            end_time:
                              type: RELATIVE
                              trunc_unit: DAY
                              base_time: $TASK_TIME
                              time_interval: -1
                          event_steps:
                          - condition:
                              operator: AND
                              conditions:
                              - function: IS_TRUE
                                params:
                                - param_type: FIELD
                                  field: user.$Events.$AppStart.$is_login_id
                            event_name: user.$Events.AppStart
                        operator: UNION
                      tailor:
                        function: LESS_EQUAL
                        rank_field:
                          type: PERCENT_ORDER_RANK
                          orders:
                          - measure:
                              type: EQL_MEASURE_FIELD
                              eql_measure: "user.$Events.virtual_event_for_tag.filter_event(\n  datetime_add(${var:base_time}, -1, 'DAY'),\n  datetime_add(${var:base_time}, -1, 'DAY')\n).count()"
                            is_asc: false
                        params:
                        - param_type: VALUE
                          value:
                            data_type: NUMBER
                            number_value: 0.1
                      type: SQL_BASED
                      version: 2
                      group_expression_rule:
                        group_expression: $1-$2
                    segment_rule_name: user_segment_rule_cs001
                  alarm_config:
                    alarm_rules:
                    - {}
                  name: user_segment_cs001
                  create_type: CUSTOMIZED_RULE
                  comment: 这是我的分群描述
                  trigger:
                    trigger_type: CRON
                    cron_trigger:
                      crontab_exp: 0 6 21 * * ? *
                    periodic_trigger: {}
                    static_trigger:
                      time: '2020-07-08T00:00:00Z'
                    sync_job_trigger: {}
                  source: {}
                  display_name: 我的分群
                  storage_settings:
                    version_count: 30
                  notify_params:
                    subscribe_param:
                      contents:
                      - {}
                  status: ACTIVE
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.horizon.v1.SegmentDefinitionHttpApiResult'
          description: sensorsdata.horizon.v1.SegmentDefinition
      summary: 创建分群
      x-sd-openapi:
        responseClass: com.sensorsdata.horizon.v1.SegmentDefinition
        isServerStreaming: false
        requestClass: com.sensorsdata.horizon.v1.CreateSegmentDefinitionWithRuleRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.SegmentServiceGrpc.SegmentServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: CreateSegmentDefinitionWithRuleRequest
      tags:
      - Segment
  /segment/definition/update-with-rule:
    post:
      description: "编辑分群\n```\ncurl -X POST \"http://{host}:{port}/api/v3/horizon/v1/segment/definition/update-with-rule\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"sensorsdata-project: {projectName}\" \\\n  -H \"api-key: {apiKey}\" \\\n  -d '{\"segment_definition\":{\"entity_name\":\"user\",\"name\":\"user_segment_wdfq1\",\"display_name\":\"我的分群1_修改\",\"comment\":\"备注信息_修改\",\"segment_rule_ref\":{\"expression\":{\"type\":\"LOADING_BASED\",\"loading_segment_rule\":{\"matched_field\":\"user.name\",\"sync_flag\":false,\"loading_type\":\"LOADING_TYPE_OVERWRITE\"},\"version\":2}},\"trigger\":{\"trigger_type\":\"MANUAL\"},\"visible\":true,\"managed\":true,\"status\":\"ACTIVE\",\"created_by\":\"SDH_WEB\",\"create_type\":\"IMPORT\",\"storage_settings\":{\"version_count\":1}},\"dry_run\":false,\"update_mask\":\"display_name,comment,segment_rule_ref,trigger,custom_params,visible,status,storage_settings\"}'\n 返回示例:\n{\"code\":\"SUCCESS\",\"request_id\":\"2916164415f0ca09d3ecd3a8ecd39a48\",\"data\":{\"visible\":true,\"create_time\":\"2025-04-29T06:57:36.724Z\",\"entity_name\":\"user\",\"create_type\":\"IMPORT\",\"trigger\":{\"trigger_type\":\"MANUAL\"},\"source\":{\"app\":\"SDH\",\"category\":\"SEGMENT\",\"sub_category\":\"\"},\"display_name\":\"我的分群1_修改\",\"storage_settings\":{\"version_count\":1},\"created_by\":\"SDH_WEB\",\"custom_params\":{\"INTERNAL_DEFINITION_ID\":{\"data_type\":\"INT\",\"int_value\":43,\"list_value\":[]}},\"update_time\":\"2025-04-29T08:16:44.750Z\",\"managed\":true,\"segment_rule_ref\":{\"segment_rule_name\":\"78eabb46c13b4673a2b2af10ef4616f8\",\"version\":\"2\"},\"name\":\"user_segment_wdfq1\",\"creator_id\":\"2\",\"modifier_id\":\"2\",\"legacy_id\":800,\"comment\":\"备注信息_修改\",\"status\":\"ACTIVE\"}}\n```"
      operationId: UpdateSegmentDefinitionWithRule
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.horizon.v1.UpdateSegmentDefinitionWithRuleRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  entity_name: user
                  segment_rule_ref:
                    expression:
                      eql_segment_rule:
                        eql: 'user.$SegmentMembership.user_segment_t111111.is_not_null()

                          and

                          user.user_tag_c4 == ''标签值1''

                          and

                          user.vip_level in [''高级VIP'',''普通用户'']'
                      entity_set_rules:
                      - {}
                      used_fields:
                      - user.id
                      sql_segment_rule:
                        query_options:
                          option: TIMEOUT
                          value: '120'
                        sql: select user_id as id from user where user_id > 100
                      loading_segment_rule:
                        matched_field: user.$identity_login_id
                        sync_flag: false
                        loading_type: TAG_LOADING_TYPE_OVERWRITE
                      custom_rule: {}
                      event_sequence_rule:
                        simple_event_sequences:
                        - time_window:
                            unit: DAY
                          time_range:
                            start_time:
                              type: RELATIVE
                              trunc_unit: DAY
                              base_time: $TASK_TIME
                              time_interval: -7
                            end_time:
                              type: RELATIVE
                              trunc_unit: DAY
                              base_time: $TASK_TIME
                              time_interval: -1
                          event_steps:
                          - condition:
                              operator: AND
                              conditions:
                              - function: IS_TRUE
                                params:
                                - param_type: FIELD
                                  field: user.$Events.$AppStart.$is_login_id
                            event_name: user.$Events.AppStart
                        operator: UNION
                      tailor:
                        function: LESS_EQUAL
                        rank_field:
                          type: PERCENT_ORDER_RANK
                          orders:
                          - measure:
                              type: EQL_MEASURE_FIELD
                              eql_measure: "user.$Events.virtual_event_for_tag.filter_event(\n  datetime_add(${var:base_time}, -1, 'DAY'),\n  datetime_add(${var:base_time}, -1, 'DAY')\n).count()"
                            is_asc: false
                        params:
                        - param_type: VALUE
                          value:
                            data_type: NUMBER
                            number_value: 0.1
                      type: SQL_BASED
                      version: 2
                      group_expression_rule:
                        group_expression: $1-$2
                    segment_rule_name: user_segment_rule_cs001
                  alarm_config:
                    alarm_rules:
                    - {}
                  name: user_segment_cs001
                  create_type: CUSTOMIZED_RULE
                  comment: 这是我的分群描述
                  trigger:
                    trigger_type: CRON
                    cron_trigger:
                      crontab_exp: 0 6 21 * * ? *
                    periodic_trigger: {}
                    static_trigger:
                      time: '2020-07-08T00:00:00Z'
                    sync_job_trigger: {}
                  source: {}
                  display_name: 我的分群
                  storage_settings:
                    version_count: 30
                  notify_params:
                    subscribe_param:
                      contents:
                      - {}
                  status: ACTIVE
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.horizon.v1.SegmentDefinitionHttpApiResult'
          description: sensorsdata.horizon.v1.SegmentDefinition
      summary: 编辑分群
      x-sd-openapi:
        responseClass: com.sensorsdata.horizon.v1.SegmentDefinition
        isServerStreaming: false
        requestClass: com.sensorsdata.horizon.v1.UpdateSegmentDefinitionWithRuleRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.SegmentServiceGrpc.SegmentServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: UpdateSegmentDefinitionWithRuleRequest
      tags:
      - Segment
  /segment/definition/delete:
    post:
      description: "删除分群\n```\ncurl -X POST \"http://{host}:{port}/api/v3/horizon/v1/segment/definition/delete\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"sensorsdata-project: {projectName}\" \\\n  -H \"api-key: {apiKey}\" \\\n  -d '{ \"entity_name\": \"user\",\n        \"name\": \"user_segment_wdfq1\"\n  }'\n 返回示例:\n{\n    \"code\": \"SUCCESS\",\n    \"request_id\": \"18115057aa85bb6c55b1d02a940fe692\",\n    \"data\": {}\n}\n```"
      operationId: DeleteSegmentDefinition
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.horizon.v1.DeleteSegmentDefinitionRequest'
        description: 删除分群
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data: {}
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.common.HttpApiResult'
          description: ''
      summary: 删除分群
      x-sd-openapi:
        responseClass: com.google.protobuf.Empty
        isServerStreaming: false
        requestClass: com.sensorsdata.horizon.v1.DeleteSegmentDefinitionRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.SegmentServiceGrpc.SegmentServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: DeleteSegmentDefinitionRequest
      tags:
      - Segment
  /segment/definition/recover:
    post:
      description: "恢复被删除分群\n```\ncurl -X POST \"http://{host}:{port}/api/v3/horizon/v1/segment/definition/recover\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"sen

# --- truncated at 32 KB (113 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sensors-data/refs/heads/main/openapi/sensors-data-segment-api-openapi.yml