Bindbee Time Off API
Employee time-off requests and accrued balances from connected HRIS systems.
Employee time-off requests and accrued balances from connected HRIS systems.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/bindbee-time-off-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.1.0
info:
title: Bindbee Time Off API
description: Employee time-off requests from connected HRIS systems Operations copied verbatim from the Bindbee unified
API contract published at https://api.bindbee.dev/openapi.json.
version: 0.1.0
contact:
name: Bindbee Support
email: support@bindbee.dev
url: https://docs.bindbee.dev/
servers:
- url: https://api.bindbee.dev
description: Bindbee global API
- url: https://api-eu.bindbee.dev
description: Bindbee EU API
tags:
- name: Time Off
description: Employee time-off requests from connected HRIS systems
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'
components:
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
schemas:
ErrorResponse:
type: object
required:
- detail
properties:
detail:
type: string
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
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.
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]
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
x-provenance:
method: derived
source: openapi/_original/bindbee-openapi.json
source_url: https://api.bindbee.dev/openapi.json
generated: '2026-09-04'
note: Operations, parameters, responses and schemas copied verbatim from the provider-published OpenAPI at https://api.bindbee.dev/openapi.json
(fetched 2026-09-04, HTTP 200). Only the tag filter, the info block and the servers[] block were authored here; servers[]
are the two hosts the provider publishes on https://docs.bindbee.dev/api-reference/basics/pagination.