Sensors Horizon CDP OpenAPI (神策数界)

OpenAPI for Sensors Horizon (神策数界), the real-time customer data platform layer. 54 operations for schema management (event tables, user tables, fields, extended tables), segment definitions and segment tasks, tag management, physical/public data tables, information catalogs, and data subscriptions that stream computed results out to downstream systems such as Kafka.

Documentation

Specifications

Other Resources

OpenAPI Specification

sensors-data-horizon-catalog-v1-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: 目录服务
  title: 神策数界
  version: ''
servers:
- url: /api/v3/horizon/v1
paths:
  /catalog/tree/list:
    post:
      description: "获取某个业务所有的目录树\n```\n  curl -X POST 'http://{host}:{port}/api/v3/horizon/v1/catalog/tree/list'\
        \ \\\n    -H 'Content-Type: application/json' \\\n    -H 'api-key: {api_key}' \\\n    -H 'sensorsdata-project:\
        \ {projectName}' \\\n    -d '{\n      \"business_type\": \"ENTITY\",\n      \"business_names\"\
        : [\"user\"],\n      \"query_catalog_node_type\": \"ONLY_UNDELETE\",\n      \"show_resource\"\
        : false\n  }'\n  返回值示例:\n  {\n    \"code\": \"SUCCESS\",\n    \"request_id\": \"12163604dca26fcdc2184104654955c5\"\
        ,\n    \"data\": {\n        \"catalog_trees\": [\n            {\n                \"business_name\"\
        : \"user\",\n                \"catalog\": {\n                    \"type\": \"CATALOG\",\n    \
        \                \"name\": \"8998a014-f8e3-4d8a-8b2c-ec7beeeefc97\",\n                    \"display_name\"\
        : \"user\",\n                    \"resource_type\": \"\",\n                    \"resource_id\"\
        : \"\",\n                    \"parent_name\": \"\",\n                    \"rank\": 1,\n      \
        \              \"is_deleted\": false,\n                    \"delete_path\": \"\",\n          \
        \          \"catalogs\": [\n                        {\n                            \"type\": \"\
        CATALOG\",\n                            \"name\": \"CATALOG_DEFAULT_ATTRIBUTE_2394196636433\"\
        ,\n                            \"display_name\": \"属性\",\n                            \"resource_type\"\
        : \"\",\n                            \"resource_id\": \"\",\n                            \"parent_name\"\
        : \"8998a014-f8e3-4d8a-8b2c-ec7beeeefc97\",\n                            \"rank\": 1,\n      \
        \                      \"is_deleted\": false,\n                            \"delete_path\": \"\
        \",\n                            \"catalogs\": [\n                                ...\n      \
        \                      ],\n                            \"access_info\": {\n                  \
        \              \"creator_id\": \"0\",\n                                \"modifier_id\": \"0\"\
        ,\n                                \"create_time\": \"2025-06-09T02:54:33Z\",\n              \
        \                  \"update_time\": \"2025-06-09T02:54:33Z\"\n                            },\n\
        \                            \"custom_params\": {\n                                \"BELONG_KEY\"\
        : \"DEFAULT\"\n                            },\n                            \"legacy_id\": 2\n\
        \                        }, ...\n                    ],\n                    \"access_info\":\
        \ {\n                        \"creator_id\": \"2\",\n                        \"modifier_id\":\
        \ \"2\",\n                        \"create_time\": \"2025-06-09T02:54:33Z\",\n               \
        \         \"update_time\": \"2025-06-09T02:54:33Z\"\n                    },\n                \
        \    \"custom_params\": {},\n                    \"legacy_id\": 1\n                },\n      \
        \          \"custom_params\": {}\n            }\n        ]\n    }\n  }\n```"
      operationId: ListCatalogTrees
      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.ListCatalogTreesRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  catalog_trees:
                    code: SUCCESS
                    request_id: 12163604dca26fcdc2184104654955c5
                    data:
                      catalog_trees:
                      - business_name: user
                        catalog:
                          type: CATALOG
                          name: 8998a014-f8e3-4d8a-8b2c-ec7beeeefc97
                          display_name: user
                          resource_type: ''
                          resource_id: ''
                          parent_name: ''
                          rank: 1
                          is_deleted: false
                          delete_path: ''
                          catalogs:
                          - type: CATALOG
                            name: CATALOG_DEFAULT_ATTRIBUTE_2394196636433
                            display_name: 属性
                            resource_type: ''
                            resource_id: ''
                            parent_name: 8998a014-f8e3-4d8a-8b2c-ec7beeeefc97
                            rank: 1
                            is_deleted: false
                            delete_path: ''
                            catalogs:
                            - type: CATALOG
                              name: CATALOG_DEFAULT_USER_PROPERTY_2394294291991
                              display_name: 普通属性
                              resource_type: ''
                              resource_id: ''
                              parent_name: CATALOG_DEFAULT_ATTRIBUTE_2394196636433
                              rank: 1
                              is_deleted: false
                              delete_path: ''
                              catalogs: []
                              access_info:
                                creator_id: '0'
                                modifier_id: '0'
                                create_time: '2025-06-09T02:54:33Z'
                                update_time: '2025-06-09T02:54:33Z'
                              custom_params:
                                BELONG_KEY: USER_PROPERTY
                              legacy_id: 5
                            custom_params:
                              BELONG_KEY: DETAIL_INFO
                            legacy_id: 4
                          access_info:
                            creator_id: '2'
                            modifier_id: '2'
                            create_time: '2025-06-09T02:54:33Z'
                            update_time: '2025-06-09T02:54:33Z'
                          custom_params: {}
                          legacy_id: 1
                        custom_params: {}
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.horizon.v1.ListCatalogTreesResponseHttpApiResult'
          description: sensorsdata.horizon.v1.ListCatalogTreesResponse
      summary: 查询目录树
      x-sd-openapi:
        responseClass: com.sensorsdata.horizon.v1.ListCatalogTreesResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.horizon.v1.ListCatalogTreesRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.CatalogServiceGrpc.CatalogServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: ListCatalogTreesRequest
  /catalog/resource/bind:
    post:
      description: "挂载资源节点\n```\n  curl -X POST 'http://{host}:{port}/api/v3/horizon/v1/catalog/resource/bind'\
        \ \\\n    -H 'Content-Type: application/json' \\\n    -H 'api-key: {api_key}' \\\n    -H 'sensorsdata-project:\
        \ {projectName}' \\\n    -d '{\n      \"parent_name\": \"8998a014-f8e3-4d8a-8b2c-ec7beeeefc97\"\
        ,\n      \"resource_type\": \"TAG\",\n      \"resource_id\":\"user_tag_bq_meta_string\"\n  }'\n\
        \  返回值示例:\n  {\n    \"code\": \"SUCCESS\",\n    \"request_id\": \"1217080591f8f9e3d9b6d24e8a43ee8c\"\
        ,\n    \"data\": {}\n  }\n```"
      operationId: BindCatalogResource
      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.BindCatalogResourceRequest'
        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.BindCatalogResourceRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.CatalogServiceGrpc.CatalogServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: BindCatalogResourceRequest
  /catalog/resource/unbind:
    post:
      description: "解绑资源节点\n```\n  curl -X POST 'http://{host}:{port}/api/v3/horizon/v1/catalog/resource/unbind'\
        \ \\\n    -H 'Content-Type: application/json' \\\n    -H 'api-key: {api_key}' \\\n    -H 'sensorsdata-project:\
        \ {projectName}' \\\n    -d '{\n    \"business_type\": \"ENTITY\",\n    \"business_name\": \"\
        user\",\n    \"resource_type\": \"TAG\",\n    \"resource_id\": \"user_tag_bq_meta_string\"\n \
        \ }'\n  返回值示例:\n  {\n    \"code\": \"SUCCESS\",\n    \"request_id\": \"121717050a1c695fb26a0f298252ba28\"\
        ,\n    \"data\": {}\n  }\n```"
      operationId: UnbindCatalogResource
      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.UnbindCatalogResourceRequest'
        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.UnbindCatalogResourceRequest
        grpcServiceBase: com.sensorsdata.horizon.v1.CatalogServiceGrpc.CatalogServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: UnbindCatalogResourceRequest
components:
  schemas:
    sensorsdata.horizon.v1.CheckUnDeleteCatalogResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.CheckUnDeleteCatalogResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.horizon.v1.CheckUnDeleteCatalogResponseHttpApiResult
      type: object
    sensorsdata.horizon.v1.BindCatalogResourceRequest:
      description: 挂载资源节点
      properties:
        project_id:
          description: 项目 ID
          example: 1
          format: int32
          type: integer
        parent_name:
          description: 父目录标识
          type: string
        resource_type:
          description: 资源类型
          example: TAG
          type: string
        resource_id:
          description: 资源标识
          example: user_tag_bq_meta_string
          type: string
      required:
      - parent_name
      - project_id
      - resource_id
      - resource_type
      title: BindCatalogResourceRequest
      type: object
    sensorsdata.common.HttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          properties: {}
          type: object
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: HttpApiResult
      type: object
    sensorsdata.horizon.v1.CatalogTreeHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.CatalogTree'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.horizon.v1.CatalogTreeHttpApiResult
      type: object
    sensorsdata.horizon.v1.ListCatalogTreesRequest:
      description: ''
      properties:
        project_id:
          description: 项目 ID
          example: 1
          format: int32
          type: integer
        business_type:
          description: 业务类型
          example: ENTITY
          type: string
        business_names:
          description: "业务名称\n 返回特定业务的目录树,不传则返回当前业务类型下所有的目录树"
          example: '["user"]'
          items:
            type: string
          type: array
        query_catalog_node_type:
          description: "查询的节点类型\n```\n QUERY_CATALOG_NODE_TYPE_UNSPECIFIED = 0; // 未标识\n ONLY_UNDELETE\
            \ = 1;                       // 仅包含未删除的节点\n ONLY_DELETE = 2;                         // 仅包含删除的节点\n\
            \ ALL = 3;                                 // 所有节点\n```"
          enum:
          - QUERY_CATALOG_NODE_TYPE_UNSPECIFIED
          - ONLY_UNDELETE
          - ONLY_DELETE
          - ALL
          example: ONLY_UNDELETE
          type: string
        show_resource:
          description: 返回的目录树是否包含资源节点
          example: true
          type: boolean
      required:
      - business_type
      - project_id
      - query_catalog_node_type
      title: ListCatalogTreesRequest
      type: object
    sensorsdata.horizon.v1.CatalogTree.CustomParamsEntry:
      description: ''
      properties:
        key:
          description: ''
          type: string
        value:
          description: ''
          type: string
      title: CustomParamsEntry
      type: object
    sensorsdata.horizon.v1.UnbindCatalogResourceRequest:
      description: 解绑资源节点
      properties:
        project_id:
          description: 项目 ID
          example: 1
          format: int32
          type: integer
        business_type:
          description: 业务类型
          example: ENTITY
          type: string
        business_name:
          description: 业务名称
          example: user
          type: string
        resource_type:
          description: 资源类型
          example: TAG
          type: string
        resource_id:
          description: 资源标识
          example: user_tag_bq_meta_string
          type: string
        skip_trash:
          description: 是否跳过回收站
          example: true
          type: boolean
      required:
      - business_name
      - business_type
      - project_id
      - resource_id
      - resource_type
      title: UnbindCatalogResourceRequest
      type: object
    sensorsdata.horizon.v1.ListResourcesResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.ListResourcesResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.horizon.v1.ListResourcesResponseHttpApiResult
      type: object
    sensorsdata.common.ErrorCause:
      properties:
        error_cause:
          description: 致错原因1
          example: 参数异常1
          type: string
        action_suggestion:
          description: 操作建议,针对该原因,建议的解决方式
          example: 检测入参的数据类型1
          type: string
      title: ErrorCause
      type: object
    sensorsdata.common.ErrorContext:
      description: 发生错误时,系统快照信息
      properties:
        origin_stack:
          description: 上游异常的 stack,由系统截获
          type: string
        origin_cause:
          description: 上游异常的 cause by,由系统截获
          type: string
        origin_code:
          description: 上游异常的错误简码
          type: string
        origin_complete_code:
          description: 上游异常的完整错误码
          type: string
        error_extend_desc:
          description: 本次异常的辅助说明,可传入
          type: string
      title: ErrorContext
      type: object
    sensorsdata.common.ErrorInfo:
      properties:
        code:
          description: 具体的错误码
          example: XX-D-F-2-1
          type: string
        description:
          description: 错误描述
          example: 前端参数校验异常,PARAMETER_FORMAT_ERROR(quantiles=[10, -90] is not include [0, 100])
          type: string
        system_response:
          description: 致错的可能原因列表
          example: 系统终止了查询处理
          type: string
        error_causes:
          items:
            $ref: '#/components/schemas/sensorsdata.common.ErrorCause'
          type: array
        context:
          $ref: '#/components/schemas/sensorsdata.common.ErrorContext'
      title: ErrorInfo
      type: object
    sensorsdata.horizon.v1.ListCatalogTreesResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.ListCatalogTreesResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.horizon.v1.ListCatalogTreesResponseHttpApiResult
      type: object
    sensorsdata.horizon.v1.CatalogTree:
      description: ''
      properties:
        business_name:
          description: 业务名称
          example: user
          type: string
        catalog:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.Catalog'
        custom_params:
          additionalProperties:
            description: ''
            type: string
          description: 自定义参数
          example:
            BELONG_KEY: USER_PROPERTY
          type: object
      title: CatalogTree
      type: object
    sensorsdata.horizon.v1.Catalog.CustomParamsEntry:
      description: ''
      properties:
        key:
          description: ''
          type: string
        value:
          description: ''
          type: string
      title: CustomParamsEntry
      type: object
    sensorsdata.horizon.v1.ListCatalogTreesResponse:
      description: ''
      properties:
        catalog_trees:
          description: 多棵树,每一个一级目录为一棵树
          example: "{\n  \"code\": \"SUCCESS\",\n  \"request_id\": \"12163604dca26fcdc2184104654955c5\"\
            ,\n  \"data\": {\n      \"catalog_trees\": [\n          {\n              \"business_name\"\
            : \"user\",\n              \"catalog\": {\n                  \"type\": \"CATALOG\",\n    \
            \              \"name\": \"8998a014-f8e3-4d8a-8b2c-ec7beeeefc97\",\n                  \"display_name\"\
            : \"user\",\n                  \"resource_type\": \"\",\n                  \"resource_id\"\
            : \"\",\n                  \"parent_name\": \"\",\n                  \"rank\": 1,\n      \
            \            \"is_deleted\": false,\n                  \"delete_path\": \"\",\n          \
            \        \"catalogs\": [\n                      {\n                          \"type\": \"\
            CATALOG\",\n                          \"name\": \"CATALOG_DEFAULT_ATTRIBUTE_2394196636433\"\
            ,\n                          \"display_name\": \"属性\",\n                          \"resource_type\"\
            : \"\",\n                          \"resource_id\": \"\",\n                          \"parent_name\"\
            : \"8998a014-f8e3-4d8a-8b2c-ec7beeeefc97\",\n                          \"rank\": 1,\n    \
            \                      \"is_deleted\": false,\n                          \"delete_path\":\
            \ \"\",\n                          \"catalogs\": [\n                              {\n    \
            \                              \"type\": \"CATALOG\",\n                                  \"\
            name\": \"CATALOG_DEFAULT_USER_PROPERTY_2394294291991\",\n                               \
            \   \"display_name\": \"普通属性\",\n                                  \"resource_type\": \"\"\
            ,\n                                  \"resource_id\": \"\",\n                            \
            \      \"parent_name\": \"CATALOG_DEFAULT_ATTRIBUTE_2394196636433\",\n                   \
            \               \"rank\": 1,\n                                  \"is_deleted\": false,\n \
            \                                 \"delete_path\": \"\",\n                               \
            \   \"catalogs\": [],\n                                  \"access_info\": {\n            \
            \                          \"creator_id\": \"0\",\n                                      \"\
            modifier_id\": \"0\",\n                                      \"create_time\": \"2025-06-09T02:54:33Z\"\
            ,\n                                      \"update_time\": \"2025-06-09T02:54:33Z\"\n     \
            \                             },\n                                  \"custom_params\": {\n\
            \                                      \"BELONG_KEY\": \"USER_PROPERTY\"\n               \
            \                   },\n                                  \"legacy_id\": 5\n             \
            \                 }\n                          ],\n                          \"custom_params\"\
            : {\n                              \"BELONG_KEY\": \"DETAIL_INFO\"\n                     \
            \     },\n                          \"legacy_id\": 4\n                      }\n          \
            \        ],\n                  \"access_info\": {\n                      \"creator_id\": \"\
            2\",\n                      \"modifier_id\": \"2\",\n                      \"create_time\"\
            : \"2025-06-09T02:54:33Z\",\n                      \"update_time\": \"2025-06-09T02:54:33Z\"\
            \n                  },\n                  \"custom_params\": {},\n                  \"legacy_id\"\
            : 1\n              },\n              \"custom_params\": {}\n          }\n      ]\n  }\n}"
          items:
            $ref: '#/components/schemas/sensorsdata.horizon.v1.CatalogTree'
          type: array
      title: ListCatalogTreesResponse
      type: object
    sensorsdata.horizon.v1.Catalog:
      description: 数据目录定义
      properties:
        type:
          description: "节点类型\n ```\n NODE_TYPE_UNSPECIFIED = 0   // 未标识\n CATALOG = 1;               \
            \ // 目录\n RESOURCE = 2;               // 资源\n```"
          enum:
          - NODE_TYPE_UNSPECIFIED
          - CATALOG
          - RESOURCE
          example: CATALOG
          type: string
        name:
          description: 唯一标识
          example: 3aba2b10-b44a-4203-9f88-c7b79cc32930
          type: string
        display_name:
          description: "显示名\n type = CATALOG 时必填,最长 100 个字符"
          example: 属性
          type: string
        resource_type:
          description: "资源类型\n type = RESOURCE 时必填"
          example: TAG
          type: string
        resource_id:
          description: "资源标识\n type = RESOURCE 时必填"
          example: user_tag_bq_meta_string
          type: string
        parent_name:
          description: 父级目录标示
          type: string
        rank:
          description: 同级目录或者资源的顺序,目录和资源分开计数
          example: 1
          format: int32
          type: integer
        is_deleted:
          description: 是否已删除
          example: false
          type: boolean
        delete_path:
          description: 节点被删除时,记录父级目录路径
          type: string
        delete_time:
          description: 删除时间
          format: date-time
          type: string
        catalogs:
          description: 子目录
          items:
            $ref: '#/components/schemas/sensorsdata.horizon.v1.Catalog'
          type: array
        access_info:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.AccessInfo'
        custom_params:
          additionalProperties:
            description: ''
            type: string
          description: 自定义参数
          type: object
      required:
      - parent_name
      title: Catalog
      type: object
    sensorsdata.horizon.v1.AccessInfo:
      description: 数据访问信息
      properties:
        creator_id:
          description: 创建人 ID
          type: string
        modifier_id:
          description: 最近一次修改人 ID
          type: string
        create_time:
          description: 创建时间
          format: date-time
          type: string
        update_time:
          description: 最近一次修改时间
          format: date-time
          type: string
      title: AccessInfo
      type: object
    sensorsdata.horizon.v1.CatalogHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.horizon.v1.Catalog'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.horizon.v1.CatalogHttpApiResult
      type: object
x-sd-openapi-service-name: Catalog
x-sd-openapi-service-name-hyphen: catalog
x-sd-openapi-app-name: horizon
x-sd-openapi-service-name-zh_cn: 目录
x-original-swagger-version: '2.0'