Bindbee Time Off API

Employee time-off requests and accrued balances from connected HRIS systems.

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/hris/v1/time-off List time-off requests · Get Time Off List #
Ask an LLM
“Which vacation or leave requests has an employee submitted?”
“Can I filter time-off requests by status such as approved or pending?”
Tell an agent
List time-off requests for employee {employee_id}.
Show time-off requests with status {status}.
POST /api/hris/v1/time-off Submit a time-off request · Create Time Off #
Ask an LLM
“How do I file a leave request for an employee in the HR system?”
“Can I retry creating a time-off request without duplicating it?”
Tell an agent
Create a time-off request with idempotency key {idempotency_key}.
Submit a new leave request on connector {connector}.
GET /api/hris/v1/time-off/meta/post Get the time-off request schema · Get Create Time Off Meta #
Ask an LLM
“What fields does creating a time-off request need for this HRIS?”
“Can I see the POST time-off schema before submitting leave?”
Tell an agent
Get the time-off request schema for connector {connector}.
Show the fields needed to submit a leave request.
GET /api/hris/v1/time-off/{id} Get one time-off request · Get Time Off By Id #
Ask an LLM
“What are the dates and status of one leave request?”
“Can I fetch a single time-off request by id on the v1 route?”
Tell an agent
Get time-off request {id}.
Retrieve leave request {id} and expand {expand}.
GET /hris/time-off List time off and balances on the short route · Bindbee List Time Off #
Ask an LLM
“Can I get both time-off requests and balances in one call from the simple route?”
“What leave and remaining balance does an employee have on the short time-off route?”
Tell an agent
List time off and balances for employee {employee_id} on the short route.
Show time-off requests together with balances from the HR system.

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/bindbee:bindbee-time-off-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

bindbee-time-off-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bindbee Time Off API
  x-refined-note:
  - x-generated-from differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Time Off across 2 of this provider''s published API definitions: bindbee-openapi.json, bindbee-api.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.bindbee.dev/v1
  description: Bindbee Unified API
tags:
- name: Time Off
paths:
  /api/hris/v1/time-off:
    get:
      tags:
      - Time Off
      summary: Get Time Off List
      description: Returns a list of TimeOff objects.
      operationId: get_time_off_list_api_hris_v1_time_off_get
      security:
      - HTTPBearer: []
      parameters:
      - name: ids
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The ID of the time offs to fetch
          examples:
          - 01931edf-04b6-7391-8a5c-93ac4b395316,01931edf-04c8-7649-a470-d85f6161bd1a
          title: Ids
        description: The ID of the time offs to fetch
      - name: remote_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The third-party API ID of the matching object.
          examples:
          - '3235005483341316245'
          title: Remote Id
        description: The third-party API ID of the matching object.
      - name: employee_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The ID of the employees to fetch time offs for
          examples:
          - 01931edf-04b6-7391-8a5c-93ac4b395316,01931edf-04c8-7649-a470-d85f6161bd1a
          title: Employee Id
        description: The ID of the employees to fetch time offs for
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The status of the time off to filter by
          examples:
          - REQUESTED
          - APPROVED
          - DECLINED
          - CANCELLED
          - DELETED
          title: Status
        description: The status of the time off to filter by
      - name: include_raw_data
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to include the original data Bindbee fetched from the third-party to produce these models.
          examples:
          - false
          default: false
          title: Include Raw Data
        description: Whether to include the original data Bindbee fetched from the third-party to produce these models.
      - name: include_custom_fields
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to include custom fields in the response.
          examples:
          - false
          default: false
          title: Include Custom Fields
        description: Whether to include custom fields in the response.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          description: Number of results to return per page. Maximum size is 200.
          default: 50
          title: Page Size
        description: Number of results to return per page. Maximum size is 200.
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The pagination cursor value.
          title: Cursor
        description: The pagination cursor value.
      - name: expand
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. You can also specify required fields in [] for each relation name.
          examples:
          - manager[first_name,last_name]
          title: Expand
        description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. You can also specify required fields in [] for each relation name.
      - name: modified_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'If provided, only objects synced by Bindbee after this date time will be returned. Format: DateTime (ISO 8601). If no timezone offset is supplied, the value is interpreted as UTC.'
          examples:
          - '2024-02-21T21:22:12.993Z'
          title: Modified After
        description: 'If provided, only objects synced by Bindbee after this date time will be returned. Format: DateTime (ISO 8601). If no timezone offset is supplied, the value is interpreted as UTC.'
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_HrisTimeOff_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Time Off
      summary: Create Time Off
      description: Creates a TimeOff object with the given values.
      operationId: create_time_off_api_hris_v1_time_off_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-idempotency-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Key to guarantee idempotent write execution.
          title: X-Idempotency-Key
        description: Key to guarantee idempotent write execution.
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/hris/v1/time-off/meta/post:
    get:
      tags:
      - Time Off
      summary: Get Create Time Off Meta
      description: Returns request schema for POST Time off request.
      operationId: get_create_time_off_meta_api_hris_v1_time_off_meta_post_get
      security:
      - HTTPBearer: []
      parameters:
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Create Time Off Meta Api Hris V1 Time Off Meta Post Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/hris/v1/time-off/{id}:
    get:
      tags:
      - Time Off
      summary: Get Time Off By Id
      description: Returns a TimeOff object with the given id.
      operationId: get_time_off_by_id_api_hris_v1_time_off__id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Id
      - name: include_raw_data
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to include the original data Bindbee fetched from the third-party to produce these models.
          examples:
          - false
          default: false
          title: Include Raw Data
        description: Whether to include the original data Bindbee fetched from the third-party to produce these models.
      - name: include_custom_fields
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to include custom fields in the response.
          examples:
          - false
          default: false
          title: Include Custom Fields
        description: Whether to include custom fields in the response.
      - name: expand
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. You can also specify required fields in [] for each relation name.
          examples:
          - manager[first_name,last_name]
          title: Expand
        description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. You can also specify required fields in [] for each relation name.
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HrisTimeOff'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /hris/time-off:
    get:
      operationId: listTimeOff
      summary: Bindbee List Time Off
      description: Returns time-off requests and balances from the connected HRIS system.
      tags:
      - Time Off
      security:
      - apiKeyAuth: []
      parameters:
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
      - name: employee_id
        in: query
        required: false
        schema:
          type: string
        description: Filter by employee ID.
      responses:
        '200':
          description: List of time-off requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeOffResponse'
              examples:
                ListTimeOff200Example:
                  summary: Default listTimeOff 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: to-abc123
                      employee_id: emp-abc123
                      type: vacation
                      status: approved
                      start_date: '2024-07-01'
                      end_date: '2024-07-05'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    servers:
    - url: https://api.bindbee.dev/v1
      description: Bindbee Unified API
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    PaginatedResponse_HrisTimeOff_:
      properties:
        cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
          description: Cursor value to fetch next set of items
          examples:
          - MDE4YjE4ZWYtYzk5Yy03YTg2LTk5NDYtN2I3YzlkNTQzM2U1
        page_size:
          type: integer
          title: Page Size
          description: Indicates the count of items in the response
          examples:
          - 50
        items:
          items:
            $ref: '#/components/schemas/HrisTimeOff'
          type: array
          title: Items
          description: List of items in the current response
      type: object
      required:
      - cursor
      - page_size
      - items
      title: PaginatedResponse[HrisTimeOff]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ErrorResponse:
      type: object
      required:
      - detail
      properties:
        detail:
          type: string
    HrisTimeOff:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          examples:
          - 018b18ef-c487-703c-afd9-0ca478ccd9d6
        remote_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Remote Id
          description: The third-party API ID of the matching object.
          examples:
          - '123321'
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: This is the datetime that this object was last updated by Bindbee
          examples:
          - '2021-10-16T00:00:00Z'
        raw_data:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Raw Data
          description: This is the Raw data
          examples:
          - key_1: Platform dependent data 1
            key_2: Platform dependent data 2
        custom_fields:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Custom Fields
          description: The custom fields related to the model
          examples:
          - category_group: REG
            disability_type: ASBERG
            hire_date: '1991-03-16T00:00:00'
            hire_source: REFER
            nationality: USA
            original_hire_date: '1991-03-16T00:00:00'
        employee:
          anyOf:
          - {}
          - type: 'null'
          title: Employee
          description: The employee requesting time off.
          examples:
          - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        approver:
          anyOf:
          - {}
          - type: 'null'
          title: Approver
          description: The Bindbee ID of the employee with the ability to approve the time off request.
          examples:
          - 018b4bfb-6065-7f83-b11d-e85ea49e37c3
        status:
          anyOf:
          - type: string
          - type: 'null'
          enum:
          - REQUESTED
          - APPROVED
          - DECLINED
          - CANCELLED
          - DELETED
          title: Status
          description: The status of this time off request. If the value is not one of the defined enum values, the original value passed through will be returned.
          examples:
          - APPROVED
        employee_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Employee Note
          description: The employee note for this time off request.
          examples:
          - Paid paid vacation! Scuba diving in Hawaii.
        units:
          anyOf:
          - type: string
          - type: 'null'
          enum:
          - HOURS
          - DAYS
          title: Units
          description: The measurement that the third-party integration uses to count time requested. If the value is not one of the defined enum values, the original value passed through will be returned.
          examples:
          - HOURS
        amount:
          anyOf:
          - type: integer
          - type: number
          - type: 'null'
          title: Amount
          description: The time off quantity measured by the prescribed “units”.
          examples:
          - 12
        request_type:
          anyOf:
          - type: string
          - type: 'null'
          enum:
          - VACATION
          - SICK
          - PERSONAL
          - JURY_DUTY
          - VOLUNTEER
          - BEREAVEMENT
          - MATERNITY
          - ANNUAL_LEAVE
          - EMERGENCY_LEAVE
          - LEAVE_OF_ABSENCE
          - PATERNITY
          - PAID_TIME_OFF
          - LONG_TERM_DISABILITY
          - SHORT_TERM_DISABILITY
          - COMP_OFF
          - WORK_FROM_HOME
          - COMPASSIONATE
          - TIME_OFF
          - FMLA
          title: Request Type
          description: The type of time off request. If the value is not one of the defined enum values, the original value passed through will be returned.
          examples:
          - VACATION
        start_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Start Time
          description: The day and time of the start of the time requested off.
          examples:
          - '2023-04-10T00:00:00Z'
        end_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: End Time
          description: The day and time of the end of the time requested off.
          examples:
          - '2023-04-10T00:00:00Z'
      type: object
      required:
      - id
      - remote_id
      - modified_at
      - custom_fields
      - employee
      - approver
      - status
      - employee_note
      - units
      - amount
      - request_type
      - start_time
      - end_time
      title: HrisTimeOff
      description: The TimeOff object is used to represent all employees' Time Off entries.
    TimeOffRequest:
      title: Time Off Request
      description: An employee time-off request from a connected HRIS system.
      type: object
      properties:
        id:
          type: string
          description: Time-off request ID.
          example: to-abc123
        employee_id:
          type: string
          description: Employee ID.
          example: emp-abc123
        type:
          type: string
          description: Type of time off.
          enum:
          - vacation
          - sick
          - personal
          - other
          example: vacation
        status:
          type: string
          description: Approval status.
          enum:
          - pending
          - approved
          - rejected
          example: approved
        start_date:
          type: string
          format: date
          description: Time-off start date.
          example: '2024-07-01'
        end_date:
          type: string
          format: date
          description: Time-off end date.
          example: '2024-07-05'
    TimeOffResponse:
      title: Time Off Response
      description: List of time-off requests.
      type: object
      properties:
        data:
          type: array
          description: Array of time-off requests.
          items:
            $ref: '#/components/schemas/TimeOffRequest'
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Bearer API key in Authorization header. Also pass x-connector-token for the specific integration.
x-refined-from:
- bindbee-openapi.json
- bindbee-api.yaml