# BambooHR

> Read and manage BambooHR employees, time off, files, reports and webhooks.

Lets an agent read and manage your BambooHR HRIS - employees, time off, tabular
records, files, reports and webhooks.

## What it can do

| Method | What it does |
| --- | --- |
| `bamboohr_get_employee` | Get one employee by id; choose which fields to return. |
| `bamboohr_get_directory` | Get the company directory (roster with basic fields). |
| `bamboohr_list_employees` | List all employees with chosen fields (falls back to the directory). |
| `bamboohr_list_employees_bulk` | List employees via the first-class endpoint (field selection, id batch lookup, paging); includes hidden employees. |
| `bamboohr_add_employee` | Add a new employee. WRITE. |
| `bamboohr_update_employee` | Update an employee's fields. WRITE. |
| `bamboohr_list_employee_files` | List an employee's files and file categories. |
| `bamboohr_get_employee_file` | Get an employee file's metadata/content. |
| `bamboohr_update_employee_file` | Rename/recategorize an employee file. WRITE. |
| `bamboohr_delete_employee_file` | Delete an employee file. WRITE. |
| `bamboohr_add_employee_file_category` | Create an employee file category. WRITE. |
| `bamboohr_upload_employee_file` | Upload a file to an employee's file section (multipart). WRITE. |
| `bamboohr_upload_employee_photo` | Set/replace an employee's profile photo (multipart). WRITE. |
| `bamboohr_get_employee_photo` | Get an employee photo at a given size. |
| `bamboohr_list_company_files` | List company files and categories. |
| `bamboohr_get_company_file` | Get a company file's metadata/content. |
| `bamboohr_add_company_file_category` | Create a company file category. WRITE. |
| `bamboohr_upload_company_file` | Upload a company file (multipart). WRITE. |
| `bamboohr_get_table_rows` | Get all rows of a tabular table (jobInfo, compensation, employmentStatus, ...). |
| `bamboohr_add_table_row` | Add a tabular row (incl. employmentStatus to off-board). WRITE. |
| `bamboohr_update_table_row` | Update a tabular row. WRITE. |
| `bamboohr_delete_table_row` | Delete a tabular row. WRITE. |
| `bamboohr_list_time_off_requests` | List time-off requests; filter by date/employee/status/type. |
| `bamboohr_add_time_off_request` | Create a time-off request for an employee. WRITE. |
| `bamboohr_change_time_off_status` | Approve/deny/cancel a time-off request. WRITE. |
| `bamboohr_whos_out` | Who is out of office in a date window. |
| `bamboohr_list_time_off_types` | List time-off types. |
| `bamboohr_list_time_off_policies` | List time-off policies. |
| `bamboohr_time_off_balances` | Estimate an employee's future time-off balances. |
| `bamboohr_adjust_time_off_balance` | Adjust an employee's time-off balance. WRITE. |
| `bamboohr_add_time_off_history` | Record time off used against a request. WRITE. |
| `bamboohr_list_fields` | List all employee fields (id, name, type, alias). |
| `bamboohr_list_tabular_fields` | List tabular table names and their columns. |
| `bamboohr_list_list_fields` | List option sets for list-type fields. |
| `bamboohr_list_users` | List BambooHR users (accounts with login access). |
| `bamboohr_list_reports` | List saved custom reports to discover report ids. |
| `bamboohr_get_report` | Get a saved company report by id. |
| `bamboohr_custom_report` | Run an ad-hoc custom report over arbitrary fields. |
| `bamboohr_list_datasets` | List available Workforce Analytics datasets. |
| `bamboohr_get_dataset_data` | Get rows from a dataset (v2) with filters and paging. |
| `bamboohr_get_dataset_fields` | Discover the fields available in a dataset (names/labels/sections). |
| `bamboohr_get_field_options` | Get allowed option values for list-type dataset fields. |
| `bamboohr_list_webhooks` | List webhook subscriptions. |
| `bamboohr_get_webhook` | Get one webhook subscription. |
| `bamboohr_webhook_monitor_fields` | List fields available to monitor in webhooks. |
| `bamboohr_create_webhook` | Create a webhook subscription. WRITE. |
| `bamboohr_update_webhook` | Update a webhook subscription. WRITE. |
| `bamboohr_delete_webhook` | Delete a webhook subscription. WRITE. |

## How to get credentials

BambooHR authenticates over HTTP Basic auth using an API key (the key is the
username, any string is the password) plus your company subdomain.

1. Log in to BambooHR and open
   [Getting Started With The API](https://documentation.bamboohr.com/docs/getting-started).
2. Click your name in the lower-left corner to open the user menu, then choose
   **API Keys** (you need sufficient permissions for this option to appear).
3. Click **Add New Key**, name it (e.g. *FlyMyAI Agent*), and copy the key - it
   is shown only once.
4. Note your company subdomain - the part before `.bamboohr.com` in your account
   URL (for `https://acme.bamboohr.com` the subdomain is `acme`).

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `BAMBOOHR_API_KEY` | My Profile -> API Keys -> Add New Key |
| `BAMBOOHR_SUBDOMAIN` | The part before `.bamboohr.com` in your account URL |

## Links

- [Getting started with the API](https://documentation.bamboohr.com/docs/getting-started)
- [API reference](https://documentation.bamboohr.com/reference)
