openapi: 3.2.0 info: description: Workflow management API for B3OS title: B3OS Workflow User API version: '1.0' tags: - name: user paths: /v1/user/interests: get: description: List the authenticated user's captured interests (strongest first) parameters: - description: Number of items (default 20, max 100) in: query name: limit schema: type: integer - description: Offset for pagination (default 0) in: query name: offset schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListUserInterestsSuccessResponse' description: OK '401': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Unauthorized '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - user post: description: Add an interest for the authenticated user requestBody: content: application/json: schema: oneOf: - type: object - $ref: '#/components/schemas/internal_app_api_http_v1_userinterests.addInterestRequest' summary: request description: Interest to add description: Interest to add required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInterestActionSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - user /v1/user/interests/settings: get: description: Get the authenticated user's interest-tag opt-in (B3-4674) responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInterestSettingsSuccessResponse' description: OK '401': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Unauthorized '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - user put: description: Enable or disable the authenticated user's interest tags (B3-4674) requestBody: content: application/json: schema: type: object responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInterestSettingsSuccessResponse' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Unauthorized '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - user /v1/user/interests/{tagId}: delete: description: Remove an interest for the authenticated user parameters: - description: Interest tag id to remove in: path name: tagId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInterestActionSuccessResponse' description: OK '401': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Unauthorized '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Internal Server Error tags: - user components: schemas: github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse: properties: code: type: integer details: items: {} type: array uniqueItems: false message: type: string requestId: type: string type: object internal_app_api_http_v1_userinterests.addInterestRequest: properties: value: type: string required: - value type: object UserInterestSettingsSuccessResponse: properties: code: example: 200 type: integer data: $ref: '#/components/schemas/UserInterestSettings' message: example: success type: string requestId: example: req_abc123 type: string type: object ListUserInterestsSuccessResponse: properties: code: example: 200 type: integer data: $ref: '#/components/schemas/PaginatedData-schemas_UserInterest' message: example: success type: string requestId: example: req_abc123 type: string type: object UserInterestActionSuccessResponse: properties: code: example: 200 type: integer data: additionalProperties: type: string type: object message: example: success type: string requestId: example: req_abc123 type: string type: object UserInterest: properties: kind: description: app | tag | interest (display badge) example: interest type: string lastSeen: description: last reinforced type: string source: description: conversation, manual, behavior, … example: conversation type: string strength: description: 0-1 decayed effective score example: 0.82 type: number tagId: description: stable id, used to delete example: interest_ab12cd34ef56 type: string value: description: the interest itself example: NVDA type: string type: object PaginatedData-schemas_UserInterest: properties: hasMore: type: boolean items: items: $ref: '#/components/schemas/UserInterest' type: array uniqueItems: false limit: type: integer offset: type: integer type: object UserInterestSettings: properties: enabled: description: per-user, default off example: false type: boolean type: object