openapi: 3.0.1 info: version: 1.0.1 title: Leapsome absences feedback API contact: name: Support url: https://leapsome.zendesk.com description: The Content API enables you to export some raw data from Leapsome for usage within your own systems and beyond what the Leapsome application offers natively. Usage is restricted to a maximum of 20 requests per second when making requests in parallel. If you exceed this limit, you will receive a 429 status code. servers: - url: https://api.leapsome.com/v1 tags: - name: feedback paths: /feedback: get: summary: List feedback description: 'Get a paginated list of instant feedback and praise items. Supports filtering by type (praise or instantFeedback), sender, and receiver. ' operationId: listFeedback security: - bearerAuth: [] tags: - feedback parameters: - name: type in: query required: false description: Filter by feedback type schema: type: string enum: - praise - instantFeedback - name: receiverId in: query required: false description: Filter by receiver user ID schema: type: string pattern: ^[0-9a-f]{24}$ - name: senderId in: query required: false description: Filter by sender user ID schema: type: string pattern: ^[0-9a-f]{24}$ - name: offset in: query required: false description: Number of results to skip schema: type: integer minimum: 0 default: 0 - name: limit in: query required: false description: Maximum number of results to return schema: type: integer minimum: 1 maximum: 1000 default: 100 responses: '200': description: A list of feedback items content: application/json: schema: $ref: '#/components/schemas/FeedbackList' '401': description: Authorization failed. Token is missing or invalid. /feedback/praise: post: summary: Create praise description: 'Create a new praise item. Requires the instant feedback praise permission. Returns the ID of the created feedback. ' operationId: createPraise security: - bearerAuth: [] tags: - feedback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePraiseRequest' responses: '201': description: Praise created successfully content: application/json: schema: $ref: '#/components/schemas/CreatePraiseResponse' '401': description: Authorization failed. Token is missing or invalid. '403': description: Insufficient permissions. Praise permission is required. /feedback/instant: post: summary: Create instant feedback description: 'Create instant feedback for a user. By default only visible to the receiver. Requires the instant feedback permission. ' operationId: createInstantFeedback security: - bearerAuth: [] tags: - feedback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateInstantFeedbackRequest' responses: '201': description: Instant feedback created successfully content: application/json: schema: $ref: '#/components/schemas/CreateFeedbackResponse' '401': description: Authorization failed. Token is missing or invalid. '403': description: Insufficient permissions. Instant feedback permission is required. /feedback/private-note: post: summary: Create private note description: 'Create a private note about a user. Private notes are only visible to the sender and cannot be seen by the receiver or anyone else. ' operationId: createPrivateNote security: - bearerAuth: [] tags: - feedback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePrivateNoteRequest' responses: '201': description: Private note created successfully content: application/json: schema: $ref: '#/components/schemas/CreateFeedbackResponse' '401': description: Authorization failed. Token is missing or invalid. components: schemas: CreateFeedbackResponse: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ description: ID of the created feedback item FeedbackList: type: object properties: data: type: array items: $ref: '#/components/schemas/FeedbackItem' meta: type: object properties: offset: type: integer description: Number of results skipped limit: type: integer description: Maximum number of results returned totalCount: type: integer description: Total number of feedback items CreatePraiseResponse: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ description: ID of the created feedback item CreateInstantFeedbackRequest: type: object required: - senderId - receiverId - message properties: senderId: type: string pattern: ^[0-9a-f]{24}$ description: User ID of the sender receiverId: type: string pattern: ^[0-9a-f]{24}$ description: User ID of the feedback receiver message: type: string minLength: 1 description: The feedback message content visibility: type: string enum: - public - receiver - manager - senderOnly default: receiver description: Visibility level of the feedback CreatePraiseRequest: type: object required: - senderId - receiverIds - message properties: senderId: type: string pattern: ^[0-9a-f]{24}$ description: User ID of the sender receiverIds: type: array items: type: string pattern: ^[0-9a-f]{24}$ minItems: 1 description: User IDs of the praise receivers message: type: string minLength: 1 description: The praise message content visibility: type: string enum: - public - receiver default: public description: Visibility level of the praise CreatePrivateNoteRequest: type: object required: - senderId - receiverId - message properties: senderId: type: string pattern: ^[0-9a-f]{24}$ description: User ID of the sender receiverId: type: string pattern: ^[0-9a-f]{24}$ description: User ID the private note is about message: type: string minLength: 1 description: The private note content FeedbackItem: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ example: 58d55e3ffdc2eb20547edd0a description: Feedback item ID type: type: string enum: - praise - instantFeedback description: Type of feedback sender: type: object nullable: true properties: id: type: string pattern: ^[0-9a-f]{24}$ nullable: true description: Sender user ID (null if anonymous) name: type: string description: Sender display name ("Anonymous" if anonymous) description: The user who sent the feedback receivers: type: array items: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ description: Receiver user or team ID name: type: string description: Receiver display name description: Users or teams who received the feedback message: type: string nullable: true description: The feedback message content badge: type: object nullable: true properties: name: type: string description: Badge name icon: type: string description: Badge icon path description: Badge attached to the feedback (praise only) visibility: type: string enum: - public - receiver - senderOnly description: Visibility level of the feedback createdAt: type: string format: date-time description: When the feedback was created likesCount: type: integer description: Number of likes on the feedback commentsCount: type: integer description: Number of comments on the feedback securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT