openapi: 3.1.0 info: title: Userback REST API description: >- REST API for managing Userback feedback items, comments, and related customer feedback resources. Authentication uses a Bearer token (API token) generated from the Userback dashboard. version: "1.0" contact: name: Userback API Support url: https://docs.userback.io/reference servers: - url: https://rest.userback.io/1.0 description: Production security: - BearerAuth: [] tags: - name: Feedback description: Feedback items captured by Userback widgets. - name: Feedback Comments description: Comments attached to feedback items. - name: Projects description: Userback projects (workspaces grouping feedback widgets). paths: /feedback: get: tags: [Feedback] summary: List feedback description: Lists available feedback items. operationId: listFeedback parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Sort' - $ref: '#/components/parameters/Filter' responses: '200': description: A list of feedback items. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Feedback' '401': $ref: '#/components/responses/Unauthorized' post: tags: [Feedback] summary: Create feedback description: Creates a feedback item. operationId: createFeedback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Feedback' responses: '201': description: Feedback created. content: application/json: schema: $ref: '#/components/schemas/Feedback' '401': $ref: '#/components/responses/Unauthorized' /feedback/comment: get: tags: [Feedback Comments] summary: List feedback comments description: Lists feedback comments with pagination and filtering. operationId: listFeedbackComments parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Sort' - $ref: '#/components/parameters/Filter' responses: '200': description: A list of feedback comments. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/FeedbackComment' '401': $ref: '#/components/responses/Unauthorized' post: tags: [Feedback Comments] summary: Create feedback comment description: Creates a new comment on a feedback item. operationId: createFeedbackComment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FeedbackComment' responses: '201': description: Comment created. content: application/json: schema: $ref: '#/components/schemas/FeedbackComment' '401': $ref: '#/components/responses/Unauthorized' /feedback/comment/{id}: parameters: - name: id in: path required: true description: Feedback comment identifier. schema: type: string get: tags: [Feedback Comments] summary: Retrieve feedback comment description: Retrieves a specific feedback comment by id. operationId: getFeedbackComment responses: '200': description: Feedback comment. content: application/json: schema: $ref: '#/components/schemas/FeedbackComment' '404': $ref: '#/components/responses/NotFound' patch: tags: [Feedback Comments] summary: Update feedback comment description: Updates an existing feedback comment. operationId: updateFeedbackComment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FeedbackComment' responses: '200': description: Updated comment. content: application/json: schema: $ref: '#/components/schemas/FeedbackComment' '404': $ref: '#/components/responses/NotFound' delete: tags: [Feedback Comments] summary: Delete feedback comment description: Deletes a feedback comment. operationId: deleteFeedbackComment responses: '204': description: Deleted. '404': $ref: '#/components/responses/NotFound' /projects/{id}: parameters: - name: id in: path required: true description: Project identifier. schema: type: string get: tags: [Projects] summary: Retrieve project description: Retrieves a project by id. operationId: getProject responses: '200': description: Project. content: application/json: schema: $ref: '#/components/schemas/Project' '404': $ref: '#/components/responses/NotFound' components: securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: API Token description: >- Pass the Userback API token in the Authorization header as `Bearer `. Tokens are managed from the Userback dashboard. parameters: Page: name: page in: query description: Page number for pagination. required: false schema: type: integer minimum: 1 Limit: name: limit in: query description: Maximum number of items per page. required: false schema: type: integer minimum: 1 Sort: name: sort in: query description: Sort expression. required: false schema: type: string Filter: name: filter in: query description: Filter expression. required: false schema: type: string responses: Unauthorized: description: Missing or invalid Bearer token. NotFound: description: Resource not found. schemas: Feedback: type: object properties: id: type: string title: type: string description: type: string FeedbackComment: type: object properties: id: type: string feedback_id: type: string body: type: string Project: type: object properties: id: type: string name: type: string