The BambooHR connector lets your AI agent act in each user's BambooHR account. Each user connects their own BambooHR API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 89 tools.
- Tools
- 89
- What they doRead · write · destructive
- 54 · 35 · 054 read35 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the BambooHR connection
In AgentKit > Connections, create a BambooHR connection. The name you give it is the
connection_nameyour code passes. See Configure connections.
Tools
Pass the exact name toexecute_toolbamboohr_applicant_statuses_listList the applicant statuses configured for the company, both system-defined and custom.Read-onlyList Applicant Statuses
List the applicant statuses configured for the company, both system-defined and custom. Returns each status's id, code, name, translatedName, description, enabled and manageable flags. Use bamboohr_applicant_statuses_list to get status IDs for bamboohr_application_status_update or for filtering bamboohr_applications_list.
Inputs
This tool takes no inputs.
bamboohr_application_getGet the full details of one job application.Read-onlyGet Job Application
Get the full details of one job application. Returns applicant contact info, the job, answers to application questions, attachments metadata and status history. Use bamboohr_application_get when you have an application ID. Use bamboohr_applications_list to search applications.
Inputs
application_idstringrequired- Application ID, from bamboohr_applications_list. Example: 381.
bamboohr_applications_listList job applications in BambooHR applicant tracking, filtered by job, status, search text or submission time.Read-onlyList Job Applications
List job applications in BambooHR applicant tracking, filtered by job, status, search text or submission time. Returns applications with applicant name, job, status, rating and dates, plus paging details (paginationComplete, nextPageUrl). Use bamboohr_applications_list to find candidates. Use bamboohr_application_get for one application's answers and history, and bamboohr_jobs_list for job openings. Requires a user with access to hiring (ATS) settings.
Inputs
application_statusstring- Comma-separated status groups: ALL, ALL_ACTIVE, NEW, ACTIVE, INACTIVE, HIRED. Example: NEW,ACTIVE.
application_status_idstring- Comma-separated applicant status IDs, from bamboohr_applicant_statuses_list. Example: 1,2.
job_idinteger- Only applications for this job opening ID, from bamboohr_jobs_list. Example: 12.
job_status_groupsstring- Comma-separated job status groups: ALL, DRAFT_AND_OPEN, Open, Filled, Draft, Deleted, On Hold, Canceled. Example: Open.
new_sincestring- Only applications submitted after this UTC time, formatted YYYY-MM-DD HH:MM:SS (not ISO 8601). Example: 2026-10-01 13:00:00.
pageinteger- Page number to return, starting at 1. Example: 2.
search_stringstring- Free-text search across applications. Example: Nguyen.
sort_bystring- Field to sort by. Example: created_date.one of
first_namejob_titleratingphonestatuslast_updatedcreated_date sort_orderstring- Sort direction. Example: DESC.one of
ASCDESC
bamboohr_ats_locations_listList the company locations available for job openings.Read-onlyList Job Locations
List the company locations available for job openings. Returns an array of locations with id, name, description, address, city, state, country, zipcode and phone. Use bamboohr_ats_locations_list for hiring locations. Use bamboohr_list_fields_list for the employee Location list used on employee records.
Inputs
This tool takes no inputs.
bamboohr_benefit_coverages_listList the benefit coverage levels configured in the company, such as Employee Only or Employee + Family.Read-onlyList Benefit Coverages
List the benefit coverage levels configured in the company, such as Employee Only or Employee + Family. Returns a "Benefit Coverages" array with id, shortName, description, sortOrder and benefitPlanId. Use bamboohr_benefit_coverages_list for coverage tiers. Use bamboohr_company_benefits_list for the plans themselves. Requires benefits administration access.
Inputs
This tool takes no inputs.
bamboohr_calendar_events_listList company calendar events (approved time off, holidays, birthdays and work anniversaries) that overlap a date range.Read-onlyList Calendar Events
List company calendar events (approved time off, holidays, birthdays and work anniversaries) that overlap a date range. Returns events sorted by start date, each with id, type, start and end dates and the related employee or holiday, plus pagination; events the caller cannot view are omitted. Use bamboohr_calendar_events_list to filter calendar entries by type, department, division or location. Use bamboohr_whos_out_list for a quick out-of-office list and bamboohr_holidays_list for holiday configuration.
Inputs
endstringrequired- Inclusive end date, YYYY-MM-DD; must be on or after start and less than one year later. Example: 2026-12-31.
startstringrequired- Inclusive start date, YYYY-MM-DD, in the company timezone. Example: 2026-12-01.
direct_reports_onlyboolean- When true, only events for the caller's direct reports (holidays are unaffected). Defaults to false. Example: true.
filterstring- OData filter using eq, in and and. Fields: type (TIME_OFF, HOLIDAY, BIRTHDAY, ANNIVERSARY), employeeId, department, division, location. Example: type in ('TIME_OFF','HOLIDAY') and department eq 10.
include_personsboolean- When true, include a persons map with display data for each employee in the results. Defaults to false. Example: true.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 100. Example: 25.
bamboohr_clock_entries_listList time tracking clock entries, with OData filtering, sorting and pagination.Read-onlyList Clock Entries
List time tracking clock entries, with OData filtering, sorting and pagination. Returns data (entries with id, employeeId, timesheetId, date, start, end, timezone, hours, note, projectId, taskId and clock-in/out sources) plus meta and _links. Use bamboohr_clock_entries_list for clock-in/clock-out entries. Use bamboohr_hour_entries_list for hour entries.
Inputs
filterstring- OData filter using eq, ge, le and and. Fields: timesheetId, employeeId, start, end. Example: employeeId eq 40342 and start ge 2026-10-01T00:00:00Z.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 50 (minimum 10), maximum 200. Example: 25.
sortstring- Sort expression; fields start, end, updatedAt. Defaults to start desc. Example: start asc.
bamboohr_company_benefits_listList the company's active benefit plans.Read-onlyList Company Benefits
List the company's active benefit plans. Returns companyBenefits, each with id, name, type, vendor and deduction IDs, start and end dates, catch-up flags, isDraft and editable. Use bamboohr_company_benefits_list for benefit plans. Use bamboohr_benefit_coverages_list for coverage levels.
Inputs
This tool takes no inputs.
bamboohr_company_files_listList the company file categories and the files in each that the caller can see.Read-onlyList Company Files
List the company file categories and the files in each that the caller can see. Returns categories, each with id, name, canUploadFiles and its files (metadata, not file content). Use bamboohr_company_files_list to find company file and category IDs. Use bamboohr_employee_files_list for one employee's files.
Inputs
This tool takes no inputs.
bamboohr_company_information_getGet basic profile information for the BambooHR company.Read-onlyGet Company Information
Get basic profile information for the BambooHR company. Returns the legal and display names, primary address, phone number, BambooHR subdomain and configured timezone. Use bamboohr_company_information_get for company-level details. Use bamboohr_employee_directory_get or bamboohr_employees_list for people.
Inputs
This tool takes no inputs.
bamboohr_countries_listList the countries known to BambooHR, or look one up by ISO code.Read-onlyList Countries
List the countries known to BambooHR, or look one up by ISO code. Returns an array of countries with id, name and isoCode, or a single country when iso_code is given. Use bamboohr_countries_list to get a country ID for bamboohr_provinces_list.
Inputs
iso_codestring- Two-letter ISO 3166-1 alpha-2 code; returns just that country. Example: US.
bamboohr_custom_report_getRun a saved custom report and return its rows.Read-onlyRun Custom Report
Run a saved custom report and return its rows. Returns fields (the report columns) and data, an array of flat objects keyed by field name, plus pagination. Use bamboohr_custom_report_get to run an existing saved report. Use bamboohr_dataset_data_query to build an ad hoc query with your own fields and filters. Get report IDs from bamboohr_custom_reports_list.
Inputs
report_idintegerrequired- Saved report ID, from bamboohr_custom_reports_list. Example: 104.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 500, maximum 1000. Example: 25.
bamboohr_custom_reports_listList the saved custom reports in the BambooHR account.Read-onlyList Custom Reports
List the saved custom reports in the BambooHR account. Returns reports with id and name plus pagination (total_records, current_page, total_pages, next_page, prev_page). Use bamboohr_custom_reports_list to find a report ID. Use bamboohr_custom_report_get to run a report.
Inputs
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 500, maximum 1000. Example: 25.
bamboohr_dataset_fields_listList the fields of a reporting dataset.Read-onlyList Dataset Fields
List the fields of a reporting dataset. Returns field descriptors (name, label, parent section and entity) with pagination. Use bamboohr_dataset_fields_list to pick field names for bamboohr_dataset_data_query. Dataset field names differ from the names used by bamboohr_employee_get.
Inputs
dataset_namestringrequired- Dataset name, from bamboohr_datasets_list. Example: employee.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 500, maximum 1000. Example: 25.
bamboohr_datasets_listList the reporting datasets available for querying, such as employee, benefit or applicants.Read-onlyList Datasets
List the reporting datasets available for querying, such as employee, benefit or applicants. Returns each dataset's machine-readable name and human-readable label. Use bamboohr_datasets_list to find a dataset name. Use bamboohr_dataset_fields_list for its fields and bamboohr_dataset_data_query to query it.
Inputs
This tool takes no inputs.
bamboohr_employee_dependent_getGet one employee dependent by ID.Read-onlyGet Employee Dependent
Get one employee dependent by ID. Returns an "Employee Dependents" array with the single dependent's details (SSN and SIN masked). Use bamboohr_employee_dependent_get when you have a dependent ID. Use bamboohr_employee_dependents_list to find dependents.
Inputs
dependent_idintegerrequired- Dependent ID, from bamboohr_employee_dependents_list. Example: 211.
bamboohr_employee_dependents_listList employee dependents, for one employee or the whole company.Read-onlyList Employee Dependents
List employee dependents, for one employee or the whole company. Returns an "Employee Dependents" array with id, employeeId, names, relationship, gender, masked SSN/SIN, date of birth, address, phone and citizenship and student flags. Use bamboohr_employee_dependents_list to browse dependents. Use bamboohr_employee_dependent_get for one dependent. Requires benefits administration access.
Inputs
employee_idinteger- Only dependents of this internal employee ID. Omit for all dependents. Example: 40342.
bamboohr_employee_directory_getGet the company's published employee directory.Read-onlyGet Employee Directory
Get the company's published employee directory. Returns a fields array describing the directory columns and an employees array of records keyed by those field IDs (name, job title, department, location, work contact details and, when shared, supervisor). Use bamboohr_employee_directory_get for coworker lookups and reporting lines across the company. Use bamboohr_employees_list to filter or page employees, and bamboohr_employee_get for one employee's full record. Returns 403 when the company has disabled directory sharing.
Inputs
only_currentboolean- When true (the default) only employees already hired are listed; set false to include people with a future hire date. Example: false.
bamboohr_employee_files_listList the file categories and files the caller can see for an employee.Read-onlyList Employee Files
List the file categories and files the caller can see for an employee. Returns employee.id and categories, each with id, name, permissions and its files (metadata such as id, name, size and dates, not file content). Use bamboohr_employee_files_list to find employee file and category IDs. Use bamboohr_company_files_list for company-wide files. Returns 404 when the employee has no file categories the caller can access.
Inputs
employee_idstringrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
bamboohr_employee_getGet one employee's record, with the fields you name.Read-onlyGet Employee
Get one employee's record, with the fields you name. Returns an object with id plus each requested field; fields the caller cannot see are omitted. Use bamboohr_employee_get for a single employee's details. Use bamboohr_employees_list to search or page through many employees, and bamboohr_employee_table_rows_list for history tables such as jobInfo or compensation. Pass employee_id 0 to read the authenticated user's own record. Call bamboohr_fields_list to discover valid field names.
Inputs
employee_idstringrequired- Internal BambooHR employee ID, or 0 for the authenticated user's own record. Do not pass the editable Employee # (employeeNumber). Example: 40342.
fieldsstring- Comma-separated fields to return. Accepts standard field names, numeric field IDs and custom-field aliases (up to 400). Without fields BambooHR returns only id, so this defaults to a common set. Example: firstName,lastName,jobTitle,department,workEmail,hireDate.default
firstName,lastName,displayName,jobTitle,department,division,location,workEmail,mobilePhone,hireDate,status only_currentboolean- When true (the default) only currently effective values are returned for historical fields such as job title and compensation; set false to also include future-dated values. Example: false.
bamboohr_employee_table_rows_listList all rows of one employee table (for example jobInfo, compensation or employmentStatus) for an employee, or for every employee.Read-onlyList Employee Table Rows
List all rows of one employee table (for example jobInfo, compensation or employmentStatus) for an employee, or for every employee. Returns an array of rows, each with its id, employeeId and the table's fields; fields the caller cannot see are omitted. Rows are not sorted. Use bamboohr_employee_table_rows_list to read history such as past job titles or pay changes. Use bamboohr_employees_changed_table_rows_list to fetch only rows for employees changed since a timestamp. Call bamboohr_tables_list to discover table names and their fields.
Inputs
employee_idstringrequired- Internal BambooHR employee ID, or all to return the table for every employee the caller can access. Example: 40342.
tablestringrequired- API name of the employee table. Standard tables include jobInfo, compensation, employmentStatus, emergencyContacts, dependents, earnings, bonus, commission, employeeEducation, employeeVisas, employeePassports and employeeDriverLicenses; custom tables are named like customTable1. Call bamboohr_tables_list to see the tables and fields available in this account. Example: jobInfo.
bamboohr_employee_time_off_policies_listList the time off policies assigned to an employee, newest effective date first.Read-onlyList Employee Time Off Policies
List the time off policies assigned to an employee, newest effective date first. Returns data, an array of assignments with id, policyId, categoryId, effectiveDate, endDate and status, plus pagination. Use bamboohr_employee_time_off_policies_list to see which policies apply to someone. Use bamboohr_employee_time_off_policy_assign to assign a policy.
Inputs
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
filterstring- OData filter expression. Supported operators: eq, ne, lt, le, gt, ge, in and and (or, not and parentheses are not supported). Filterable fields: policyId, categoryId. String and date values go in single quotes. Example: categoryId eq 64
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 50. Example: 25.
bamboohr_employee_training_records_listList an employee's completed training records, optionally for one training type.Read-onlyList Employee Training Records
List an employee's completed training records, optionally for one training type. Returns an object keyed by training record ID, each with employeeId, completed date, type, notes and, when enabled, instructor, credits, hours and cost. Use bamboohr_employee_training_records_list to review training history. Use bamboohr_employee_training_record_create to record a completion.
Inputs
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
typeinteger- Only records for this training type ID, from bamboohr_training_types_list. Example: 4.
bamboohr_employees_changed_listList employees that were inserted, updated or deleted since a given time.Read-onlyList Changed Employees
List employees that were inserted, updated or deleted since a given time. Returns latest (the newest change timestamp) and an employees map keyed by employee ID, each with id, action (Inserted, Updated or Deleted) and lastChanged. Use bamboohr_employees_changed_list for incremental sync. Use bamboohr_employees_changed_table_rows_list to fetch the changed employees' table rows.
Inputs
sincestringrequired- Only employees changed after this ISO 8601 timestamp are returned. Example: 2026-10-01T00:00:00Z.
typestring- Limit to one change type: inserted, updated, deleted or all. Omit for all. Example: updated.one of
insertedupdateddeletedall
bamboohr_employees_changed_table_rows_listList all rows of one employee table for every employee changed since a given time.Read-onlyList Changed Employee Table Rows
List all rows of one employee table for every employee changed since a given time. Returns the table rows grouped by employee ID, each with the employee's lastChanged timestamp. A change to any field of an employee returns all of that employee's rows. Use bamboohr_employees_changed_table_rows_list for incremental sync of table data. Use bamboohr_employee_table_rows_list to read one employee's table.
Inputs
sincestringrequired- Only employees changed after this ISO 8601 timestamp are included. Example: 2026-10-01T00:00:00Z.
tablestringrequired- API name of the employee table. Standard tables include jobInfo, compensation, employmentStatus, emergencyContacts, dependents, earnings, bonus, commission, employeeEducation, employeeVisas, employeePassports and employeeDriverLicenses; custom tables are named like customTable1. Call bamboohr_tables_list to see the tables and fields available in this account. Example: jobInfo.
bamboohr_employees_listList employees in the BambooHR company as a cursor-paginated roster, optionally filtered by name, status, job title, department, location, manager or a set of IDs.Read-onlyList Employees
List employees in the BambooHR company as a cursor-paginated roster, optionally filtered by name, status, job title, department, location, manager or a set of IDs. Returns data (employee records with the default identity and job fields plus any extra fields requested), meta.total, meta.page cursors (nextCursor, prevCursor) and _links. Use bamboohr_employees_list to find or batch-fetch employees. Use bamboohr_employee_get for every field of one employee, bamboohr_employee_directory_get for the published coworker directory, and bamboohr_dataset_data_query for report-style queries.
Inputs
afterstring- Cursor for the next page: pass meta.page.nextCursor from the previous response. Do not set together with before. Example: eyJpZCI6NDAzNDJ9.
beforestring- Cursor for the previous page: pass meta.page.prevCursor from the previous response. Do not set together with after. Example: eyJpZCI6NDAzNDJ9.
department_idinteger- Return employees in this department, by department list-value ID (see bamboohr_list_fields_list). Example: 18264.
division_idinteger- Return employees in this division, by division list-value ID (see bamboohr_list_fields_list). Example: 18301.
fieldsstring- Comma-separated extra fields to include in each record beyond the default set, such as workEmail, mobilePhone, hireDate, departmentName, locationName, reportsToName or employmentStatusName. Example: workEmail,hireDate,departmentName.
first_namestring- Return employees whose first name contains this text (case-insensitive substring match). Example: Ava.
idsstring- Comma-separated internal employee IDs to fetch in one call. Example: 40342,40343,40350.
job_title_namestring- Return employees whose current job title contains this text (case-insensitive substring match). Example: Engineer.
last_namestring- Return employees whose last name contains this text (case-insensitive substring match). Example: Nguyen.
limitinteger- Maximum number of employees per page. Defaults to 250, maximum 2500. Example: 100.
location_idinteger- Return employees at this location, by location list-value ID (see bamboohr_list_fields_list). Example: 18247.
reports_to_idinteger- Return the direct reports of this manager, given as the manager's internal employee ID. Example: 40342.
sortstring- Comma-separated sort fields; prefix a field with - for descending order. Allowed: employeeId, firstName, lastName, preferredName, jobTitleName, status. Example: lastName,-employeeId.
statusstring- Employee status to match exactly: active or inactive. Omit to return both. Example: active.one of
activeinactive work_emailstring- Return employees whose work email contains this text (case-insensitive substring match). Example: ava@acme.com.
bamboohr_fields_listList every employee field in the account, standard and custom.Read-onlyList Employee Fields
List every employee field in the account, standard and custom. Returns an array of fields with id, name, type, alias and deprecated flag. Use bamboohr_fields_list to find field names or aliases for bamboohr_employee_get, bamboohr_employee_create and bamboohr_employee_update. Use bamboohr_tables_list for table fields and bamboohr_dataset_fields_list for dataset fields.
Inputs
This tool takes no inputs.
bamboohr_goal_comments_listList the comments on a goal.Read-onlyList Goal Comments
List the comments on a goal. Returns comments, each with id, authorUserId, createdAt, text, canEdit and canDelete. Use bamboohr_goal_comments_list to read the discussion on a goal. Use bamboohr_goal_comment_create to add a comment.
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
goal_idstringrequired- Goal ID, from bamboohr_goals_list. Example: 77.
bamboohr_goals_aggregate_getGet a goals dashboard for an employee: the goals matching a status filter, the available filters with counts, comment counts and the people involved.Read-onlyGet Goals Dashboard
Get a goals dashboard for an employee: the goals matching a status filter, the available filters with counts, comment counts and the people involved. Returns canAlign, canCreateGoals, filters, selectedFilter, goals (including milestone goals), persons and comments (goalId and commentCount). Use bamboohr_goals_aggregate_get for an overview. Use bamboohr_goals_list for a plain list of goals.
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
filterstring- Status filter for the goals list: status-inProgress, status-completed, status-closed or status-all. Example: status-all.one of
status-inProgressstatus-completedstatus-closedstatus-all
bamboohr_goals_listList an employee's performance goals (up to 50), by default excluding closed goals.Read-onlyList Goals
List an employee's performance goals (up to 50), by default excluding closed goals. Returns goals, each with id, title, description, percentComplete, dueDate, completionDate, status, sharedWithEmployeeIds and milestones. Use bamboohr_goals_list to find a goal before updating, commenting on, closing or reopening it. Use bamboohr_goals_aggregate_get for a dashboard with status counts and comment counts.
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
filterstring- Status filter: status-inProgress, status-completed, status-closed or status-all. Omit to exclude closed goals. Example: status-all.one of
status-inProgressstatus-completedstatus-closedstatus-all
bamboohr_hiring_leads_listList the employees who can be assigned as hiring lead on a job opening.Read-onlyList Hiring Leads
List the employees who can be assigned as hiring lead on a job opening. Returns an array of employeeId and preferredFullName. Use bamboohr_hiring_leads_list to resolve a hiring lead's employee ID. Use bamboohr_jobs_list to see the leads on existing jobs.
Inputs
This tool takes no inputs.
bamboohr_holiday_getGet one company holiday by ID.Read-onlyGet Company Holiday
Get one company holiday by ID. Returns the holiday with id, name, startDate, endDate, isPublic, countryCodes, audience, holidayPay and globalHolidayUuid. Use bamboohr_holiday_get when you have a holiday ID. Use bamboohr_holidays_list to search holidays.
Inputs
holiday_idintegerrequired- Company holiday ID, from bamboohr_holidays_list. Example: 31.
bamboohr_holidays_listList the company's holidays, with OData filtering, sorting, field selection and pagination.Read-onlyList Company Holidays
List the company's holidays, with OData filtering, sorting, field selection and pagination. Returns data (holidays with id, name, startDate, endDate, isPublic, countryCodes, audience and holidayPay) plus pagination. Use bamboohr_holidays_list to review holiday configuration. Use bamboohr_calendar_events_list or bamboohr_whos_out_list to see holidays alongside time off.
Inputs
filterstring- OData filter expression. Supported operators: eq, ne, lt, le, gt, ge, in and and (or, not and parentheses are not supported). Filterable fields: name, startDate, endDate, isPublic, globalHolidayUuid. String and date values go in single quotes. Example: startDate ge '2026-01-01'
order_bystring- Comma-separated sort terms, each a field optionally followed by asc or desc. Fields: name, startDate, endDate, createdAt, updatedAt. Defaults to startDate asc. Example: startDate desc.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 20. Example: 25.
selectstring- Comma-separated properties to include in each holiday. Example: id,name,startDate.
bamboohr_hour_entries_listList time tracking hour entries, with OData filtering, sorting and pagination.Read-onlyList Hour Entries
List time tracking hour entries, with OData filtering, sorting and pagination. Returns data (entries with id, employeeId, timesheetId, date, hours, note, projectId and taskId) plus meta and _links. Use bamboohr_hour_entries_list for hours logged without clock times. Use bamboohr_clock_entries_list for clock-in/clock-out entries.
Inputs
filterstring- OData filter using eq, ge, le and and. Fields: timesheetId, employeeId, date. Example: employeeId eq 40342 and date ge 2026-10-01.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 50 (minimum 10), maximum 200. Example: 25.
sortstring- Sort expression; fields date, updatedAt. Defaults to date desc. Example: date asc.
bamboohr_jobs_listList job opening summaries in BambooHR applicant tracking.Read-onlyList Job Openings
List job opening summaries in BambooHR applicant tracking. Returns each job's id, title, postedDate, location, department, status, hiringLead, new/active/total applicant counts and postingUrl. All non-deleted jobs are returned by default. Use bamboohr_jobs_list to find job IDs. Use bamboohr_applications_list to see applicants for a job.
Inputs
sort_bystring- Field to sort by. Example: created.one of
counttitleleadcreatedstatus sort_orderstring- Sort direction. Example: DESC.one of
ASCDESC status_groupsstring- Comma-separated job status groups: ALL, DRAFT_AND_OPEN, Open, Filled, Draft, Deleted, On Hold, Canceled. Example: Open.
status_idsstring- Comma-separated job opening status IDs; combined with status_groups. Example: 1,2.
bamboohr_list_fields_listList the account's list (drop-down) fields, such as Department, Division, Location and Job Title, with their options.Read-onlyList List Fields
List the account's list (drop-down) fields, such as Department, Division, Location and Job Title, with their options. Returns an array of lists with id, fieldId, name, alias, manageable, multiple and options (id, name, archived). Archived options are included for history. Use bamboohr_list_fields_list to get valid option values and list-value IDs. Use bamboohr_list_field_options_update to add, rename or archive options.
Inputs
This tool takes no inputs.
bamboohr_provinces_listList the states or provinces of a country.Read-onlyList States and Provinces
List the states or provinces of a country. Returns options sorted by abbreviation, each with id, label (the abbreviation, such as UT), iso (such as US-UT) and name. Use bamboohr_provinces_list to get valid state values for addresses. Get the country ID from bamboohr_countries_list.
Inputs
country_idintegerrequired- Numeric country ID, the id from bamboohr_countries_list. Example: 1.
bamboohr_tables_listList the employee tables in the account (such as jobInfo, compensation and employmentStatus) and the fields in each.Read-onlyList Employee Tables
List the employee tables in the account (such as jobInfo, compensation and employmentStatus) and the fields in each. Returns an array of tables with alias and fields (id, name, alias, type). Use bamboohr_tables_list to find table names and field names for the employee table row tools. Use bamboohr_fields_list for single-value employee fields.
Inputs
This tool takes no inputs.
bamboohr_time_off_balance_getGet an employee's time off balances for every assigned category as of a date.Read-onlyGet Time Off Balance
Get an employee's time off balances for every assigned category as of a date. Returns one entry per time off category with its name, unit, balance, used-year-to-date amount and policy type. Use bamboohr_time_off_balance_get for current or projected balances. Use bamboohr_time_off_balance_adjust to change a balance. Does not accept 0 for the caller; resolve the caller's ID with bamboohr_employee_get first.
Inputs
employee_idstringrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
endstring- Date to calculate balances as of, YYYY-MM-DD. Defaults to today; use a future date to project accruals. Example: 2026-12-31.
precisioninteger- Decimal places for balance values, 0 to 4. Defaults to 2. Example: 1.
bamboohr_time_off_policies_listList the company's time off policies, with OData filtering, sorting and pagination.Read-onlyList Time Off Policies
List the company's time off policies, with OData filtering, sorting and pagination. Returns policies with id, name, categoryId and type; accruing policies include their current version and milestones. Use bamboohr_time_off_policies_list to browse policies. Use bamboohr_time_off_policy_get for one policy and bamboohr_employee_time_off_policies_list for the policies assigned to an employee.
Inputs
filterstring- OData filter expression. Supported operators: eq, ne, lt, le, gt, ge, in and and (or, not and parentheses are not supported). Filterable fields: id, name, categoryId, type, createdAt, updatedAt. String and date values go in single quotes. Example: type eq 'ACCRUING'
order_bystring- Sort by a field and direction. Sortable: id, name, categoryId, type, createdAt, updatedAt. Example: name asc.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 50. Example: 25.
bamboohr_time_off_policy_getGet one time off policy by ID.Read-onlyGet Time Off Policy
Get one time off policy by ID. Returns the policy's id, name, categoryId, type, assignedEmployeeCount and, for accruing policies, currentVersion with its accrual rates and milestones. Use bamboohr_time_off_policy_get for one policy's accrual rules. Use bamboohr_time_off_policies_list to browse policies.
Inputs
policy_idintegerrequired- Time off policy ID, from bamboohr_time_off_policies_list. Example: 15.
bamboohr_time_off_request_comments_listList the comments on a time off request.Read-onlyList Time Off Request Comments
List the comments on a time off request. Returns data, an array of comments with id, employeeId (the author), comment text and createdAt. Use bamboohr_time_off_request_comments_list to read the discussion on a request. Use bamboohr_time_off_request_comment_create to add a comment.
Inputs
request_idintegerrequired- ID of the time off request, from bamboohr_time_off_requests_list. Example: 1834.
bamboohr_time_off_request_getGet one time off request by ID.Read-onlyGet Time Off Request
Get one time off request by ID. Returns the request's employee, category, dates, amount and unit, daily breakdown, notes, status and request time. Use bamboohr_time_off_request_get when you have a request ID. Use bamboohr_time_off_requests_list to search requests.
Inputs
request_idintegerrequired- ID of the time off request, from bamboohr_time_off_requests_list. Example: 1834.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
bamboohr_time_off_requests_listList time off requests, with OData filtering, sorting and page-based pagination.Read-onlyList Time Off Requests
List time off requests, with OData filtering, sorting and page-based pagination. Returns time off request objects (id, employeeId, categoryId, startDate, endDate, amount, unit, status, notes, requestedAt) plus pagination details. Use bamboohr_time_off_requests_list to find requests by employee, status or dates. Use bamboohr_time_off_request_get for one request, and bamboohr_whos_out_list or bamboohr_calendar_events_list for who is out on given days.
Inputs
filterstring- OData filter expression. Supported operators: eq, ne, lt, le, gt, ge, in and and (or, not and parentheses are not supported). Filterable fields: id, employeeId, categoryId, startDate, endDate, amount, unit, status (requested, approved, denied, canceled), requestedAt. String and date values go in single quotes. Example: status eq 'requested' and startDate ge '2026-11-01'
order_bystring- Sort by a field and direction. Defaults to requestedAt desc. Example: startDate asc.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 100. Example: 25.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
bamboohr_time_off_types_listList the company's active time off types (categories such as Vacation or Sick) and its default hours-per-day schedule.Read-onlyList Time Off Types
List the company's active time off types (categories such as Vacation or Sick) and its default hours-per-day schedule. Returns timeOffTypes (id, name, units, color, icon) and defaultHours. The list is filtered by the caller's permissions. Use bamboohr_time_off_types_list to get category IDs for creating requests. Use bamboohr_time_off_policies_list for the accrual policies attached to those types.
Inputs
modestring- Set to request to return only the types the authenticated employee can request. Example: request.one of
request
bamboohr_time_tracking_projects_listList time tracking projects, with OData filtering, sorting and pagination.Read-onlyList Time Tracking Projects
List time tracking projects, with OData filtering, sorting and pagination. Returns data (projects with id, name, billable, includeInPayroll, allEmployeesAssigned, archived, hasTasks and employeeIds) plus meta and _links. Use bamboohr_time_tracking_projects_list to get project IDs for clock-ins.
Inputs
filterstring- OData filter. Fields: id, name, billable, includeInPayroll, allEmployeesAssigned, archived, createdAt, updatedAt. Example: archived eq false.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 100, maximum 500. Example: 25.
sortstring- Sort expression; fields name, createdAt, updatedAt. Example: name asc.
bamboohr_timesheet_entries_listList timesheet entries (clock and hour entries) for all or selected employees in a date range within the last 365 days.Read-onlyList Timesheet Entries
List timesheet entries (clock and hour entries) for all or selected employees in a date range within the last 365 days. Returns an array of entries with id, employeeId, type, date, start, end, timezone, hours, note, projectInfo and approval details. Use bamboohr_timesheet_entries_list for raw time entries across employees. Use bamboohr_timesheets_list for timesheet totals and approval status.
Inputs
endstringrequired- Latest entry date, YYYY-MM-DD, within the last 365 days. Example: 2026-10-14.
startstringrequired- Earliest entry date, YYYY-MM-DD, within the last 365 days. Example: 2026-10-01.
employee_idsstring- Comma-separated internal employee IDs. Omit for all accessible employees. Example: 40342,40350.
bamboohr_timesheet_getGet one timesheet by ID.Read-onlyGet Timesheet
Get one timesheet by ID. Returns the timesheet's id, employeeId, type, startDate, endDate, status (OPEN, PENDING_APPROVAL or APPROVED), totalHours, overtimeHours, approvedBy, approvedAt and hoursLastChangedAt. Use bamboohr_timesheet_get to check a timesheet before approving it with bamboohr_timesheet_approve. Use bamboohr_timesheets_list to search timesheets.
Inputs
timesheet_idintegerrequired- Timesheet ID, from bamboohr_timesheets_list. Example: 100.
bamboohr_timesheets_listList timesheets, with OData filtering, sorting and pagination; future pay periods are excluded.Read-onlyList Timesheets
List timesheets, with OData filtering, sorting and pagination; future pay periods are excluded. Returns data (timesheets with id, employeeId, type, startDate, endDate, status (OPEN, PENDING_APPROVAL or APPROVED), totalHours, overtimeHours, approvedBy, approvedAt and hoursLastChangedAt) plus meta and _links. Use bamboohr_timesheets_list to find timesheets awaiting approval. Use bamboohr_timesheet_get for one timesheet and bamboohr_timesheet_approve to approve it.
Inputs
filterstring- OData filter. Fields: employeeId, status, startDate, endDate. Example: status eq 'PENDING_APPROVAL'.
pageinteger- Page number to return, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Number of items per page. Defaults to 50, maximum 200. Example: 25.
sortstring- Sort expression; fields startDate, endDate, approvedAt, updatedAt. Defaults to startDate desc. Example: startDate desc.
bamboohr_training_categories_listList the company's training categories.Read-onlyList Training Categories
List the company's training categories. Returns an object keyed by category ID, each with id and name. Use bamboohr_training_categories_list to group training types. Use bamboohr_training_types_list for the trainings themselves.
Inputs
This tool takes no inputs.
bamboohr_training_types_listList the company's training types (the trainings employees complete).Read-onlyList Training Types
List the company's training types (the trainings employees complete). Returns an object keyed by training type ID, each with name, renewable, frequency, dueFromHireDate, required, category, linkUrl, description and allowEmployeesToMarkComplete. Use bamboohr_training_types_list to get training type IDs for bamboohr_employee_training_record_create.
Inputs
This tool takes no inputs.
bamboohr_users_listList BambooHR user accounts, optionally filtered by status.Read-onlyList Users
List BambooHR user accounts, optionally filtered by status. Returns an object keyed by user ID, each with id, employeeId, firstName, lastName, email, status and lastLogin. Use bamboohr_users_list to map users to employees or check who can log in. Use bamboohr_employees_list for employee records.
Inputs
statusstring- Comma-separated statuses to include: enabled, disabled. Omit for all users. Example: enabled.
bamboohr_whos_out_listList employees who are out and company holidays for a date range (today through 14 days ahead by default).Read-onlyList Who's Out
List employees who are out and company holidays for a date range (today through 14 days ahead by default). Returns a date-sorted array of entries, each with id, type (timeOff or holiday), employeeId (for time off), name, start and end. Use bamboohr_whos_out_list for a quick out-of-office view. Use bamboohr_calendar_events_list to filter by type, department or location, and bamboohr_time_off_requests_list for request details and statuses.
Inputs
endstring- Last date to include, YYYY-MM-DD. Defaults to 14 days after start. Example: 2027-01-04.
filterstring- Set to off to ignore the caller's saved Who's Out filter and return time off for everyone the caller can see. Omit to apply the saved filter. Example: off.one of
off startstring- First date to include, YYYY-MM-DD. Defaults to today. Example: 2026-12-21.
bamboohr_application_comment_createAdd a comment to a job application.WriteCreate Application Comment
Add a comment to a job application. Returns an object with type and the new comment's id. Use bamboohr_application_comment_create to record feedback on a candidate. Use bamboohr_application_status_update to change the candidate's status.
Inputs
application_idstringrequired- Application ID, from bamboohr_applications_list. Example: 381.
commentstringrequired- Comment text. Example: Strong system design interview.
typestring- Comment type. Defaults to comment. Example: comment.
bamboohr_application_status_updateMove a job application to a different applicant status.WriteUpdate Application Status
Move a job application to a different applicant status. Returns an object with type and id confirming the change. Use bamboohr_application_status_update to advance or reject a candidate. Use bamboohr_application_comment_create to leave a note instead. Get valid status IDs from bamboohr_applicant_statuses_list.
- Idempotent
Inputs
application_idintegerrequired- Application ID, from bamboohr_applications_list. Example: 381.
status_idintegerrequired- ID of the applicant status to assign, from bamboohr_applicant_statuses_list. Example: 2.
bamboohr_company_file_categories_createCreate one or more company file categories.WriteCreate Company File Categories
Create one or more company file categories. Returns 201 with no response body when the categories are created. Use bamboohr_company_file_categories_create for company-wide folders. Use bamboohr_employee_file_categories_create for employee document folders. Each name must be non-empty and not already used.
Inputs
category_namesarrayrequired- Names of the categories to create. Example: ["Policies", "Benefits Guides"].
bamboohr_company_file_updateRename a company file, move it to another category, or change whether it is shared with employees.WriteUpdate Company File
Rename a company file, move it to another category, or change whether it is shared with employees. Returns 200 with no response body on success. Use bamboohr_company_file_update to change company file metadata. Use bamboohr_company_files_list to get file and category IDs.
- Idempotent
Inputs
file_idintegerrequired- ID of the company file, from bamboohr_company_files_list. Example: 512.
category_idstring- ID of the company file category to move the file into, from bamboohr_company_files_list. Example: 3.
namestring- New display name for the file. Example: Employee Handbook 2026.pdf.
share_with_employeestring- Whether employees can see the file: yes or no. Example: yes.one of
yesno
bamboohr_dataset_data_queryQuery a reporting dataset for chosen fields, with an optional OData filter, sort order and paging.WriteQuery Dataset
Query a reporting dataset for chosen fields, with an optional OData filter, sort order and paging. Returns data (rows whose values sit under a fields object keyed by the requested field names), links (prev and next) and meta (page, pageSize, totalPages, totalItems). Use bamboohr_dataset_data_query for ad hoc tabular reporting across many employees. Use bamboohr_custom_report_get to run a saved report, and bamboohr_employees_list for simple roster lookups. Call bamboohr_datasets_list and bamboohr_dataset_fields_list first for valid dataset and field names. Requires a user with reporting access.
Inputs
dataset_namestringrequired- Dataset name, from bamboohr_datasets_list. Example: employee.
fieldsarrayrequired- Field names to return for each row, from bamboohr_dataset_fields_list. Example: ["firstName", "lastName", "jobInformationDepartment"].
filterstring- OData-style filter. Operators: eq, ne, lt, le, gt, ge, in (...), and, or (one of and/or per expression). Example: employmentStatus eq 'Full-Time'.
order_bystring- Comma-separated sort rules of field name plus asc or desc; every field used must also be in fields. Example: lastName asc.
pageinteger- Page number, starting at 1. Defaults to 1. Example: 2.
page_sizeinteger- Rows per page. Defaults to 100, maximum 1000. Example: 50.
bamboohr_dataset_field_options_getGet the allowed values for one or more fields of a reporting dataset, to use as filter values.WriteGet Dataset Field Options
Get the allowed values for one or more fields of a reporting dataset, to use as filter values. Returns an object keyed by field name, each holding an array of options with id and value. Use bamboohr_dataset_field_options_get before filtering bamboohr_dataset_data_query on a list-type field. Use bamboohr_list_fields_list for employee list fields outside datasets.
Inputs
dataset_namestringrequired- Dataset name, from bamboohr_datasets_list. Example: employee.
fieldsarrayrequired- Dataset field names to get options for, from bamboohr_dataset_fields_list. Example: ["jobInformationDepartment", "employmentStatus"].
dependent_fieldsobject- Optional values of other fields that the requested fields' options depend on, keyed by requested field. Example: {"jobInformationDivision": [{"field": "jobInformationDepartment", "value": 123}]}.
filtersobject- Optional filters that narrow the options to those used by matching records. Give a match mode (all or any) and a list of conditions, each naming a field, an operator and the values. Example: {"match": "all", "filters": [{"field": "employee_status", "operator": "includes", "value": ["Active"]}]}.
bamboohr_employee_createCreate a new employee record in BambooHR.WriteCreate Employee
Create a new employee record in BambooHR. Returns 201 with the new employee record, including its internal id (also in the Location response header). Use bamboohr_employee_create to add a person. Use bamboohr_employee_update to change an existing employee, and bamboohr_employee_table_row_create to add job, compensation or employment status history rows. Employment type and termination date are ignored here; set them afterwards with an employmentStatus table row.
Inputs
first_namestringrequired- Employee's legal first name. Example: Ava.
last_namestringrequired- Employee's legal last name. Example: Nguyen.
additional_fieldsobject- Any other writable employee fields as a JSON object keyed by BambooHR field name (see bamboohr_fields_list). Values here override the named inputs above. Example: {"preferredName": "Avi", "workPhone": "+1 801 555 0100"}.
departmentstring- Department name, as it appears in the Department list. Example: Engineering.
divisionstring- Division name, as it appears in the Division list. Example: North America.
hire_datestring- Hire date in YYYY-MM-DD format. Example: 2026-11-02.
job_titlestring- Job title; must match an existing value of the Job Title list unless the list allows new values. Example: Software Engineer.
locationstring- Location name, as it appears in the Location list. Example: Salt Lake City.
mobile_phonestring- Mobile phone number. Example: +1 801 555 0142.
work_emailstring- Work email address. Example: ava.nguyen@acme.com.
bamboohr_employee_dependent_createAdd a dependent (spouse, child or domestic partner) to an employee.WriteCreate Employee Dependent
Add a dependent (spouse, child or domestic partner) to an employee. Returns an "Employee Dependents" array with the created dependent. Use bamboohr_employee_dependent_create to add a dependent. Use bamboohr_employee_dependents_list to review existing ones first. Requires benefits administration access.
Inputs
employee_idstringrequired- Internal employee ID the dependent belongs to. Example: 40342.
address_line1string- Address line 1. Example: 335 S 560 W.
address_line2string- Address line 2. Example: Apt 4.
citystring- City. Example: Lindon.
countrystring- ISO 3166-1 alpha-2 country code. Example: US.
date_of_birthstring- Date of birth, YYYY-MM-DD. Example: 2018-05-04.
first_namestring- Dependent's first name. Example: Maya.
genderstring- Dependent's gender. Example: female.
home_phonestring- Home phone number. Example: +1 801 555 0199.
is_studentstring- Whether the dependent is a student: yes or no. Example: no.one of
yesno is_us_citizenstring- Whether the dependent is a US citizen: yes or no. Example: yes.one of
yesno last_namestring- Dependent's last name. Example: Nguyen.
middle_namestring- Dependent's middle name. Example: Lee.
relationshipstring- Relationship to the employee, such as spouse, child or domestic_partner. Example: child.
sinstring- Canadian Social Insurance Number as plain text; stored encrypted and returned masked. Example: 046-454-286.
ssnstring- US Social Security Number as plain text; stored encrypted and returned masked. Example: 123-45-6789.
statestring- State code. Example: UT.
zip_codestring- ZIP or postal code. Example: 84042.
bamboohr_employee_file_categories_createCreate one or more employee file categories (the folders that hold employee documents).WriteCreate Employee File Categories
Create one or more employee file categories (the folders that hold employee documents). Returns 201 with no response body when the categories are created. Use bamboohr_employee_file_categories_create for employee document folders. Use bamboohr_company_file_categories_create for company file folders. Each name must be unique among existing employee file categories.
Inputs
category_namesarrayrequired- Names of the categories to create. Example: ["Certifications", "Performance Reviews"].
bamboohr_employee_file_updateRename an employee file, move it to another category, or change whether it is shared with the employee.WriteUpdate Employee File
Rename an employee file, move it to another category, or change whether it is shared with the employee. Returns 200 with no response body on success. Use bamboohr_employee_file_update to change file metadata. Use bamboohr_employee_files_list to get file and category IDs. Send at least one of name, category_id or share_with_employee.
- Idempotent
Inputs
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
file_idintegerrequired- ID of the employee file, from bamboohr_employee_files_list. Example: 2241.
category_idinteger- ID of the employee file category to move the file into, from bamboohr_employee_files_list. Example: 14.
namestring- New display name for the file. Example: Offer letter 2026.pdf.
share_with_employeestring- Whether the employee can see the file: yes or no. Example: yes.one of
yesno
bamboohr_employee_table_row_createAdd a row to an employee table, such as a new job info, compensation or employment status entry.WriteCreate Employee Table Row
Add a row to an employee table, such as a new job info, compensation or employment status entry. Returns 200 with no response body on success. Use bamboohr_employee_table_row_create to record a change with an effective date. Use bamboohr_employee_table_row_update to correct an existing row, and bamboohr_employee_update for single-value employee fields. Call bamboohr_tables_list for the table's field names and bamboohr_list_fields_list for valid option values.
Inputs
employee_idstringrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
rowobjectrequired- The table row as a JSON object keyed by the table's field names (see bamboohr_tables_list). List-backed fields take an existing option value. For jobInfo: {"date": "2026-11-01", "jobTitle": "Senior Engineer", "department": "Engineering", "location": "Salt Lake City", "reportsTo": "Jane Smith"}. For compensation: {"startDate": "2026-11-01", "rate": {"currency": "USD", "value": "95000"}, "type": "Salary", "paidPer": "Year"}.
tablestringrequired- API name of the employee table. Standard tables include jobInfo, compensation, employmentStatus, emergencyContacts, dependents, earnings, bonus, commission, employeeEducation, employeeVisas, employeePassports and employeeDriverLicenses; custom tables are named like customTable1. Call bamboohr_tables_list to see the tables and fields available in this account. Example: jobInfo.
bamboohr_employee_table_row_updateUpdate an existing row in an employee table; only the fields you send change.WriteUpdate Employee Table Row
Update an existing row in an employee table; only the fields you send change. Returns 200 with no response body when at least one field was updated (fields the caller cannot edit are skipped). Use bamboohr_employee_table_row_update to correct a history row. Use bamboohr_employee_table_row_create to record a new change. Get the row ID from bamboohr_employee_table_rows_list.
- Idempotent
Inputs
employee_idstringrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
rowobjectrequired- Fields to change, as a JSON object keyed by the table's field names (see bamboohr_tables_list). Example: {"jobTitle": "Staff Engineer", "department": "Platform"}.
row_idstringrequired- ID of the table row to update, from the id field of bamboohr_employee_table_rows_list. Example: 1287.
tablestringrequired- API name of the employee table. Standard tables include jobInfo, compensation, employmentStatus, emergencyContacts, dependents, earnings, bonus, commission, employeeEducation, employeeVisas, employeePassports and employeeDriverLicenses; custom tables are named like customTable1. Call bamboohr_tables_list to see the tables and fields available in this account. Example: jobInfo.
bamboohr_employee_time_off_policy_assignAssign a time off policy to an employee from an effective date.WriteAssign Employee Time Off Policy
Assign a time off policy to an employee from an effective date. Returns the new assignment plus supersededAssignments: an existing assignment in the same category is end-dated to the day before, and later ones are archived. Use bamboohr_employee_time_off_policy_assign to put an employee on a policy. Use bamboohr_employee_time_off_policies_list to review current assignments first. Get policy IDs from bamboohr_time_off_policies_list.
Inputs
effective_datestringrequired- Date the assignment takes effect, YYYY-MM-DD; for accruing policies this is the accrual start. Must not be before the hire date. Example: 2026-11-01.
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
policy_idintegerrequired- ID of the time off policy to assign, from bamboohr_time_off_policies_list. Example: 15.
bamboohr_employee_training_record_createRecord that an employee completed a training.WriteCreate Employee Training Record
Record that an employee completed a training. Returns the new training record with id, employeeId, completed, type, notes, instructor, credits, hours and cost. Use bamboohr_employee_training_record_create to log a completion. Use bamboohr_employee_training_record_update to correct a record. Get training type IDs from bamboohr_training_types_list.
Inputs
completedstringrequired- Completion date, YYYY-MM-DD. Example: 2026-10-10.
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
training_type_idintegerrequired- Training type ID, from bamboohr_training_types_list. Example: 4.
costobject- Optional training cost as an object with an ISO 4217 currency code and an amount as a decimal string. Example: {"currency": "USD", "amount": "100.00"}.
creditsnumber- Credits earned. Example: 4.
hoursnumber- Hours spent on the training. Example: 16.
instructorstring- Instructor name. Example: Bob Jones.
notesstring- Notes about the training. Example: Completed in person.
bamboohr_employee_training_record_updateUpdate an employee training record.WriteUpdate Employee Training Record
Update an employee training record. Returns the updated training record with id, employeeId, completed, type, notes, instructor, credits, hours and cost. Use bamboohr_employee_training_record_update to correct a training record. Use bamboohr_employee_training_records_list to find the record ID.
- Idempotent
Inputs
completedstringrequired- Completion date, YYYY-MM-DD; always required. Example: 2026-10-10.
record_idintegerrequired- Training record ID, from bamboohr_employee_training_records_list. Example: 902.
costobject- Optional training cost as an object with an ISO 4217 currency code and an amount as a decimal string. Example: {"currency": "USD", "amount": "100.00"}.
creditsnumber- Credits earned. Example: 4.
hoursnumber- Hours spent on the training. Example: 16.
instructorstring- Instructor name. Example: Bob Jones.
notesstring- Notes about the training. Example: Updated hours.
bamboohr_employee_updateUpdate fields on an existing BambooHR employee; only the fields you send change.WriteUpdate Employee
Update fields on an existing BambooHR employee; only the fields you send change. Returns 200 with the employee record after the update. Use bamboohr_employee_update for single-value fields such as name, contact details and address. Use bamboohr_employee_table_row_create or bamboohr_employee_table_row_update for history tables (job info, compensation, employment status), and bamboohr_employee_create for new people. Send at least one field. Employment type and termination date cannot be changed here.
- Idempotent
Inputs
employee_idstringrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
additional_fieldsobject- Any other writable employee fields as a JSON object keyed by BambooHR field name (see bamboohr_fields_list). Values here override the named inputs above. Example: {"preferredName": "Avi", "homeEmail": "ava@example.com"}.
address1string- Home street address, line 1. Example: 335 S 560 W.
citystring- Home city. Example: Lindon.
countrystring- Home country name. Example: United States.
departmentstring- New department name, as it appears in the Department list. Example: Engineering.
divisionstring- New division name, as it appears in the Division list. Example: North America.
first_namestring- New legal first name. Example: Ava.
job_titlestring- New job title, as it appears in the Job Title list. Example: Senior Software Engineer.
last_namestring- New legal last name. Example: Nguyen.
locationstring- New location name, as it appears in the Location list. Example: Salt Lake City.
mobile_phonestring- Mobile phone number. Example: +1 801 555 0142.
statestring- Home state or province; full names are normalized to abbreviations. Example: UT.
work_emailstring- New work email address. Example: ava.nguyen@acme.com.
work_phonestring- Work phone number. Example: +1 801 555 0100.
zipcodestring- Home ZIP or postal code. Example: 84042.
bamboohr_goal_closeClose a goal, optionally recording a closing comment.WriteClose Goal
Close a goal, optionally recording a closing comment. Returns goal, the goal object with id, title, description, percentComplete, dueDate, completionDate, status, sharedWithEmployeeIds and milestones. Use bamboohr_goal_close when a goal is finished or abandoned. Use bamboohr_goal_reopen to reopen it. Cascading goals with visible child goals cannot be closed.
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
goal_idstringrequired- Goal ID, from bamboohr_goals_list. Example: 77.
commentstring- Optional comment recorded at closing. Example: Closing as the deadline has passed.
bamboohr_goal_comment_createAdd a comment to a goal.WriteCreate Goal Comment
Add a comment to a goal. Returns the new comment with id, authorUserId, createdAt, text, canEdit and canDelete. Use bamboohr_goal_comment_create to discuss a goal. Use bamboohr_goal_comments_list to read existing comments.
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
goal_idstringrequired- Goal ID, from bamboohr_goals_list. Example: 77.
textstringrequired- Comment text. Example: Great progress this quarter.
bamboohr_goal_createCreate a performance goal for an employee, optionally with milestones.WriteCreate Goal
Create a performance goal for an employee, optionally with milestones. Returns goal, the goal object with id, title, description, percentComplete, dueDate, completionDate, status, sharedWithEmployeeIds and milestones. Use bamboohr_goal_create for new goals. Use bamboohr_goal_update to edit a goal and bamboohr_goal_progress_update to change progress on a goal without milestones. shared_with_employee_ids must include the goal owner's own employee ID.
Inputs
due_datestringrequired- Due date, YYYY-MM-DD. Example: 2026-12-31.
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
shared_with_employee_idsarrayrequired- Internal employee IDs the goal is shared with; must include the owner's ID. Example: [40342, 40350].
titlestringrequired- Goal title. Example: Launch the self-serve onboarding flow.
aligns_with_option_idinteger- ID of the company or team goal this goal aligns with. Example: 12.
completion_datestring- Completion date, YYYY-MM-DD; only valid when percent_complete is 100. Example: 2026-10-14.
descriptionstring- Longer description of the goal. Example: Ship v1 to all new customers.
milestonesarray- Milestones for a milestone-based goal, each with a title; progress is then derived from milestone completion. Omit for a simple goal. Example: [{"title": "Design review"}, {"title": "Beta launch"}].
percent_completeinteger- Starting progress for a goal without milestones, 0 to 100. Defaults to 0; ignored when milestones are given. Example: 10.
bamboohr_goal_progress_updateSet the percent complete of a goal that has no milestones.WriteUpdate Goal Progress
Set the percent complete of a goal that has no milestones. Returns goal, the goal object with id, title, description, percentComplete, dueDate, completionDate, status, sharedWithEmployeeIds and milestones. Use bamboohr_goal_progress_update to report progress. Use bamboohr_goal_update for other edits. Goals with milestones reject this call.
- Idempotent
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
goal_idstringrequired- Goal ID, from bamboohr_goals_list. Example: 77.
percent_completeintegerrequired- Progress, 0 to 100. Example: 75.
completion_datestring- Completion date, YYYY-MM-DD; required when percent_complete is 100. Example: 2026-10-14.
bamboohr_goal_reopenReopen a closed goal, returning it to in progress.WriteReopen Goal
Reopen a closed goal, returning it to in progress. Returns goal, the goal object with id, title, description, percentComplete, dueDate, completionDate, status, sharedWithEmployeeIds and milestones. Use bamboohr_goal_reopen to resume a closed goal. Use bamboohr_goal_close to close one.
Inputs
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
goal_idstringrequired- Goal ID, from bamboohr_goals_list. Example: 77.
bamboohr_goal_updateUpdate a goal's title, description, due date, sharing and alignment, and optionally add or delete milestones.WriteUpdate Goal
Update a goal's title, description, due date, sharing and alignment, and optionally add or delete milestones. Returns goal, the goal object with id, title, description, percentComplete, dueDate, completionDate, status, sharedWithEmployeeIds and milestones. Use bamboohr_goal_update to edit a goal. Use bamboohr_goal_progress_update for progress only, and bamboohr_goal_close or bamboohr_goal_reopen to change its status. title, due_date and shared_with_employee_ids are always required; send the current values for ones you are not changing.
- Idempotent
Inputs
due_datestringrequired- Due date, YYYY-MM-DD. Example: 2027-01-31.
employee_idstringrequired- Internal employee ID of the goal owner. Example: 40342.
goal_idstringrequired- Goal ID, from bamboohr_goals_list. Example: 77.
shared_with_employee_idsarrayrequired- Internal employee IDs the goal is shared with; must include the owner's ID. Example: [40342, 40350].
titlestringrequired- Goal title. Example: Launch the self-serve onboarding flow.
aligns_with_option_idinteger- ID of the company or team goal this goal aligns with. Example: 12.
completion_datestring- Completion date, YYYY-MM-DD; only valid when percent_complete is 100. Example: 2026-12-15.
deleted_milestone_idsarray- IDs of milestones to delete from the goal. Example: [490].
descriptionstring- Longer description of the goal. Example: Ship v1 to all new customers.
milestonesarray- New milestones to add, each with a title. Every entry creates a new milestone, even if the title matches an existing one. Example: [{"title": "Beta launch"}].
milestones_enabledboolean- true turns on milestones (progress derived from them), false turns them off. Omit to leave milestones and progress unchanged; milestones and deleted_milestone_ids only apply when this is set. Example: true.
percent_completeinteger- Progress, 0 to 100, for goals without milestones. Example: 50.
bamboohr_holiday_createCreate a company holiday.WriteCreate Company Holiday
Create a company holiday. Returns the holiday with id, name, startDate, endDate, isPublic, countryCodes, audience, holidayPay and globalHolidayUuid. Use bamboohr_holiday_create to add a holiday. Use bamboohr_holiday_update to change one. name and start_date are required unless global_holiday_uuid seeds them from BambooHR's holiday catalog.
Inputs
audienceobjectrequired- Who the holiday applies to, as an object with a mode of ALL_EMPLOYEES, FILTERED or SPECIFIC_EMPLOYEES. FILTERED uses filterListValueIds (list-value IDs from bamboohr_list_fields_list), SPECIFIC_EMPLOYEES uses specificEmployeeIds, and any mode can add additionalEmployeeIds or exemptEmployeeIds. Example: {"mode": "ALL_EMPLOYEES"}.
country_codesarray- Countries the holiday applies to, as ISO 3166-1 alpha-2 codes. An empty array means no country filter. Example: ["US", "CA"].
end_datestring- End date, YYYY-MM-DD, on or after start_date. Omit for a single-day holiday. Example: 2027-07-06.
global_holiday_uuidstring- UUID of a BambooHR catalog holiday to seed name, dates and countries from; your values override the catalog. Example: 7c9e6679-7425-40de-944b-e07fc1f90ae7.
holiday_payobject- Optional pay treatment, as an object with a mode of HOURS_BY_STATUS (defaultHours plus optional hoursByEmploymentStatus overrides) or MULTIPLIER (multiplier as a decimal string). Example: {"mode": "MULTIPLIER", "multiplier": "1.50"}.
is_publicboolean- Whether the holiday shows on every employee's calendar regardless of audience. Defaults to true. Example: true.
namestring- Holiday name, 1 to 255 characters. Example: Independence Day.
start_datestring- Start date, YYYY-MM-DD. Example: 2027-07-05.
bamboohr_holiday_updateUpdate a company holiday; only the fields you send change, and audience, country_codes and holiday_pay replace their stored values in full.WriteUpdate Company Holiday
Update a company holiday; only the fields you send change, and audience, country_codes and holiday_pay replace their stored values in full. Returns the holiday with id, name, startDate, endDate, isPublic, countryCodes, audience, holidayPay and globalHolidayUuid. Use bamboohr_holiday_update to change a holiday. Use bamboohr_holiday_create to add one.
- Idempotent
Inputs
holiday_idintegerrequired- Company holiday ID, from bamboohr_holidays_list. Example: 31.
audienceobject- Replacement audience. Who the holiday applies to, as an object with a mode of ALL_EMPLOYEES, FILTERED or SPECIFIC_EMPLOYEES. FILTERED uses filterListValueIds (list-value IDs from bamboohr_list_fields_list), SPECIFIC_EMPLOYEES uses specificEmployeeIds, and any mode can add additionalEmployeeIds or exemptEmployeeIds. Example: {"mode": "ALL_EMPLOYEES"}.
country_codesarray- Replacement country filter as ISO 3166-1 alpha-2 codes; an empty array removes the filter. Example: ["US"].
end_datestring- End date, YYYY-MM-DD, on or after the start date. Example: 2027-07-06.
holiday_payobject- Replacement pay treatment. Optional pay treatment, as an object with a mode of HOURS_BY_STATUS (defaultHours plus optional hoursByEmploymentStatus overrides) or MULTIPLIER (multiplier as a decimal string). Example: {"mode": "MULTIPLIER", "multiplier": "1.50"}.
is_publicboolean- Whether the holiday shows on every employee's calendar regardless of audience. Example: false.
namestring- Holiday name, 1 to 255 characters. Example: Independence Day (observed).
start_datestring- Start date, YYYY-MM-DD. Example: 2027-07-05.
bamboohr_list_field_options_updateCreate, rename, archive or restore options on a manageable list field.WriteUpdate List Field Options
Create, rename, archive or restore options on a manageable list field. Returns the list with its id, fieldId, name, alias and full options array after the change. Use bamboohr_list_field_options_update to maintain drop-down values such as departments or locations. Use bamboohr_list_fields_list first to get the fieldId and option IDs. Lists with manageable set to no cannot be changed (405).
- Idempotent
Inputs
list_field_idstringrequired- The list's fieldId (not its id), from bamboohr_list_fields_list. Example: 4.
optionsarrayrequired- Options to change. To add an option give only its value; to rename give its id and the new value; to archive or restore give its id and archived set to yes or no. An optional adpCode sets a payroll mapping code. Example: [{"value": "Data Science"}, {"id": 18, "archived": "yes"}].
bamboohr_time_off_balance_adjustAdd a manual balance adjustment for one of an employee's time off types; it is recorded in the employee's time off history.WriteAdjust Time Off Balance
Add a manual balance adjustment for one of an employee's time off types; it is recorded in the employee's time off history. Returns 201 on success. Use bamboohr_time_off_balance_adjust to grant or deduct hours or days. Use bamboohr_time_off_balance_get to check the result. Not available for discretionary (unlimited) time off types.
Inputs
amountnumberrequired- Hours or days to add; use a negative number to deduct. Example: 8.
datestringrequired- Date to record the adjustment in history, YYYY-MM-DD. Example: 2026-10-14.
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
time_off_type_idintegerrequired- Time off type ID, from bamboohr_time_off_types_list. Example: 78.
notestring- Optional note shown in the time off history. Example: Carry-over correction.
bamboohr_time_off_request_approveApprove a time off request, completing the caller's approval step (or every remaining step when bypass is true).WriteApprove Time Off Request
Approve a time off request, completing the caller's approval step (or every remaining step when bypass is true). Returns the updated request; it stays REQUESTED while other approvals are outstanding and becomes APPROVED after the last one. Use bamboohr_time_off_request_approve to approve. Use bamboohr_time_off_request_deny to reject and bamboohr_time_off_request_cancel to withdraw.
Inputs
request_idintegerrequired- ID of the time off request to approve. Example: 1834.
bypassboolean- When true, completes every remaining approval step instead of only the caller's; requires permission to bypass approvers. Defaults to false. Example: false.
manager_notestring- Optional note recorded on the request by the approver, up to 1024 characters. Example: Enjoy your time off.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
bamboohr_time_off_request_cancelCancel a time off request.WriteCancel Time Off Request
Cancel a time off request. Allowed while it is REQUESTED, or after approval until the time off starts. Returns the updated request in CANCELED status. Use bamboohr_time_off_request_cancel to withdraw a request. Use bamboohr_time_off_request_deny when an approver rejects it.
Inputs
request_idintegerrequired- ID of the time off request to cancel. Example: 1834.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
bamboohr_time_off_request_comment_createAdd a comment to a time off request.WriteCreate Time Off Request Comment
Add a comment to a time off request. Returns the new comment with id, employeeId, comment and createdAt. Use bamboohr_time_off_request_comment_create to discuss a request. To record an approver note, pass manager_note to bamboohr_time_off_request_approve or bamboohr_time_off_request_deny instead.
Inputs
commentstringrequired- Comment text; must not be empty or only whitespace. Example: Approved pending coverage confirmation.
request_idintegerrequired- ID of the time off request, from bamboohr_time_off_requests_list. Example: 1834.
bamboohr_time_off_request_createCreate a time off request for an employee; it starts in REQUESTED status and enters the approval workflow.WriteCreate Time Off Request
Create a time off request for an employee; it starts in REQUESTED status and enters the approval workflow. Returns the created time off request with its id and status. Use bamboohr_time_off_request_create to request time off. Use bamboohr_time_off_request_approve or bamboohr_time_off_request_deny to act on it, and bamboohr_time_off_request_update to change it. Get category IDs from bamboohr_time_off_types_list. Send exactly one of amount or daily_amounts.
Inputs
category_idintegerrequired- Time off category (type) ID, from bamboohr_time_off_types_list. Example: 78.
employee_idintegerrequired- Internal employee ID of the person taking time off. Example: 40342.
end_datestringrequired- Last day of time off (inclusive), YYYY-MM-DD. Example: 2026-12-23.
start_datestringrequired- First day of time off, YYYY-MM-DD. Example: 2026-12-21.
amountnumber- Total time off for the whole range in the category's unit (hours or days). Send this or daily_amounts, not both. Example: 24.
daily_amountsarray- Per-day amounts within the date range, each with a date (YYYY-MM-DD) and an amount in the category's unit. Send this or amount, not both. Example: [{"date": "2026-12-21", "amount": 8}, {"date": "2026-12-22", "amount": 4}].
employee_notestring- Optional note from the requester, up to 1024 characters. Example: Family vacation.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
bamboohr_time_off_request_denyDeny a time off request.WriteDeny Time Off Request
Deny a time off request. A denial is final and discards any remaining approval steps. Returns the updated request in DENIED status. Use bamboohr_time_off_request_deny to reject a request. Use bamboohr_time_off_request_approve to approve it.
Inputs
request_idintegerrequired- ID of the time off request to deny. Example: 1834.
bypassboolean- When true the caller is authorized by bypass permission instead of being a current approver. Defaults to false. Example: false.
manager_notestring- Optional reason recorded on the request, up to 1024 characters. Example: We need coverage that week.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
bamboohr_time_off_request_updateChange the category, dates, daily amounts or note of an existing time off request.WriteUpdate Time Off Request
Change the category, dates, daily amounts or note of an existing time off request. Returns the updated request. Editing a REQUESTED request replaces it and restarts approval, so the returned id differs from the one you sent; use the returned id from then on. Use bamboohr_time_off_request_update to edit a request. Use bamboohr_time_off_request_cancel to withdraw it. When changing start_date or end_date you must also send daily_amounts covering the new range.
Inputs
request_idintegerrequired- ID of the time off request to edit. Example: 1834.
category_idinteger- New time off category ID, from bamboohr_time_off_types_list. Example: 78.
daily_amountsarray- Replacement per-day breakdown, each with a date (YYYY-MM-DD) and amount in the category's unit; required whenever the dates change. Example: [{"date": "2026-12-22", "amount": 8}, {"date": "2026-12-23", "amount": 8}].
employee_notestring- New note from the requester, up to 1024 characters. Example: Moved by one day.
end_datestring- New last day (inclusive), YYYY-MM-DD. Requires daily_amounts. Example: 2026-12-24.
return_actionsboolean- Set to true to include a _links block listing the state transitions (approve, deny, cancel, edit) the caller can perform on the request. Defaults to false. Example: true.
start_datestring- New first day, YYYY-MM-DD. Requires daily_amounts. Example: 2026-12-22.
bamboohr_time_tracking_clock_inClock an employee in, now or at a past time, optionally against a project and task.WriteClock In Employee
Clock an employee in, now or at a past time, optionally against a project and task. Returns the timesheet entry with id, employeeId, type, date, start, end, timezone, hours, note, projectInfo and breakInfo. Use bamboohr_time_tracking_clock_in to start a clock entry. Use bamboohr_time_tracking_clock_out to end it. For a historical clock-in send date, start and timezone together.
Inputs
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
break_idstring- UUID of the break to associate with the entry. Example: 123e4567-e89b-12d3-a456-426614174000.
datestring- Date of a historical clock-in, YYYY-MM-DD. Omit to clock in now. Example: 2026-10-14.
notestring- Note for the entry. Example: Back from lunch.
project_idinteger- Time tracking project ID, from bamboohr_time_tracking_projects_list; required when task_id is set. Example: 10.
startstring- Clock-in time for a historical entry, 24-hour HH:MM. Example: 09:00.
task_idinteger- Task ID within the project. Example: 25.
timezonestring- IANA timezone of the clock-in. Example: America/Denver.
bamboohr_time_tracking_clock_outClock out an employee who is currently clocked in, now or at a past time.WriteClock Out Employee
Clock out an employee who is currently clocked in, now or at a past time. Returns the timesheet entry with id, employeeId, type, date, start, end, timezone, hours, note, projectInfo and breakInfo. Use bamboohr_time_tracking_clock_out to end the open clock entry. Use bamboohr_time_tracking_clock_in to start one. For a historical clock-out send date, end and timezone together.
Inputs
employee_idintegerrequired- Internal BambooHR employee ID (the `id`/`employeeId` value returned by bamboohr_employees_list or bamboohr_employee_directory_get). This is not the editable Employee # (employeeNumber). Example: 40342.
datestring- Date of a historical clock-out, YYYY-MM-DD. Omit to clock out now. Example: 2026-10-14.
endstring- Clock-out time for a historical entry, 24-hour HH:MM. Example: 17:30.
timezonestring- IANA timezone of the clock-out. Example: America/Denver.
bamboohr_timesheet_approveApprove a timesheet that is pending approval.WriteApprove Timesheet
Approve a timesheet that is pending approval. Returns the approved timesheet with id, employeeId, type, startDate, endDate, status (OPEN, PENDING_APPROVAL or APPROVED), totalHours, overtimeHours, approvedBy, approvedAt and hoursLastChangedAt. Use bamboohr_timesheet_approve to approve hours. Use bamboohr_timesheets_list to find timesheets with status PENDING_APPROVAL. Pass the timesheet's current hoursLastChangedAt from bamboohr_timesheet_get; the call returns 409 if hours changed since.
Inputs
last_changed_atstringrequired- The timesheet's hoursLastChangedAt value (not updatedAt), ISO 8601 UTC. Example: 2026-10-12T17:00:00Z.
timesheet_idintegerrequired- ID of the timesheet to approve. Example: 100.
No tools match.