Sensors Data Express Attribute API

The Express Attribute API from Sensors Data — 5 operation(s) for express attribute.

Operations 5

POST /express-attribute/subscribe 属性/标签订阅 #
POST /express-attribute/unsubscribe 取消属性订阅 #
POST /express-attribute/status/query 批量查询属性订阅状态 #
POST /express-attribute/list 获取实体属性列表 #
GET /express-attribute/quota/query 查询Quota #

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-express-attribute-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-express-attribute-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 属性元数据操作服务,提供标签订阅、取消订阅、查询订阅状态等功能
  title: 神策智能运营 Express Attribute API
  version: ''
servers:
- url: /api/v3/focus/v1
tags:
- name: Express Attribute
paths:
  /express-attribute/subscribe:
    post:
      description: 订阅一个实体属性,相同项目下同一个订阅方对同一个实体属性只能订阅一次,重复订阅会报错
      operationId: SubscribeEntityAttribute
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      - description: 租户 ID, 用于请求所属租户
        in: header
        name: X-Organization-Id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.focus.v1.SubscribeEntityAttributeRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data: {}
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.focus.v1.SubscribeEntityAttributeResponseHttpApiResult'
          description: sensorsdata.focus.v1.SubscribeEntityAttributeResponse
      summary: 属性/标签订阅
      x-sd-openapi:
        responseClass: com.sensorsdata.focus.v1.SubscribeEntityAttributeResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.focus.v1.SubscribeEntityAttributeRequest
        grpcServiceBase: com.sensorsdata.focus.v1.ExpressAttributeServiceGrpc.ExpressAttributeServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: SubscribeEntityAttributeRequest
      tags:
      - Express Attribute
  /express-attribute/unsubscribe:
    post:
      description: 此接口幂等
      operationId: UnSubscribeEntityAttribute
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      - description: 租户 ID, 用于请求所属租户
        in: header
        name: X-Organization-Id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.focus.v1.UnSubscribeEntityAttributeRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  success: true
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.focus.v1.UnSubscribeEntityAttributeResponseHttpApiResult'
          description: sensorsdata.focus.v1.UnSubscribeEntityAttributeResponse
      summary: 取消属性订阅
      x-sd-openapi:
        responseClass: com.sensorsdata.focus.v1.UnSubscribeEntityAttributeResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.focus.v1.UnSubscribeEntityAttributeRequest
        grpcServiceBase: com.sensorsdata.focus.v1.ExpressAttributeServiceGrpc.ExpressAttributeServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: UnSubscribeEntityAttributeRequest
      tags:
      - Express Attribute
  /express-attribute/status/query:
    post:
      description: 批量查询属性订阅状态
      operationId: GetEntityAttributeStatus
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      - description: 租户 ID, 用于请求所属租户
        in: header
        name: X-Organization-Id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.focus.v1.GetEntityAttributeStatusRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data: {}
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.focus.v1.GetEntityAttributeStatusResponseHttpApiResult'
          description: sensorsdata.focus.v1.GetEntityAttributeStatusResponse
      summary: 批量查询属性订阅状态
      x-sd-openapi:
        responseClass: com.sensorsdata.focus.v1.GetEntityAttributeStatusResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.focus.v1.GetEntityAttributeStatusRequest
        grpcServiceBase: com.sensorsdata.focus.v1.ExpressAttributeServiceGrpc.ExpressAttributeServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: GetEntityAttributeStatusRequest
      tags:
      - Express Attribute
  /express-attribute/list:
    post:
      description: 获取实体属性列表
      operationId: ListAttributes
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      - description: 租户 ID, 用于请求所属租户
        in: header
        name: X-Organization-Id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sensorsdata.focus.v1.ListAttributesRequest'
        required: false
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  page_filter: {}
                  attribute_records:
                  - create_time: 1709895845938
                    project_id: 2
                    hubble_sub_id: 7
                    name: age
                    sync_done_time: 1709891376000
                    id: 1
                    type: tag
                    name_cn: 年龄
                    status: ACTIVE
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.focus.v1.ListAttributesResponseHttpApiResult'
          description: sensorsdata.focus.v1.ListAttributesResponse
      summary: 获取实体属性列表
      x-sd-openapi:
        responseClass: com.sensorsdata.focus.v1.ListAttributesResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.focus.v1.ListAttributesRequest
        grpcServiceBase: com.sensorsdata.focus.v1.ExpressAttributeServiceGrpc.ExpressAttributeServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      x-codegen-request-body-name: ListAttributesRequest
      tags:
      - Express Attribute
  /express-attribute/quota/query:
    get:
      description: 查询Quota
      operationId: QueryQuota
      parameters:
      - description: 全局唯一的密钥,用于验证和授权访问 API 接口
        in: header
        name: api-key
        required: true
        schema:
          type: string
      - description: 项目名, 指定请求所属项目
        in: header
        name: sensorsdata-project
        required: true
        schema:
          type: string
      - description: 租户 ID, 用于请求所属租户
        in: header
        name: X-Organization-Id
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            application/json:
              example:
                code: SUCCESS
                data:
                  used_count: 2
                  remained_count: 8
                request_id: '1'
              schema:
                $ref: '#/components/schemas/sensorsdata.focus.v1.QuotaResponseHttpApiResult'
          description: sensorsdata.focus.v1.QuotaResponse
      summary: 查询Quota
      x-sd-openapi:
        responseClass: com.sensorsdata.focus.v1.QuotaResponse
        isServerStreaming: false
        requestClass: com.sensorsdata.focus.v1.QuotaRequest
        grpcServiceBase: com.sensorsdata.focus.v1.ExpressAttributeServiceGrpc.ExpressAttributeServiceImplBase
        internalDesc: classes in template for grpc service dynamic invoking
        isClientStreaming: false
      tags:
      - Express Attribute
components:
  schemas:
    sensorsdata.focus.v1.SubscribeEntityAttributeResponse:
      description: ''
      title: SubscribeEntityAttributeResponse
      type: object
    sensorsdata.focus.v1.web.PageFilter:
      description: 分页信息
      properties:
        limit:
          description: 每页大小
          format: int32
          type: integer
        offset:
          description: 偏移量
          format: int32
          type: integer
        total:
          description: 总数
          format: int32
          type: integer
      title: PageFilter
      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.focus.v1.QuotaResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.focus.v1.QuotaResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.focus.v1.QuotaResponseHttpApiResult
      type: object
    sensorsdata.focus.v1.UnSubscribeEntityAttributeResponse:
      description: ''
      properties:
        success:
          description: 是否成功取消订阅
          example: true
          type: boolean
      title: UnSubscribeEntityAttributeResponse
      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.focus.v1.ListAttributesRequest:
      description: ''
      properties:
        project_id:
          description: 项目ID
          example: 1
          format: int32
          type: integer
        keyword:
          description: 搜索的关键字(订阅ID、属性名、标签名称)
          example: '2'
          type: string
        status:
          description: 订阅状态
          example: ACTIVE
          type: string
        subscribe_start_date:
          description: 订阅开始时间
          example: '2020-01-01'
          type: string
        subscribe_end_date:
          description: 订阅结束时间
          example: '2032-01-01'
          type: string
        page_filter:
          $ref: '#/components/schemas/sensorsdata.focus.v1.web.PageFilter'
        subscribers:
          description: 订阅方
          items:
            type: string
          type: array
      title: ListAttributesRequest
      type: object
    sensorsdata.focus.v1.SubscribeEntityAttributeResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.focus.v1.SubscribeEntityAttributeResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.focus.v1.SubscribeEntityAttributeResponseHttpApiResult
      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.focus.v1.QuotaResponse:
      description: ''
      properties:
        used_count:
          description: 已经使用的额度
          example: 2
          format: int32
          type: integer
        remained_count:
          description: 剩余的额度
          example: 8
          format: int32
          type: integer
      title: QuotaResponse
      type: object
    sensorsdata.focus.v1.GetEntityAttributeStatusResponse:
      description: ''
      properties:
        attribute_subscribe_statuses:
          description: 属性/标签订阅状态列表
          items:
            enum:
            - ATTRIBUTE_SUBSCRIBE_PREPARING
            - ATTRIBUTE_SUBSCRIBE_READY
            - ATTRIBUTE_SUBSCRIBE_EXCEPTION
            type: string
          type: array
      title: GetEntityAttributeStatusResponse
      type: object
    sensorsdata.focus.v1.SubscribeEntityAttributeRequest:
      description: ''
      properties:
        entity_name:
          description: 实体名,不传默认 user 实体
          type: string
        attribute_name:
          description: 属性名
          type: string
        subscriber:
          description: 订阅方
          type: string
      title: SubscribeEntityAttributeRequest
      type: object
    sensorsdata.focus.v1.GetEntityAttributeStatusResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.focus.v1.GetEntityAttributeStatusResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.focus.v1.GetEntityAttributeStatusResponseHttpApiResult
      type: object
    sensorsdata.focus.v1.ListAttributesResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.focus.v1.ListAttributesResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.focus.v1.ListAttributesResponseHttpApiResult
      type: object
    sensorsdata.focus.v1.UnSubscribeEntityAttributeRequest:
      description: ''
      properties:
        entity_name:
          description: 实体名,不传默认 user 实体
          type: string
        attribute_name:
          description: 被取消订阅的属性名
          type: string
        subscriber:
          description: 订阅方
          type: string
      title: UnSubscribeEntityAttributeRequest
      type: object
    sensorsdata.focus.v1.GetEntityAttributeStatusRequest:
      description: ''
      properties:
        entity_name:
          description: 实体名,不传默认 user 实体
          type: string
        attribute_names:
          description: 属性名
          items:
            type: string
          type: array
      title: GetEntityAttributeStatusRequest
      type: object
    sensorsdata.focus.v1.AttributeRecord:
      description: ''
      properties:
        id:
          description: 订阅ID
          example: 1
          format: int32
          type: integer
        project_id:
          description: 项目ID
          example: 2
          format: int32
          type: integer
        name_cn:
          description: 中文名称
          example: 年龄
          type: string
        name:
          description: 英文名称
          example: age
          type: string
        status:
          description: 订阅状态
          example: ACTIVE
          type: string
        type:
          description: 订阅类型:如 用户属性、标签
          example: tag
          type: string
        hubble_sub_id:
          description: hubble订阅ID
          example: 7
          format: int32
          type: integer
        create_time:
          description: 创建时间
          example: 1709895845938
          format: int64
          type: integer
        sync_done_time:
          description: 同步完成时间
          example: 1709891376000
          format: int64
          type: integer
        subscriber:
          description: 订阅方
          type: string
      title: AttributeRecord
      type: object
    sensorsdata.focus.v1.ListAttributesResponse:
      description: ''
      properties:
        page_filter:
          $ref: '#/components/schemas/sensorsdata.focus.v1.web.PageFilter'
        attribute_records:
          description: 属性订阅详情
          items:
            $ref: '#/components/schemas/sensorsdata.focus.v1.AttributeRecord'
          type: array
      title: ListAttributesResponse
      type: object
    sensorsdata.focus.v1.UnSubscribeEntityAttributeResponseHttpApiResult:
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
        data:
          $ref: '#/components/schemas/sensorsdata.focus.v1.UnSubscribeEntityAttributeResponse'
        error_info:
          $ref: '#/components/schemas/sensorsdata.common.ErrorInfo'
      title: sensorsdata.focus.v1.UnSubscribeEntityAttributeResponseHttpApiResult
      type: object
x-sd-openapi-service-name: ExpressAttribute
x-sd-openapi-service-name-hyphen: express-attribute
x-sd-openapi-app-name: focus
x-sd-openapi-service-name-zh_cn: 属性-元数据
x-original-swagger-version: '2.0'