Absentify API

REST API for managing employee absences, leave requests, members, departments, leave types, public holidays, and workspace settings. Requires an API key (x-api-key header) available on the Plus plan. Rate limit of 150 requests per second per IP address.

OpenAPI Specification

absentify-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Absentify API
  description: 'The Absentify REST API provides comprehensive absence management capabilities for Microsoft 365-integrated organizations. Manage members, departments, leave types, requests, allowances,
    public holidays, and workspace settings. The API requires the Plus plan and uses API key authentication. Rate limit: 150 requests per second per IP.'
  version: 1.0.0
  contact:
    url: https://absentify.com/docs
    email: [email protected]
  license:
    name: Proprietary
    url: https://absentify.com/terms-and-conditions
  x-generated-from: official-openapi-spec
servers:
- url: https://api.absentify.com/api/v1
tags:
- name: Departments
- name: Leave types
- name: Members
- name: Requests
- name: Public holidays
- name: Workspace
- name: Absences
externalDocs:
  url: https://absentify.com/docs/en/api-reference
paths:
  /members:
    get:
      operationId: member-getMembers
      summary: Absentify Get All Members
      description: Get all members with optional filters for departments, status, employment dates, admin status, approval process, approvers, allowance types, name, birthday month, and manager type
      tags:
      - Members
      security:
      - ApiKey: []
      parameters:
      - in: query
        name: department_ids
        schema:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      - in: query
        name: status
        schema:
          type: string
          enum:
          - INACTIVE
          - ACTIVE
          - ARCHIVED
      - in: query
        name: employment_start_date_from
        schema:
          type: string
      - in: query
        name: employment_start_date_to
        schema:
          type: string
      - in: query
        name: employment_end_date_from
        schema:
          type: string
      - in: query
        name: employment_end_date_to
        schema:
          type: string
      - in: query
        name: is_admin
        schema:
          type: boolean
      - in: query
        name: approval_process
        schema:
          type: string
          enum:
          - Linear_all_have_to_agree
          - Linear_one_has_to_agree
          - Parallel_all_have_to_agree
          - Parallel_one_has_to_agree
      - in: query
        name: has_approvers
        schema:
          type: boolean
      - in: query
        name: allowance_type_id
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: birthday_month
        schema:
          type: number
          minimum: 1
          maximum: 12
      - in: query
        name: manager_type
        schema:
          type: string
          enum:
          - Member
          - Manager
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    custom_id:
                      anyOf:
                      - type: string
                      - type: 'null'
                    name:
                      anyOf:
                      - type: string
                      - type: 'null'
                    createdAt:
                      type: string
                    updatedAt:
                      type: string
                    allowances:
                      type: array
                      items:
                        type: object
                        properties:
                          remaining:
                            type: number
                          brought_forward:
                            type: number
                          allowance:
                            type: number
                          taken:
                            type: number
                          year:
                            type: number
                          compensatory_time_off:
                            type: number
                          updatedAt:
                            type: string
                          createdAt:
                            type: string
                          id:
                            type: string
                          allowance_type:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              ignore_allowance_limit:
                                type: boolean
                            required:
                            - id
                            - name
                            - ignore_allowance_limit
                            additionalProperties: false
                        required:
                        - remaining
                        - brought_forward
                        - allowance
                        - taken
                        - year
                        - compensatory_time_off
                        - updatedAt
                        - createdAt
                        - id
                        - allowance_type
                        additionalProperties: false
                    allowance_type_configurations:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          allowance_type_id:
                            type: string
                          default:
                            type: boolean
                          disabled:
                            type: boolean
                        required:
                        - id
                        - allowance_type_id
                        - default
                        - disabled
                        additionalProperties: false
                    allowance_type_configurtaions:
                      description: 'DEPRECATED: Use allowance_type_configurations instead'
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          allowance_type_id:
                            type: string
                          default:
                            type: boolean
                          disabled:
                            type: boolean
                        required:
                        - id
                        - allowance_type_id
                        - default
                        - disabled
                        additionalProperties: false
                    approval_process:
                      type: string
                      enum:
                      - Linear_all_have_to_agree
                      - Linear_one_has_to_agree
                      - Parallel_all_have_to_agree
                      - Parallel_one_has_to_agree
                    status:
                      type: string
                      enum:
                      - INACTIVE
                      - ACTIVE
                      - ARCHIVED
                    birthday:
                      anyOf:
                      - type: string
                      - type: 'null'
                    employment_start_date:
                      anyOf:
                      - type: string
                      - type: 'null'
                    employment_end_date:
                      anyOf:
                      - type: string
                      - type: 'null'
                    email:
                      anyOf:
                      - type: string
                      - type: 'null'
                    departments:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          manager_type:
                            type: string
                            enum:
                            - Member
                            - Manager
                        required:
                        - id
                        - name
                        - manager_type
                        additionalProperties: false
                    is_admin:
                      type: boolean
                    has_approvers:
                      type: array
                      items:
                        type: object
                        properties:
                          member:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                anyOf:
                                - type: string
                                - type: 'null'
                              email:
                                anyOf:
                                - type: string
                                - type: 'null'
                            required:
                            - id
                            - name
                            - email
                            additionalProperties: false
                        required:
                        - member
                        additionalProperties: false
                    approver_config:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - custom
                          - department
                          - microsoft
                        department_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        microsoft_sync_level:
                          anyOf:
                          - type: number
                          - type: 'null'
                      required:
                      - type
                      - department_id
                      - microsoft_sync_level
                      additionalProperties: false
                  required:
                  - id
                  - custom_id
                  - name
                  - createdAt
                  - updatedAt
                  - allowances
                  - allowance_type_configurations
                  - allowance_type_configurtaions
                  - approval_process
                  - status
                  - birthday
                  - employment_start_date
                  - employment_end_date
                  - email
                  - departments
                  - is_admin
                  - has_approvers
                  - approver_config
                  additionalProperties: false
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: member-inviteMember
      summary: Absentify Invite a Member
      description: Invite a member
      tags:
      - Members
      security:
      - ApiKey: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                email:
                  anyOf:
                  - type: string
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: 'null'
                department_ids:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    required:
                    - id
                employment_start_date:
                  anyOf:
                  - type: string
                  - type: 'null'
                public_holiday_id:
                  type: string
                annual_allowance_current_year:
                  type: number
                annual_allowance_next_year:
                  type: number
                birthday:
                  anyOf:
                  - type: string
                  - type: 'null'
                custom_id:
                  anyOf:
                  - type: string
                  - type: 'null'
                defaultAllowances:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      current_year:
                        type: number
                      next_year:
                        type: number
                      default:
                        type: boolean
                      disabled:
                        type: boolean
                    required:
                    - id
                    - current_year
                    - next_year
              required:
              - name
              - email
              - department_ids
              - employment_start_date
              - public_holiday_id
              - annual_allowance_current_year
              - annual_allowance_next_year
              - birthday
              - custom_id
              - defaultAllowances
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /members/{id}:
    get:
      operationId: member-getMemberById
      summary: Absentify Read a Member by Id
      description: Read a member by id
      tags:
      - Members
      security:
      - ApiKey: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    id:
                      type: string
                    custom_id:
                      anyOf:
                      - type: string
                      - type: 'null'
                    name:
                      anyOf:
                      - type: string
                      - type: 'null'
                    createdAt:
                      type: string
                    updatedAt:
                      type: string
                    allowances:
                      type: array
                      items:
                        type: object
                        properties:
                          remaining:
                            type: number
                          brought_forward:
                            type: number
                          allowance:
                            type: number
                          taken:
                            type: number
                          year:
                            type: number
                          compensatory_time_off:
                            type: number
                          updatedAt:
                            type: string
                          createdAt:
                            type: string
                          id:
                            type: string
                          allowance_type:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              ignore_allowance_limit:
                                type: boolean
                            required:
                            - id
                            - name
                            - ignore_allowance_limit
                            additionalProperties: false
                        required:
                        - remaining
                        - brought_forward
                        - allowance
                        - taken
                        - year
                        - compensatory_time_off
                        - updatedAt
                        - createdAt
                        - id
                        - allowance_type
                        additionalProperties: false
                    allowance_type_configurations:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          allowance_type_id:
                            type: string
                          default:
                            type: boolean
                          disabled:
                            type: boolean
                        required:
                        - id
                        - allowance_type_id
                        - default
                        - disabled
                        additionalProperties: false
                    allowance_type_configurtaions:
                      description: 'DEPRECATED: Use allowance_type_configurations instead'
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          allowance_type_id:
                            type: string
                          default:
                            type: boolean
                          disabled:
                            type: boolean
                        required:
                        - id
                        - allowance_type_id
                        - default
                        - disabled
                        additionalProperties: false
                    approval_process:
                      type: string
                      enum:
                      - Linear_all_have_to_agree
                      - Linear_one_has_to_agree
                      - Parallel_all_have_to_agree
                      - Parallel_one_has_to_agree
                    status:
                      type: string
                      enum:
                      - INACTIVE
                      - ACTIVE
                      - ARCHIVED
                    birthday:
                      anyOf:
                      - type: string
                      - type: 'null'
                    employment_start_date:
                      anyOf:
                      - type: string
                      - type: 'null'
                    employment_end_date:
                      anyOf:
                      - type: string
                      - type: 'null'
                    email:
                      anyOf:
                      - type: string
                      - type: 'null'
                    departments:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          manager_type:
                            type: string
                            enum:
                            - Member
                            - Manager
                        required:
                        - id
                        - name
                        - manager_type
                        additionalProperties: false
                    is_admin:
                      type: boolean
                    has_approvers:
                      type: array
                      items:
                        type: object
                        properties:
                          member:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                anyOf:
                                - type: string
                                - type: 'null'
                              email:
                                anyOf:
                                - type: string
                                - type: 'null'
                            required:
                            - id
                            - name
                            - email
                            additionalProperties: false
                        required:
                        - member
                        additionalProperties: false
                    approver_config:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - custom
                          - department
                          - microsoft
                        department_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        microsoft_sync_level:
                          anyOf:
                          - type: number
                          - type: 'null'
                      required:
                      - type
                      - department_id
                      - microsoft_sync_level
                      additionalProperties: false
                    schedules:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          from:
                            anyOf:
                            - type: string
                            - type: 'null'
                          monday_am_start:
                            type: string
                          monday_am_end:
                            type: string
                          monday_pm_start:
                            type: string
                          monday_pm_end:
                            type: string
                          monday_am_enabled:
                            type: boolean
                          monday_pm_enabled:
                            type: boolean
                          monday_deduct_fullday:
                            type: boolean
                          tuesday_am_start:
                            type: string
                          tuesday_am_end:
                            type: string
                          tuesday_pm_start:
                            type: string
                          tuesday_pm_end:
                            type: string
                          tuesday_am_enabled:
                            type: boolean
                          tuesday_pm_enabled:
                            type: boolean
                          tuesday_deduct_fullday:
                            type: boolean
                          wednesday_am_start:
                            type: string
                          wednesday_am_end:
                            type: string
                          wednesday_pm_start:
                            type: string
                          wednesday_pm_end:
                            type: string
                          wednesday_am_enabled:
                            type: boolean
                          wednesday_pm_enabled:
                            type: boolean
                          wednesday_deduct_fullday:
                            type: boolean
                          thursday_am_start:
                            type: string
                          thursday_am_end:
                            type: string
                          thursday_pm_start:
                            type: string
                          thursday_pm_end:
                            type: string
                          thursday_am_enabled:
                            type: boolean
                          thursday_pm_enabled:
                            type: boolean
                          thursday_deduct_fullday:
                            type: boolean
                          friday_am_start:
                            type: string
                          friday_am_end:
                            type: string
                          friday_pm_start:
                            type: string
                          friday_pm_end:
                            type: string
                          friday_am_enabled:
                            type: boolean
                          friday_pm_enabled:
                            type: boolean
                          friday_deduct_fullday:
                            type: boolean
                          saturday_am_start:
                            type: string
                          saturday_am_end:
                            type: string
                          saturday_pm_start:
                            type: string
                          saturday_pm_end:
                            type: string
                          saturday_am_enabled:
                            type: boolean
                          saturday_pm_enabled:
                            type: boolean
                          saturday_deduct_fullday:
                            type: boolean
                          sunday_am_start:
                            type: string
                          sunday_am_end:
                            type: string
                          sunday_pm_start:
                            type: string
                          sunday_pm_end:
                            type: string
                          sunday_am_enabled:
                            type: boolean
                          sunday_pm_enabled:
                            type: boolean
                          sunday_deduct_fullday:
                            type: boolean
                          updatedAt:
                            type: string
                          createdAt:
                            type: string
                        required:
                        - id
                        - from
                        - monday_am_start
                        - monday_am_end
                        - monday_pm_start
                        - monday_pm_end
                        - monday_am_enabled
                        - monday_pm_enabled
                        - monday_deduct_fullday
                        - tuesday_am_start
                        - tuesday_am_end
                        - tuesday_pm_start
                        - tuesday_pm_end
                        - tuesday_am_enabled
                        - tuesday_pm_enabled
                        - tuesday_deduct_fullday
                        - wednesday_am_start
                        - wednesday_am_end
                        - wednesday_pm_start
                        - wednesday_pm_end
                        - wednesday_am_enabled
                        - wednesday_pm_enabled
                        - wednesday_deduct_fullday
                        - thursday_am_start
                        - thursday_am_end
                        - thursday_pm_start
                        - thursday_pm_end
                        - thursday_am_enabled
                        - thursday_pm_enabled
                        - thursday_deduct_fullday
                        - friday_am_start
                        - friday_am_end
                        - friday_pm_start
                        - friday_pm_end
                        - friday_am_enabled
                        - friday_pm_enabled
                        - friday_deduct_fullday
                        - saturday_am_start
                        - saturday_am_end
                        - saturday_pm_start
                        - saturday_pm_end
                        - saturday_am_enabled
                        - saturday_pm_enabled
                        - saturday_deduct_fullday
                        - sunday_am_start
                        - sunday_am_end
                        - sunday_pm_start
                        - sunday_pm_end
                        - sunday_am_enabled
                        - sunday_pm_enabled
                        - sunday_deduct_fullday
                        - updatedAt
                        - createdAt
                        additionalProperties: false
                  required:
                  - id
                  - custom_id
                  - name
                  - createdAt
                  - updatedAt
                  - allowances
                  - allowance_type_configurations
                  - allowance_type_configurtaions
                  - approval_process
                  - status
                  - birthday
                  - employment_start_date
                  - employment_end_da

# --- truncated at 32 KB (253 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/absentify/refs/heads/main/openapi/absentify-openapi.yml