BambooHR API Integration

These are the list of integration use cases supported by Knit for BambooHR API as part of the HRIS category


Add Employee to BambooHR

  • ID: create_employee
  • Operation: write
  • Entities:
  • Summary: The Add Employee API allows you to add a new employee to the BambooHR system. The API requires at least a first name and a last name for the new employee. The response includes a Location header with the URL of the newly created employee. If the employee is added to a pay schedule synced with Trax Payroll, additional fields are required. The API returns a 201 status code on success, and various error codes for invalid requests or permissions issues.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add A Time Off Request

  • ID: create_leave_request
  • Operation: write
  • Entities:
  • Summary: The 'Add A Time Off Request' API allows users to create a time off request for an employee in the BambooHR system. The request is made using the PUT method to the specified endpoint, which includes employee ID as path parameters. The request body can include details such as the status of the request, start and end dates, time off type ID, amount of time off, notes from the employee and manager, specific dates and amounts, and a previous request ID if modifying an existing request. The API returns an empty response with a 201 status code upon successful creation of the request. Possible error responses include 400 for malformed requests, 403 for forbidden changes to past approved requests, and 404 if the employee is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete An Hour Record

  • ID: delete_an_hour_record
  • Operation: write
  • Entities: hour record, time tracking
  • Summary: The 'Delete An Hour Record' API allows users to delete a specific hour record from BambooHR's time tracking system. The API requires two path parameters: 'companyDomain', which is the subdomain used to access BambooHR, and 'id', which is the unique identifier for the time tracking record to be deleted. Upon successful deletion, the API returns a response with a status of 'success' and a message indicating that the record has been removed. If the time tracking ID cannot be found, a 400 error code is returned.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Company File

  • ID: delete_company_file
  • Operation: write
  • Entities: company, file
  • Summary: The Delete Company File API allows users to delete a specific company file from BambooHR. The API requires two path parameters: 'companyDomain', which is the subdomain used to access BambooHR, and 'fileId', which is the ID of the company file to be deleted. Upon successful deletion, the API returns a 200 status code with a message indicating the file was deleted. If the user does not have permission to delete the file, a 403 status code is returned. If the file is not found, a 404 status code is returned.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Employee File

  • ID: delete_employee_file
  • Operation: write
  • Entities: file, employee
  • Summary: The 'Delete Employee File' API allows users to delete a specific file associated with an employee in BambooHR. The API requires three path parameters: 'companyDomain', which is the subdomain used to access BambooHR; 'id', which is the employee ID (with a special ID of zero to use the employee ID associated with the API key); and 'fileId', which is the ID of the employee file to be deleted. The API returns a 200 response code if the file is successfully deleted, a 403 response code if the user does not have permission to access the employee or their files, and a 404 response code if the file is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Employee Training Record

  • ID: delete_employee_training_record
  • Operation: write
  • Entities: company domain, training record, employee
  • Summary: The Delete Employee Training Record API allows you to delete an existing employee training record in BambooHR. The API requires the companyDomain and employeeTrainingRecordId as path parameters. The companyDomain is the subdomain used to access BambooHR, and the employeeTrainingRecordId is the ID of the training record to delete. The API returns various HTTP status codes to indicate the result of the operation, including 200 for success, 401 for unauthorized access, 403 for insufficient permissions, 404 for a bad request URL or non-existent training record, and 405 if the training record cannot be deleted.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Goal

  • ID: delete_goal
  • Operation: write
  • Entities: company domain, employee, goal
  • Summary: The Delete Goal API allows you to delete a specific goal associated with an employee in BambooHR. The API requires three path parameters: companyDomain, employeeId, and goalId. The companyDomain is the subdomain used to access BambooHR, employeeId is the ID of the employee with whom the goal is associated, and goalId is the ID of the goal to be deleted. Upon successful deletion, the API returns a 204 No Content response. If the request is invalid, it may return a 400 error for invalid JSON, a 403 error for insufficient permissions or if the goal is not editable, or a 404 error if the specified goalId is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Goal Comment

  • ID: delete_goal_comment
  • Operation: write
  • Entities: employee, comment, goal
  • Summary: The 'Delete Goal Comment' API allows users to delete a specific comment associated with a goal for a particular employee in BambooHR. The API requires the company domain, employee ID, goal ID, and comment ID as path parameters. Upon successful deletion, it returns a 204 No Content response. If the request is invalid, it may return a 400 error. If the goal is not editable or there are insufficient permissions, a 403 error is returned. If the specified goal is not found, a 404 error is returned.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Deletes A Table Row

  • ID: delete_table_row
  • Operation: write
  • Entities: row, employee, table
  • Summary: The 'Deletes A Table Row' API allows users to delete a specific row from a table associated with an employee in BambooHR. The API requires the company domain, employee ID, table name, and row ID as path parameters. The request should include an 'accept' header specifying 'application/json'. Upon successful deletion, the API returns a response with a 'success' field set to true. If the row is not found, the 'success' field is false. The API may return various response codes, including 200 for success, 400 for a bad request, 401 for unauthorized access, and 403 for permission denied.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Training Category

  • ID: delete_training_category
  • Operation: write
  • Entities: training category
  • Summary: The 'Delete Training Category' API allows users to delete an existing training category in BambooHR. The API requires the 'companyDomain' and 'trainingCategoryId' as path parameters. The 'companyDomain' is the subdomain used to access BambooHR, and 'trainingCategoryId' is the ID of the training category to be deleted. The API returns various HTTP status codes to indicate the result of the operation, including 200 for success, 401 for unauthorized access, 403 for insufficient permissions, 404 for a bad request or non-existent category, and 500 for internal server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Training Type

  • ID: delete_training_type
  • Operation: write
  • Entities: training type, employee training, api key
  • Summary: The Delete Training Type API allows the user to delete an existing training type in BambooHR. The API requires the companyDomain and trainingTypeId as path parameters. The companyDomain is the subdomain used to access BambooHR, and trainingTypeId is the ID of the training type to be deleted. The API key owner must have access to training settings, and all employee trainings for this type must be removed before making this request. The API returns various response codes indicating the success or failure of the operation, including 200 for success, 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, 404 for non-existent training type, and 405 if the training type could not be deleted.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Webhook

  • ID: delete_webhook
  • Operation: write
  • Entities: company, webhook, user
  • Summary: The Delete Webhook API allows users to delete a specific webhook associated with their User API key in BambooHR. The API requires the company domain and the webhook ID as path parameters. Upon successful deletion, a 200 status code is returned. If the user API key is invalid, a 401 status code is returned. If the user does not have permission to delete the webhook, a 403 status code is returned. If the webhook does not exist, a 404 status code is returned. In case of an internal error, a 500 status code is returned. The response body contains error messages in case of failure.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get A List Of Fields

  • ID: get_a_list_of_fields
  • Operation: read
  • Entities: company domain, account, field
  • Summary: The 'Get A List Of Fields' API endpoint allows users to retrieve a list of fields available in a BambooHR account. The endpoint requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. The request can specify the 'Accept' header to determine the response format, either JSON or XML. The response includes an array of field objects, each containing an 'id', 'name', 'type', and optionally an 'alias'. This API is useful for discovering the fields available in a BambooHR account.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get A List Of Tabular Fields

  • ID: get_a_list_of_tabular_fields
  • Operation: read
  • Entities: company domain, reporting to, job information date, job title, location, field, division, table
  • Summary: The 'Get A List Of Tabular Fields' API endpoint allows users to retrieve a list of table fields available in their BambooHR account. The endpoint requires a path parameter 'companyDomain', which is the subdomain used to access BambooHR. The request can specify the 'Accept' header to indicate the desired response format, either JSON or XML. The response includes an array of tables, each with an alias and a list of fields, where each field has an ID, name, alias, and type. This API is useful for discovering the structure and available fields in BambooHR tables.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get A List Of Users

  • ID: get_a_list_of_users
  • Operation: read
  • Entities: email, last login, user, employee, status
  • Summary: The 'Get A List Of Users' API retrieves a list of users from the BambooHR system for a specified company domain. The API requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. The response includes user details such as 'id', 'employeeId' (if linked), 'firstName', 'lastName', 'email', 'status', and 'lastLogin' date/time formatted in ISO 8601. The API returns a 200 response code upon success.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get A List Of Who's Out

  • ID: get_a_list_of_whos_out
  • Operation: read
  • Entities: time off, holiday, employee
  • Summary: The 'Get A List Of Who's Out' API endpoint returns a list of employees who will be out and company holidays for a specified period. The list is sorted by date. The endpoint requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. Optional query parameters 'start' and 'end' can be used to specify the date range, defaulting to the current date and 14 days from the start date, respectively. The response includes details such as the employee's name, the type of entry (time off or holiday), and the start and end dates. The API can return data in JSON or XML format, as specified by the 'Accept' header.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Aggregate Goal Info

  • ID: get_aggregate_goal_info
  • Operation: read
  • Entities: employee, comment, goal
  • Summary: The Get Aggregate Goal Info API provides detailed information about a specific goal, including its title, description, completion status, and associated milestones. It also includes comments on the goal and a list of employees who are either shared with the goal or have commented on it. The API requires the company domain, employee ID, and goal ID as path parameters. The response includes detailed goal information, actions that can be performed on the goal, alignment options, comments, and associated persons.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Alignable Goal Options

  • ID: get_alignable_goal_options
  • Operation: read
  • Entities: company domain, employee, goal
  • Summary: The Alignable Goal Options API allows you to retrieve a list of goals that are available as alignment options for a specific employee in BambooHR. The API requires the company domain and employee ID as path parameters. The response includes a JSON document with a list of goals, each having an ID and title. The API can also return goals that are already aligned with a specified goal if applicable.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get All Aggregate Goal Info

  • ID: get_all_aggregate_goal_info
  • Operation: read
  • Entities: employee, comment, goal
  • Summary: The 'Get All Aggregate Goal Info' API provides a comprehensive list of all goals, type counts, goal comment counts, and employees shared with goals for a specified employee. It requires the 'companyDomain' and 'employeeId' as path parameters. The response includes details such as whether goals can be aligned or created, filters applied to the goals, a list of goals with their details, persons related to the goals, and comments on the goals. This version of the endpoint does not return goals with milestones, as milestone functionality begins in version 1.2.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get All Employee Dependents

  • ID: get_all_employee_dependents
  • Operation: read
  • Entities: company domain, employee dependent, employee
  • Summary: The Get All Employee Dependents API retrieves all dependents associated with a specific employee in the BambooHR system. The API requires the companyDomain as a path parameter to identify the specific BambooHR subdomain and the employeeid as a query parameter to specify the employee whose dependents are to be retrieved. The response includes detailed information about each dependent, such as their name, relationship to the employee, gender, masked SSN, date of birth, address, and citizenship status. The Accept header can be used to specify the response format as either JSON or XML.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Gets All Updated Employee Ids

  • ID: get_all_updated_employee_ids
  • Operation: read
  • Entities: job info, employee, employment status
  • Summary: The 'Gets All Updated Employee Ids' API allows for efficient syncing of employee data by providing a list of employees that have changed since a specified timestamp. The API requires a 'companyDomain' path parameter and a 'since' query parameter, which is a URL encoded ISO 8601 timestamp. An optional 'type' query parameter can be used to filter the results by the type of change ('inserted', 'updated', 'deleted'). The response includes a 'latest' timestamp indicating the most recent change and a collection of employee records with their 'id', 'action', and 'lastChanged' attributes. This API is useful for tracking changes in employee records, including changes to employment status, job info, or compensation tables.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Gets All Updated Employee Table Data

  • ID: get_all_updated_employee_table_data
  • Operation: read
  • Entities: field, employee, table
  • Summary: This API retrieves all updated employee table data from BambooHR. It is designed to optimize data retrieval by only returning data for employees whose records have changed since a specified timestamp. The API requires the company domain and table name as path parameters, and a 'since' timestamp as a query parameter. The response includes the table name and a dictionary of employees with their updated data, including details such as date, location, department, division, job title, and the person they report to.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get an Employee File

  • ID: get_an_employee_file
  • Operation: read
  • Entities: file, employee
  • Summary: The 'Get an Employee File' API retrieves a specific file associated with an employee in BambooHR. It requires the company domain, employee ID, and file ID as path parameters. The employee ID can be set to zero to use the ID associated with the API key. The API returns the content of the employee file if successful. Response codes include 200 for success, 403 if the user lacks permission, and 404 if the file is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get An Employee Photo

  • ID: get_an_employee_photo
  • Operation: read
  • Entities: company domain, photo, employee
  • Summary: The 'Get An Employee Photo' API retrieves the binary data for an employee's photo from BambooHR. It requires three path parameters: 'companyDomain', which is the subdomain used to access BambooHR; 'employeeId', which is the ID of the employee whose photo is being retrieved; and 'size', which specifies the desired photo size. The available sizes are 'original', 'large', 'medium', 'small', 'xs', and 'tiny', each with specific dimensions. The response includes the photo in JPEG format, with a content type of 'image/jpeg'.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get an Hour Record

  • ID: get_an_hour_record
  • Operation: read
  • Entities: department, time tracking, employee
  • Summary: The 'Get an Hour Record' API retrieves a specific hour record from BambooHR using the provided company domain and time tracking ID. The API requires two path parameters: 'companyDomain', which is the subdomain used to access BambooHR, and 'id', which is the time tracking ID of the record. The response includes details such as the time tracking ID, employee ID, division ID, department ID, job title ID, pay code, date of hours worked, type, pay rate, rate type, hours worked, adjusted hours, and additional job data. The API returns a JSON document with the requested information upon a successful request.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Assign Time Off Policies For An Employee

  • ID: get_assign_time_off_policies_for_an_employee
  • Operation: read
  • Entities: company domain, employee, time off policy
  • Summary: The 'Assign Time Off Policies For An Employee' API allows you to retrieve the time off policies assigned to a specific employee in BambooHR. The API requires the 'companyDomain' and 'employeeId' as path parameters. The response includes an array of objects, each containing 'timeOffPolicyId', 'timeOffTypeId', and 'accrualStartDate'. The 'accrualStartDate' will be '0000-00-00' for Manual and Discretionary policies.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Available Goal Sharing Options

  • ID: get_available_goal_sharing_options
  • Operation: read
  • Entities: performance, employee, goal
  • Summary: The 'Available Goal Sharing Options' API provides a list of employees with whom the specified employee's goals may be shared. It requires the 'companyDomain' and 'employeeId' as path parameters. Optional query parameters include 'search' to filter employees by name, ID, or email, and 'limit' to restrict the number of results. The response includes a list of employees with their IDs, names, and photo URLs.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Benefit Deduction Types

  • ID: get_benefit_deduction_types
  • Operation: read
  • Entities: benefit type, company, benefit deduction type
  • Summary: The 'Get Benefit Deduction Types' API retrieves a list of benefit deduction types available in the BambooHR system. It requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. The response is an array of objects, each containing the 'id', 'deductionTypeName', and 'allowableBenefitTypes' for each deduction type. This API is useful for understanding the types of deductions that can be applied to employee benefits within the BambooHR platform.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Can Create A Goal

  • ID: get_can_create_a_goal
  • Operation: read
  • Entities: permission, employee, goal
  • Summary: The 'Can Create A Goal' API determines if the API user has permission to create a goal for a specific employee. It requires the 'companyDomain' and 'employeeId' as path parameters. The 'companyDomain' is the subdomain used to access BambooHR, and 'employeeId' is the ID of the employee for whom the goal is being checked. The API returns a JSON response with a boolean field 'canCreateGoals' indicating whether the user has the necessary permissions. A successful response is indicated by a 200 status code.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Company File

  • ID: get_company_file
  • Operation: read
  • Entities: company, file
  • Summary: The 'Get Company File' API retrieves a specific company file from BambooHR using the GET method. It requires two path parameters: 'companyDomain', which is the subdomain used to access BambooHR, and 'fileId', which is the ID of the company file being retrieved. If the request is successful, a 200 response code is returned along with the company file data. If the API user does not have permission to see the company files, a 403 response code is returned. If the file is not found, a 404 response code is returned.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Company Report

  • ID: get_company_report
  • Operation: read
  • Entities: company, report, employee
  • Summary: The Get Company Report API allows users to request existing custom company reports from the My Reports or Manage Reports sections in the BambooHR Reports tab. Users must provide the company domain and report ID as path parameters. The API supports various output formats such as CSV, PDF, XLS, XML, and JSON, specified via the 'format' query parameter. Optional query parameters include 'fd' for duplicate field filtering and 'onlyCurrent' for including future dated values. The response includes a list of fields and employee records, with field names defined in the 'fields' section. The API returns a 200 status code for successful requests and a 404 status code if the report number does not exist.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Details For List Fields

  • ID: get_details_for_list_fields
  • Operation: read
  • Entities: list, field, option
  • Summary: This API endpoint retrieves details for all list fields available in BambooHR. It provides information such as the field ID, alias, whether the list is manageable or can have multiple values, and the name of the field. Each field contains options, which include details like option ID, archived status, creation date, and name. The 'companyDomain' path parameter is required to specify the subdomain used to access BambooHR. The response includes a list of fields with their respective options, and fields that can be edited will have the 'manageable' attribute set to 'yes'.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Employee Files and Categories

  • ID: get_documents_for_employee
  • Operation: read
  • Entities:
  • Summary: The List Employee Files and Categories API allows users to retrieve a list of files and categories associated with a specific employee in BambooHR. The API requires employee ID as path parameters. The response includes the employee ID and a list of categories, each containing details such as category ID, name, and permissions (e.g., canRenameCategory, canDeleteCategory). Each category may also include a list of files with details such as file ID, name, original file name, size, creation date, creator, and sharing permissions. The API returns a 200 status code for a successful request, a 403 status code if the user lacks permission, and a 404 status code if no files are found for the employee.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Employee Data

  • ID: get_employee_data
  • Operation: read
  • Entities: company domain, field, employee
  • Summary: The Get Employee Data API retrieves employee data by specifying a set of fields. It is suitable for obtaining basic employee information, including current values for fields that are part of a historical table, such as job title or compensation information. The API requires the company domain and employee ID as path parameters, and a list of fields as a query parameter. The response includes the employee's ID, first name, and last name. The API returns a 200 status code for a successful request, 403 if the API user does not have permission to see the requested employee, and 404 if the employee does not exist.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Employee Dependent

  • ID: get_employee_dependent
  • Operation: read
  • Entities: address, employee dependent, employee
  • Summary: The Get Employee Dependent API retrieves information about a specific employee's dependent from BambooHR. It requires the company domain and the dependent ID as path parameters. The API can return data in either JSON or XML format, specified in the 'Accept' header. The response includes details such as the dependent's name, relationship to the employee, gender, masked SSN, date of birth, address, and citizenship status.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Employee Data

  • ID: get_employee_details_by_employee_identifier
  • Operation: read
  • Entities:
  • Summary: The Get Employee Data API retrieves employee data by specifying a set of fields. It is suitable for obtaining basic employee information, including current values for fields that are part of a historical table, such as job title or compensation information. The API requires employee ID as path parameters, and a list of fields as a query parameter. The response includes the employee's ID, first name, and last name. The API returns a 200 status code for a successful request, 403 if the API user does not have permission to see the requested employee, and 404 if the employee does not exist.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Employee Projects

  • ID: get_employee_projects
  • Operation: read
  • Entities: project, employee, task
  • Summary: The Get Employee Projects API retrieves the list of projects that a specified employee can track time for. It requires the company domain and employee ID as path parameters. The response includes a list of projects, each with an ID, name, and associated tasks. The API returns a 200 status code for success, while 400, 401, and 403 status codes indicate errors such as bad request parameters, unauthorized access, or insufficient permissions.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Estimate Future Time Off Balances

  • ID: get_estimate_future_time_off_balances
  • Operation: read
  • Entities: time off, company, employee
  • Summary: The 'Estimate Future Time Off Balances' API endpoint calculates the anticipated time off balance for an employee on a specified future date. It sums future time off accruals, scheduled time off, and carry-over events. The API requires the company domain and employee ID as path parameters, and the end date for the balance estimation as a query parameter. The response includes an array of time off types with details such as the type, name, units, balance, policy type, used year-to-date, and the end date for the estimation. The results are limited to time off types that the API user is authorized to view.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Goal Comments

  • ID: get_goal_comments
  • Operation: read
  • Entities: employee, comment, goal
  • Summary: The 'Get Goal Comments' API retrieves comments for a specific goal associated with an employee in BambooHR. It requires the company domain, employee ID, and goal ID as path parameters. The response is a JSON document containing a list of comments, each with details such as the comment ID, author user ID, creation timestamp, text content, and permissions to edit or delete the comment.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Goal Status Counts

  • ID: get_goal_status_counts
  • Operation: read
  • Entities: status, employee, goal
  • Summary: The 'Get Goal Status Counts' API retrieves the number of goals per status for a specified employee in BambooHR. The API requires the 'companyDomain' and 'employeeId' as path parameters. The response includes a list of goal statuses with their respective counts. The API returns a JSON document with the status ID, name, and count of goals in each status.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Goal Status Counts Version 1.1

  • ID: get_goal_status_counts_version_1_1
  • Operation: read
  • Entities: status, filter, goal
  • Summary: The 'Get Goal Status Counts Version 1.1' API retrieves the number of goals per status for a specified employee. It requires the company domain and employee ID as path parameters. The response includes a list of goal status filters, each with a count of goals and available actions such as closing, editing, reopening, and sharing goals. This version also includes goals in the closed filter and provides filter actions for each filter.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Goals for an Employee

  • ID: get_goals_for_an_employee
  • Operation: read
  • Entities: milestone, employee, goal
  • Summary: The Get Goals for an Employee API retrieves the goals assigned to a specific employee in the BambooHR system. It requires the company domain and employee ID as path parameters. An optional query parameter 'filter' can be used to filter goals by their state. The response includes a list of goals with details such as title, description, completion percentage, due date, and associated milestones. The API returns a JSON document with the requested information upon a successful request.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Time Off Requests

  • ID: get_leave_requests
  • Operation: read
  • Entities:
  • Summary: The 'Get Time Off Requests' API allows users to retrieve time off requests for employees within a specified company domain. The API requires 'start' and 'end' query parameters to specify the date range for the time off requests. Optional query parameters include 'id', 'action', 'employeeId', 'type', and 'status' to filter the requests further. The response includes details such as the request ID, employee ID, name, status, start and end dates, type, amount, actions, dates, and notes. The API response is limited to the employees and time off types that the API key owner has view access to.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Company Files And Categories

  • ID: get_list_company_files_and_categories
  • Operation: read
  • Entities: category, company, file
  • Summary: The 'List Company Files And Categories' API allows users to retrieve a list of company files and their associated categories from BambooHR. The API requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. The response includes a list of categories, each containing details such as category ID, name, and whether files can be uploaded. Each category also contains a list of files with details like file ID, name, original file name, size, creation date, creator, and permissions for renaming and deleting. The API returns a 200 status code for a successful request, a 403 status code if the user lacks permission, and a 404 status code if no files or categories are found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Employee Files and Categories

  • ID: get_list_employee_files_and_categories
  • Operation: read
  • Entities: category, file, employee
  • Summary: The List Employee Files and Categories API allows users to retrieve a list of files and categories associated with a specific employee in BambooHR. The API requires the companyDomain and employee ID as path parameters. The response includes the employee ID and a list of categories, each containing details such as category ID, name, and permissions (e.g., canRenameCategory, canDeleteCategory). Each category may also include a list of files with details such as file ID, name, original file name, size, creation date, creator, and sharing permissions. The API returns a 200 status code for a successful request, a 403 status code if the user lacks permission, and a 404 status code if no files are found for the employee.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Employee Trainings

  • ID: get_list_employee_trainings
  • Operation: read
  • Entities: training, training type, employee
  • Summary: The 'List Employee Trainings' API retrieves all training records for a specified employee. The API requires the 'companyDomain' and 'employeeId' as path parameters. An optional query parameter 'trainingTypeId' can be used to filter the trainings by type. The API key owner must have permission to view the employee's training records. The response includes details such as training ID, employee ID, training type ID, completion date, notes, credits, and cost. The API returns a 200 status code for success, with other codes indicating various errors such as bad request, unauthorized access, insufficient permissions, or incorrect URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Gets List Of Webhooks For The User API Key

  • ID: get_list_of_webhooks_for_user_api_key
  • Operation: read
  • Entities: company, webhook, user
  • Summary: This API retrieves a list of webhooks associated with the user's API key for a specified company domain in BambooHR. The request requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. The response includes a list of webhooks with details such as 'id', 'name', 'created', 'lastSent', and 'url'. If the API key is invalid, a 401 error is returned. A 500 error indicates an internal error with a message to try again later.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Time Off Policies For Employee

  • ID: get_list_time_off_policies_for_employee
  • Operation: read
  • Entities: time off policy, time off type, employee
  • Summary: The 'List Time Off Policies For Employee' API retrieves the time off policies associated with a specific employee in BambooHR. It requires the company domain and employee ID as path parameters. The response is an array of objects, each containing the time off policy ID, time off type ID, and the accrual start date. For manual and discretionary policies, the accrual start date will be '0000-00-00'.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Training Categories

  • ID: get_list_training_categories
  • Operation: read
  • Entities: category, company, training
  • Summary: The 'List Training Categories' API retrieves a list of training categories available in BambooHR. The API requires a GET request to the specified endpoint with the companyDomain as a path parameter. The owner of the API key must have access to training settings. The response includes a JSON object where each key is a unique identifier for a training category, and the value is an object containing the category's ID and name. The API returns various HTTP status codes to indicate success or specific errors, such as 200 for success, 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, and 404 for a bad request URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List Training Types

  • ID: get_list_training_types
  • Operation: read
  • Entities: company domain, training type
  • Summary: The List Training Types API retrieves a list of training types available in the BambooHR system. The API requires the companyDomain as a path parameter, which is the subdomain used to access BambooHR. The API key owner must have access to training settings. The response includes details about each training type, such as its ID, name, whether it is renewable, frequency of renewal, due date from hire date, whether it is required, category, link URL, description, and whether employees can mark it as complete. The API returns various HTTP status codes to indicate success or specific errors, such as 200 for success, 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, and 404 for a bad request URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Monitor Fields

  • ID: get_monitor_fields
  • Operation: read
  • Entities: webhook, field, log
  • Summary: The Get Monitor Fields API retrieves a list of fields that webhooks can monitor in BambooHR. It requires the companyDomain as a path parameter, which is the subdomain used to access BambooHR. The API responds with a list of fields, each containing an id, name, and alias. If an error occurs, such as an invalid API key or an internal error, appropriate error messages are returned.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Gets Table Rows For A Given Employee And Table Combination

  • ID: get_table_rows_for_a_given_employee_and_table_combination
  • Operation: read
  • Entities: row, employee, table
  • Summary: This API retrieves all the table rows for a specified employee and table combination from BambooHR. The endpoint requires the company domain, employee ID, and table name as path parameters. The employee ID can be set to 'all' to retrieve data for all employees, including inactive and terminated ones, provided the user has the necessary permissions. The response includes details such as row ID, employee ID, start date, rate, type, exemption status, reason, comment, payment period, pay schedule, and overtime rate.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Time Off Policies

  • ID: get_time_off_policies
  • Operation: read
  • Entities: company domain, time off type, time off policy
  • Summary: The 'Get Time Off Policies' API endpoint retrieves a list of time off policies for a specified company domain in BambooHR. The request requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. The response is an array of time off policies, each containing details such as 'id', 'timeOffTypeId', 'name', 'effectiveDate', and 'type'. The 'Accept' header can be used to specify the desired response format, either JSON or XML.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Time Off Requests

  • ID: get_time_off_requests
  • Operation: read
  • Entities: status, time off request, employee
  • Summary: The 'Get Time Off Requests' API allows users to retrieve time off requests for employees within a specified company domain. The API requires the 'companyDomain' path parameter and 'start' and 'end' query parameters to specify the date range for the time off requests. Optional query parameters include 'id', 'action', 'employeeId', 'type', and 'status' to filter the requests further. The response includes details such as the request ID, employee ID, name, status, start and end dates, type, amount, actions, dates, and notes. The API response is limited to the employees and time off types that the API key owner has view access to.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Time Off Types

  • ID: get_time_off_types
  • Operation: read
  • Entities: company domain, default hour, time off type
  • Summary: The 'Get Time Off Types' API endpoint retrieves a list of time off types available in the BambooHR system for a specified company domain. The endpoint requires the 'companyDomain' path parameter, which is the subdomain used to access BambooHR. Optionally, a 'mode' query parameter can be set to 'request' to get a list of all time off types with which the user can create a time off request. The response includes an array of time off types, each with an ID, name, units, color, and icon, as well as default hours for each day of the week. The API can return data in either JSON or XML format, as specified by the 'Accept' header.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Timesheet Entries

  • ID: get_timesheet_entries
  • Operation: read
  • Entities: project, timesheet entry, task
  • Summary: The Get Timesheet Entries API retrieves all timesheet entries for a specified period of time. It is currently in public beta and subject to changes. The API requires the company domain as a path parameter and the start and end dates as query parameters, with an optional list of employee IDs. The response includes details of each timesheet entry such as the entry ID, employee ID, type, date, start and end times, timezone, hours, notes, project and task information, and approval status. The API is limited to data from the last 365 days, and the user must have permission to view the requested timesheets.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Timesheet Entries

  • ID: get_timesheets
  • Operation: read
  • Entities:
  • Summary: The Get Timesheet Entries API retrieves all timesheet entries for a specified period of time. It is currently in public beta and subject to changes. The API requires the start and end dates as query parameters, with an optional list of employee IDs. The response includes details of each timesheet entry such as the entry ID, employee ID, type, date, start and end times, timezone, hours, notes, project and task information, and approval status. The API is limited to data from the last 365 days, and the user must have permission to view the requested timesheets.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Webhook

  • ID: get_webhook
  • Operation: read
  • Entities: company domain, user API key, webhook
  • Summary: The Get Webhook API retrieves the details of a specific webhook associated with a user API key in BambooHR. It requires the companyDomain and the webhook ID as path parameters. The response includes details such as the webhook's ID, name, creation date, last sent date, monitored fields, post fields, URL, format, frequency, limit, and whether the company domain is included. The API returns various response codes: 200 for a successful retrieval, 401 for an invalid API key, 403 for insufficient permissions, 404 if the webhook does not exist, and 500 for internal errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Webhook Logs

  • ID: get_webhook_logs
  • Operation: read
  • Entities: webhook, user, log
  • Summary: The Get Webhook Logs API allows users to retrieve logs for a specific webhook ID associated with their BambooHR account. The API requires the company domain and webhook ID as path parameters. The response includes details such as the webhook ID, URL, last attempted and successful times, failure count, status, and associated employee IDs. Possible response codes include 200 for a successful retrieval, 403 for access denial, 404 if the webhook does not exist, and 500 for internal errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

List all employees

  • ID: list_all_employees
  • Operation: read
  • Entities:
  • Summary: This API fetches the list of employees and their details in the app. The API endpoint requires supports query parameters for specifying the report format and whether to include only current employees. The request body can include a title, filters, and a list of fields. The response includes the report title, fields, and a list of employees with their details.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add An Employee Dependent

  • ID: post_add_an_employee_dependent
  • Operation: write
  • Entities: company domain, employee dependent
  • Summary: The 'Add An Employee Dependent' API allows users to add a dependent for an employee in the BambooHR system. The API requires a POST request to the specified endpoint with the company domain as a path parameter. The request body must include details about the dependent such as employeeId, firstName, lastName, dateOfBirth, and address information. Optional fields include middleName, relationship, gender, ssn, state, country, isUsCitizen, and isStudent. The response will include the details of the added dependent, including a masked SSN. The API returns different status codes based on the outcome, such as 200 for success, 400 for invalid JSON, 403 for unauthorized access, and 500 for server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add An Hour Record

  • ID: post_add_an_hour_record
  • Operation: write
  • Entities: department, time tracking, employee
  • Summary: The 'Add An Hour Record' API allows users to add a record of hours worked for an employee in the BambooHR system. The API requires a POST request to the specified endpoint with the company domain as a path parameter. The request body must include the 'timeTrackingId', 'employeeId', 'dateHoursWorked', 'rateType', and 'hoursWorked' as required fields. Optional fields include 'divisionId', 'departmentId', 'jobTitleId', 'payCode', 'payRate', 'jobCode', and 'jobData'. The response returns the 'timeTrackingId' of the newly created record. If any required fields are missing or invalid, a 400 error is returned.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Company File Category

  • ID: post_add_company_file_category
  • Operation: write
  • Entities: category, company, file
  • Summary: The 'Add Company File Category' API allows users to add a new file category to a company's BambooHR account. The request requires a POST method to the specified endpoint with the company domain as a path parameter. The request body must be a JSON array containing the name of the new category. The content-type header must be set to application/json. A successful request returns a 201 status code with no response body. If the JSON is invalid or no category name is provided, a 400 status code is returned. A 403 status code indicates insufficient permissions, and a 500 status code indicates a server error.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Employee

  • ID: post_add_employee
  • Operation: write
  • Entities: companyDomain, employee, pay schedule
  • Summary: The Add Employee API allows you to add a new employee to the BambooHR system. The API requires at least a first name and a last name for the new employee. The companyDomain path parameter is required to specify the subdomain of the BambooHR account. The response includes a Location header with the URL of the newly created employee. If the employee is added to a pay schedule synced with Trax Payroll, additional fields are required. The API returns a 201 status code on success, and various error codes for invalid requests or permissions issues.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Employee File Category

  • ID: post_add_employee_file_category
  • Operation: write
  • Entities: category, file, employee
  • Summary: The Add Employee File Category API allows users to add a new category for employee files in BambooHR. The API requires a POST request to the specified endpoint with the companyDomain as a path parameter. The request body should contain an array with the name of the new category. The content-type header must be set to application/json. A successful request returns a 201 status code indicating the category was created. Possible error responses include a 400 status code for invalid XML or missing category name, a 403 status code for insufficient permissions, and a 500 status code for server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add New Employee Training Record

  • ID: post_add_new_employee_training_record
  • Operation: write
  • Entities: training, record, employee
  • Summary: The 'Add New Employee Training Record' API allows users to add a new training record for a specific employee in BambooHR. The API requires the company domain and employee ID as path parameters. The request body must include the completion date of the training in yyyy-mm-dd format, and may optionally include details such as cost, instructor, hours, credits, notes, and training type ID. The API returns a response with the details of the created training record, including the ID, employee ID, completion date, and other optional fields. The API requires appropriate permissions to add training records for the specified employee.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add or Edit Timesheet Clock Entries

  • ID: post_add_or_edit_timesheet_clock_entries
  • Operation: write
  • Entities: clock entry, timesheet, employee
  • Summary: This API allows users to add or edit timesheet clock entries for employees in BambooHR. The request requires a companyDomain path parameter to specify the subdomain of the BambooHR account. The request body must include an array of entries, each containing details such as employeeId, date, start and end times, and optional notes, projectId, and taskId. The response returns an array of clock entry objects with details like id, employeeId, type, date, start and end times, timezone, hours worked, and project and task information. The API supports various response codes indicating success, bad request, unauthorized access, forbidden access, unacceptable request, conflict, and internal server error.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add or Edit Timesheet Hour Entries

  • ID: post_add_or_edit_timesheet_hour_entries
  • Operation: write
  • Entities: timesheet, employee, hour entry
  • Summary: This API allows users to add or edit timesheet hour entries for employees in BambooHR. The request requires a path parameter 'companyDomain' to specify the subdomain of the BambooHR account. The request body must include an array of 'hours' objects, each containing 'employeeId', 'date', 'hours', and optionally 'note', 'projectId', and 'taskId'. The response returns an array of hour entry objects with details such as 'id', 'employeeId', 'type', 'date', 'hours', 'note', and 'projectInfo'. The API supports various response codes indicating success, bad request, unauthorized access, forbidden access, conflict, and server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Timesheet Clock-in Entry

  • ID: post_add_timesheet_clock_in_entry
  • Operation: write
  • Entities: project, time tracking, employee
  • Summary: The 'Add Timesheet Clock-in Entry' API allows you to clock in an employee by creating a timesheet entry. The API requires the company domain and employee ID as path parameters. The request body can optionally include a project ID, task ID, and a note. The project ID is required if a task ID is specified. The response includes details of the clock-in entry, such as the entry ID, employee ID, date, start time, and associated project and task information. The API returns various status codes to indicate success or specific errors, such as unauthorized access or bad request parameters.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Timesheet Clock-out Entry

  • ID: post_add_timesheet_clock_out_entry
  • Operation: write
  • Entities: project, time tracking, employee
  • Summary: The 'Add Timesheet Clock-out Entry' API allows you to clock out an employee by sending a POST request to the specified endpoint. The request requires path parameters 'companyDomain' and 'employeeId' to identify the company and employee respectively. The request header must include 'accept: application/json'. Upon successful execution, the API returns a JSON response containing details of the clock-out entry, including the entry ID, employee ID, type, date, start and end times, timezone, hours worked, a note, and project information. The API handles various response codes to indicate success or specific errors such as bad request, unauthorized access, forbidden access, not acceptable request, and conflict.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Training Category

  • ID: post_add_training_category
  • Operation: write
  • Entities: company domain, training category, API key
  • Summary: The Add Training Category API allows users to add a new training category to their BambooHR account. The API requires a POST request to the specified endpoint with the companyDomain as a path parameter and the name of the new training category in the request body. The owner of the API key must have access to training settings. Upon successful creation, the API returns a 201 status code along with the ID and name of the new training category. Possible error responses include 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, and 404 for a bad request URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Training Type

  • ID: post_add_training_type
  • Operation: write
  • Entities: company domain, category, training
  • Summary: The Add Training Type API allows users to add a new training type to the BambooHR system. The API requires the companyDomain as a path parameter, which is the subdomain used to access BambooHR. The request body must include the name of the training type and whether it is required. Optional parameters include frequency, renewable status, category, dueFromHireDate, linkUrl, description, and allowEmployeesToMarkComplete. The response returns the details of the created training type, including its ID, name, renewable status, frequency, dueFromHireDate, required status, category, linkUrl, description, and whether employees can mark it complete. The API responds with various status codes, including 201 for successful creation, 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, and 404 for a bad request URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Webhook

  • ID: post_add_webhook
  • Operation: write
  • Entities: company domain, webhook, field
  • Summary: The Add Webhook API allows users to create a new webhook in BambooHR. The API requires a POST request to the specified endpoint with the company domain as a path parameter. The request body must include the name of the webhook, fields to monitor, fields to post, and the URL to send data to. Optional parameters include the format, frequency, limit, and whether to include the company domain in the header. The API returns a 201 status code with the webhook details upon successful creation. Error responses include 400 for bad requests, 403 for permission issues, and 500 for internal errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Adds A Table Row

  • ID: post_adds_a_table_row
  • Operation: write
  • Entities: compensation, jobTitle, department, employee, table row, table
  • Summary: The 'Adds A Table Row' API allows users to add a row to a specified table for a given employee in BambooHR. The API requires the company domain, employee ID, and table name as path parameters. The request body can include optional fields such as date, location, division, department, job title, and reports to. The API returns different response codes indicating the success or failure of the operation, including 200 for success, 400 for invalid or missing fields, 403 for permission issues, and 406 for field errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Bulk Add or Edit Hour Records

  • ID: post_bulk_add_or_edit_hour_records
  • Operation: write
  • Entities: hour record, time tracking, employee
  • Summary: The Bulk Add or Edit Hour Records API allows users to add or edit multiple hour records in BambooHR. The API requires a POST request to the specified endpoint with a JSON array in the body containing the time tracking records. Each record must include a timeTrackingId, employeeId, dateHoursWorked, rateType, and hoursWorked. Optional fields include divisionId, departmentId, jobTitleId, payCode, payRate, jobCode, and jobData. The companyDomain path parameter is required to specify the subdomain for accessing BambooHR. The response returns an array of objects indicating the success of each operation, with the ID of the record or an error message if unsuccessful.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Close Goal

  • ID: post_close_goal
  • Operation: write
  • Entities: milestone, employee, goal
  • Summary: The Close Goal API allows users to close a specific goal for an employee in the BambooHR system. The API requires the company domain, employee ID, and goal ID as path parameters. An optional comment can be included in the request body. Upon successful closure of the goal, the API returns a detailed response containing the goal's information, including its ID, title, description, completion percentage, status, and any associated milestones. The response also indicates whether the goal's progress bar and milestone progress bar can be edited. The API handles various response codes, including 201 for success, 400 for invalid JSON, 403 for insufficient permissions, and 404 if the goal is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Create A Time Tracking Project

  • ID: post_create_a_time_tracking_project
  • Operation: write
  • Entities: project, employee, task
  • Summary: This API endpoint allows you to create a time tracking project in BambooHR with optional tasks. The request requires the company domain as a path parameter and a JSON body containing the project details such as name, billable status, employee access, and tasks. The response returns the created project's ID, name, and associated tasks. The API supports various response codes indicating success, bad request, unauthorized access, forbidden access, conflict, and server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Create Goal Comment

  • ID: post_create_goal_comment
  • Operation: write
  • Entities: employee, comment, goal
  • Summary: The 'Create Goal Comment' API allows users to add a new comment to a specific goal for an employee in BambooHR. The API requires the company domain, employee ID, and goal ID as path parameters. The request body must include the text of the comment. The response returns the ID of the newly created comment, the author user ID, creation timestamp, and permissions for editing or deleting the comment. The API responds with a 201 status code for successful creation, 400 for invalid input, and 403 if the user lacks permission.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Create Goal for Employee

  • ID: post_create_goal_for_employee
  • Operation: write
  • Entities: milestone, employee, goal
  • Summary: This API endpoint allows the creation of a new goal for a specified employee in BambooHR. The request requires the company domain and employee ID as path parameters. The request body must include the goal title, due date, and the IDs of employees with whom the goal is shared. Optionally, a description, completion percentage, alignment option ID, completion date, and milestones can be provided. The response returns the created goal object, including its ID, title, description, completion status, and any associated milestones. The API returns a 201 status code upon successful creation, or error codes 400 or 403 if the request is invalid or unauthorized.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Timesheet Clock Entries

  • ID: post_delete_timesheet_clock_entries
  • Operation: write
  • Entities: clock entry, company domain, timesheet
  • Summary: The Delete Timesheet Clock Entries API allows users to delete specific clock entries from their timesheet in BambooHR. The API requires the company domain as a path parameter and an array of clock entry IDs in the request body. The request must include a 'content-type' header set to 'application/json'. On successful deletion, the API returns a 204 status code with no content. Possible error responses include 400 for bad request parameters, 401 for unauthorized access, 403 for forbidden access, 406 for unacceptable requests, 409 for conflicts, 412 for invalid configurations, and 500 for internal server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Delete Timesheet Hour Entries

  • ID: post_delete_timesheet_hour_entries
  • Operation: write
  • Entities: company domain, timesheet, hour entry
  • Summary: The Delete Timesheet Hour Entries API allows users to delete specific hour entries from a timesheet in BambooHR. The API requires a POST request to the specified endpoint with the companyDomain as a path parameter and an array of hourEntryIds in the request body. The content-type header must be set to application/json. On success, the API returns a 204 status code with no content. Possible error responses include 400 for bad request parameters, 401 for unauthorized access, 403 for forbidden access, 406 for unacceptable requests, 409 for conflicts, 412 for invalid configurations, and 500 for internal server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Reopen A Goal

  • ID: post_reopen_a_goal
  • Operation: write
  • Entities: milestone, employee, goal
  • Summary: The 'Reopen A Goal' API allows users to reopen a specific goal for an employee in the BambooHR system. The API requires the company domain, employee ID, and goal ID as path parameters. The request must include an 'accept' header specifying 'application/json'. Upon successful execution, the API returns the details of the reopened goal, including its ID, title, description, completion status, and any associated milestones. The response also indicates whether the goal and milestone progress bars can be edited. Possible response codes include 201 for success, 400 for invalid JSON, 403 for insufficient permissions, and 404 if the goal is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Store A New Employee Photo

  • ID: post_store_a_new_employee_photo
  • Operation: write
  • Entities: company domain, photo, employee
  • Summary: The 'Store A New Employee Photo' API allows users to upload a new photo for an employee in the BambooHR system. The request must be a POST request to the specified endpoint with the companyDomain and employeeId as path parameters. The photo file must be included in the request body as a multipart/form-data with a specific boundary. The file must be a jpg, gif, or png, with equal width and height, and not larger than 20MB. The API requires the user to have photo uploading permissions. Successful uploads return a 201 status code, while errors such as non-existent employees, oversized files, or unsupported formats return 404, 413, and 415 status codes respectively.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Company File

  • ID: post_update_company_file
  • Operation: write
  • Entities: category, company, file
  • Summary: The Update Company File API allows users to update details of a company file in BambooHR. The API requires the company domain and file ID as path parameters. The request body can include optional parameters such as 'name' to rename the file, 'categoryId' to move the file to a different category, and 'shareWithEmployees' to update the file's sharing status. The API returns a 200 status code if the update is successful, and error codes 400, 403, or 404 for invalid requests, permission issues, or if the file or category is not found, respectively.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Employee

  • ID: post_update_employee
  • Operation: write
  • Entities: department, company, employee
  • Summary: The Update Employee API allows users to update an employee's details based on their employee ID. The API requires the company domain and employee ID as path parameters. The request body can include optional fields such as firstName and lastName. The API returns various response codes indicating the success or failure of the update operation, including 200 for success, 400 for bad request, 403 for permission issues, 404 if the employee doesn't exist, and 409 for invalid field values.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Employee File

  • ID: post_update_employee_file
  • Operation: write
  • Entities: category, file, employee
  • Summary: The Update Employee File API allows users to update an employee's file in the BambooHR system. The API requires the company domain, employee ID, and file ID as path parameters. The request body can include optional parameters such as 'name' to rename the file, 'categoryId' to move the file to a different category, and 'shareWithEmployee' to update the sharing status of the file. The API returns a 200 status code if the file is successfully updated, and error codes 400, 403, or 404 for invalid JSON, permission issues, or if the file or category is not found, respectively.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Updates A Table Row

  • ID: post_updates_a_table_row
  • Operation: write
  • Entities: employee, table row, compensation
  • Summary: The 'Updates A Table Row' API allows users to update a specific row in a table for an employee in BambooHR. The API requires the company domain, employee ID, table name, and row ID as path parameters. The request body can include fields such as date, location, division, department, job title, and reports to. The API returns a 200 status code if at least one field is successfully updated, even if some updates are disallowed due to permissions. Other possible response codes include 400 for invalid or missing fields, 403 for permission denied, and 406 for errors with one or more fields.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Upload Company File

  • ID: post_upload_company_file
  • Operation: write
  • Entities: category, company, file
  • Summary: The 'Upload Company File' API allows users to upload a file to a specified category within the BambooHR system. The request must be made using the POST method to the endpoint 'https://api.bamboohr.com/api/gateway.php/{companyDomain}/v1/files'. The request headers must include 'Content-Type' set to 'multipart/form-data' with a specific boundary, and 'Content-Length' indicating the size of the request body. The path parameter 'companyDomain' is required to specify the subdomain for accessing BambooHR. The body of the request must include 'category' (the category ID), 'fileName' (the name of the file), 'share' (indicating if the file should be shared with employees), and 'file' (the actual file to upload). The API responds with status codes 201 for successful uploads, 403 if the user lacks permission, 404 if the category ID is not found, and 413 if the file size exceeds limits.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Upload Employee File

  • ID: post_upload_employee_file
  • Operation: write
  • Entities: company, file, employee
  • Summary: The Upload Employee File API allows users to upload a file to a specific employee's record in BambooHR. The API requires the company domain and employee ID as path parameters. The request must include a multipart/form-data body with fields for category ID, file name, share option, and the file itself. The API responds with a 201 status code if the upload is successful, or error codes 403, 404, or 413 for permission issues, missing category ID, or file size limits, respectively.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

User Login

  • ID: post_user_login
  • Operation: write
  • Entities: application key, login, user
  • Summary: The User Login API endpoint is designed for use by BambooHR Marketplace Partners to assist with third-party integrations. It requires a POST request to the specified URL with the company domain as a path parameter. The request must include headers specifying the content type and optionally the response format. The body of the request should contain the user's email, password, and an application key provided by BambooHR. Optionally, a device ID can be included. The response will indicate success or failure, and if successful, will include the user ID, employee ID, and a session key.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add A Time Off Request

  • ID: put_add_a_time_off_request
  • Operation: write
  • Entities: company domain, time off request, employee id
  • Summary: The 'Add A Time Off Request' API allows users to create a time off request for an employee in the BambooHR system. The request is made using the PUT method to the specified endpoint, which includes the company domain and employee ID as path parameters. The request body can include details such as the status of the request, start and end dates, time off type ID, amount of time off, notes from the employee and manager, specific dates and amounts, and a previous request ID if modifying an existing request. The API returns an empty response with a 201 status code upon successful creation of the request. Possible error responses include 400 for malformed requests, 403 for forbidden changes to past approved requests, and 404 if the employee is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add Or Update Values For List Fields

  • ID: put_add_or_update_values_for_list_fields
  • Operation: write
  • Entities: company domain, list field, option
  • Summary: The 'Add Or Update Values For List Fields' API allows users to add new options or update existing options for a specified list field in BambooHR. The API requires the company domain and list field ID as path parameters. The request body must include an array of options, where each option can have an ID (for updates), an archived status, and a value. The response will return the full list of options for the specified list field. The API handles various response codes, including 200 for success, 400 for invalid JSON, 403 for insufficient permissions, 404 for non-existent values, and 409 for duplicate values.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Add A Time Off History Item For Time Off Request

  • ID: put_add_time_off_history_item
  • Operation: write
  • Entities: time off request, employee, time off history item
  • Summary: This API allows you to add a time off history item for a specific time off request for an employee in BambooHR. The request requires the company domain and employee ID as path parameters. The body of the request must include the date in ISO8601 format and the time off request ID. An optional note can also be included. On success, a 201 Created status is returned, and the Location header contains a URL identifying the new history item. Possible error responses include 400 for malformed requests, 403 for permission issues, and 409 if the history item already exists.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Adjust Time Off Balance

  • ID: put_adjust_time_off_balance
  • Operation: write
  • Entities: company, time off balance, employee
  • Summary: The Adjust Time Off Balance API allows you to insert a time off balance adjustment into the BambooHR database for a specific employee. The API requires a PUT request to the specified endpoint with the company domain and employee ID as path parameters. The request body must include the date of adjustment, time off type ID, and the amount to adjust the balance by. An optional note can also be included. On success, a 201 Created response is returned with a Location header containing a URL to the new history item. Possible error responses include 400 for malformed requests and 403 for insufficient permissions.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Assign Time Off Policies For An Employee

  • ID: put_assign_time_off_policies_for_an_employee
  • Operation: write
  • Entities: accrual start date, employee, time off policy
  • Summary: The 'Assign Time Off Policies For An Employee' API allows you to assign time off policies to an employee in BambooHR. The API requires a PUT request to the specified endpoint with the company domain and employee ID as path parameters. The request body must include an array of objects, each containing a 'timeOffPolicyId' and an 'accrualStartDate'. The 'accrualStartDate' must be later than the employee's PTO hire date. A null start date will remove the assignment. The API returns a 200 Success code on successful assignment, and the response content will be the same as the List Time off Policies API. Note that you cannot assign a new policy if the employee is already assigned to a policy in the same time off category.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Change A Request Status

  • ID: put_change_a_request_status
  • Operation: write
  • Entities: request, status, note
  • Summary: The 'Change A Request Status' API allows users to change the status of a time off request in the BambooHR system. The endpoint requires the company domain and request ID as path parameters. The request body must include the new status, which can be 'approved', 'denied', or 'canceled', and an optional note. The API triggers any email alerts that would normally be sent by the web UI. A successful request returns a 200 status code, while errors may result in 400, 403, or 404 status codes depending on the issue.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Edit An Hour Record

  • ID: put_edit_an_hour_record
  • Operation: write
  • Entities: company domain, time tracking, hour record
  • Summary: The 'Edit An Hour Record' API allows users to update the number of hours worked for a specific time tracking record in BambooHR. The API requires a PUT request to the endpoint with the company domain specified in the path parameters. The request body must include the 'timeTrackingId' and the updated 'hoursWorked'. The response will return the 'timeTrackingId' if successful. A 400 error will be returned if any required field is missing, any of the IDs are invalid, or the posted JSON is not valid.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update An Employee Dependent

  • ID: put_update_an_employee_dependent
  • Operation: write
  • Entities: address, dependent, employee
  • Summary: The 'Update An Employee Dependent' API allows users to update the information of a specific employee dependent using their dependent ID. The API requires the company domain and dependent ID as path parameters. The request body can include various optional fields such as employeeId, firstName, middleName, lastName, relationship, gender, ssn, dateOfBirth, address details, and citizenship/student status. The response returns the updated dependent details. The API supports response codes 201 for successful updates, 400 for invalid JSON, 403 for unauthorized access, and 500 for server errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Employee Training Record

  • ID: put_update_employee_training_record
  • Operation: write
  • Entities: employee training record, instructor, cost
  • Summary: The Update Employee Training Record API allows you to update an existing employee training record in BambooHR. The API requires the company domain and the employee training record ID as path parameters. The request body must include the 'completed' field in yyyy-mm-dd format, while other fields such as 'cost', 'instructor', 'hours', 'credits', and 'notes' are optional. The API returns a response with the updated training record details. The API key owner must have permission to add trainings for the selected employee.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Goal

  • ID: put_update_goal
  • Operation: write
  • Entities: company domain, employee, goal
  • Summary: The Update Goal API allows users to update an existing goal for a specified employee in BambooHR. The API requires the company domain, employee ID, and goal ID as path parameters. The request body must include the goal ID, title, sharedWithEmployeeIds, and dueDate, while other fields like description, percentComplete, alignsWithOptionId, and completionDate are optional. A successful response returns the updated goal details, including its milestones and actions. The API handles errors such as invalid JSON, insufficient permissions, and non-existent goals with appropriate HTTP status codes.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Goal Comment

  • ID: put_update_goal_comment
  • Operation: write
  • Entities: employee, comment, goal
  • Summary: The 'Update Goal Comment' API allows users to update the text of a specific goal comment for an employee in BambooHR. The API requires the company domain, employee ID, goal ID, and comment ID as path parameters. The request body must include the updated text of the comment. A successful response returns the updated comment details, including the comment ID, author user ID, creation timestamp, and permissions to edit or delete the comment. Possible response codes include 200 for success, 400 for invalid JSON, 403 for insufficient permissions, and 404 if the goal is not found.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Goal Progress

  • ID: put_update_goal_progress
  • Operation: write
  • Entities: company domain, employee, goal
  • Summary: The Update Goal Progress API allows updating the progress of a specific goal for an employee in BambooHR. It requires the company domain, employee ID, and goal ID as path parameters. The request body must include the percentComplete field to indicate the progress percentage. The API returns the updated goal details, including the goal ID, title, description, percent complete, shared employee IDs, due date, completion date, and status. The API responds with a 200 status code for successful updates, while errors such as invalid JSON, insufficient permissions, or non-existent goals result in 400, 403, or 404 status codes, respectively.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Goal Sharing

  • ID: put_update_goal_sharing
  • Operation: write
  • Entities: milestone, employee, goal
  • Summary: The Update Goal Sharing API allows updating the list of employees with whom a specific goal is shared. It requires the company domain, employee ID, and goal ID as path parameters. The request body must include an array of employee IDs to share the goal with. A successful response returns the updated goal object, including details such as goal ID, title, description, percent complete, shared employee IDs, due date, completion date, status, and any associated milestones. The API handles various response codes, including 200 for success, 400 for invalid JSON, 403 for insufficient permissions, and 404 for a non-existent goal.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Training Category

  • ID: put_update_training_category
  • Operation: write
  • Entities: company domain, training category
  • Summary: The 'Update Training Category' API allows users to update an existing training category in BambooHR. The API requires the user to provide the company domain and the training category ID as path parameters. The request body must include the new name for the training category. The API key owner must have access to training settings. Upon successful update, the API returns the updated training category's ID and name. Possible response codes include 200 for success, 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, and 404 for a bad request URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Training Type

  • ID: put_update_training_type
  • Operation: write
  • Entities: category, training type, employee
  • Summary: The Update Training Type API allows users to update an existing training type in BambooHR. The API requires the companyDomain and trainingTypeId as path parameters. The request body must include the name of the training type and whether it is required. Optional parameters include frequency, renewable status, category, dueFromHireDate, linkUrl, description, and allowEmployeesToMarkComplete. The API returns a 200 status code on success, with the updated training type details in the response body. Error codes include 400 for bad request parameters, 401 for unauthorized access, 403 for insufficient permissions, and 404 for a bad request URL.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Webhook

  • ID: put_update_webhook
  • Operation: write
  • Entities: company domain, webhook, field
  • Summary: The Update Webhook API allows users to update an existing webhook in BambooHR using the webhook ID. The API requires the company domain and webhook ID as path parameters. The request body must include the name of the webhook, fields to monitor, fields to post, and the URL to send data to. Optional parameters include the format, frequency, limit, and whether to include the company domain in the header. The API returns a 200 status code if successful, with details of the updated webhook. Error responses include 400 for bad requests, 401 for invalid API keys, 403 for permission issues, 404 if the webhook does not exist, and 500 for internal errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Terminate Employee by Adding Row to Employment Status Table

  • ID: terminate_employee
  • Operation: write
  • Entities:
  • Summary: The 'Terminate Employee by Adding Row to Employment Status Table' API allows users to terminate an employee in the BambooHR system by adding a new row to the 'employmentStatus' table. The API requires the employee ID and table name as path parameters. The request body must include the employment status set to 'Terminated', the termination date, and the termination reason ID. The API returns different response codes indicating the success or failure of the operation, including 200 for success, 400 for invalid or missing fields, 403 for permission issues, and 406 for field errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Update Employee

  • ID: update_employee_details
  • Operation: write
  • Entities:
  • Summary: The Update Employee API allows users to update an employee's details based on their employee ID. The API requires employee ID as path parameters. The request body can include optional fields such as firstName and lastName. The API returns various response codes indicating the success or failure of the update operation, including 200 for success, 400 for bad request, 403 for permission issues, 404 if the employee doesn't exist, and 409 for invalid field values.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Upload Employee File

  • ID: upload_document_of_employee
  • Operation: write
  • Entities:
  • Summary: The Upload Employee File API allows users to upload a file to a specific employee's record in BambooHR. The API requires employee ID as path parameters. The request must include a multipart/form-data body with fields for category ID, file name, share option, and the file itself. The API responds with a 201 status code if the upload is successful, or error codes 403, 404, or 413 for permission issues, missing category ID, or file size limits, respectively.
  • Input Fields: Input Fields
  • Output Fields: Output Fields