For Agents
Query employee records, submit time-off requests, run custom reports, and manage benefits, payroll, and hiring pipelines across an entire BambooHR account.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the BambooHR API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with BambooHR API.
Pull employee directory listings and individual profile records with custom field support
Submit and approve time-off requests with policy-aware balance calculations
Generate custom reports with flexible field selection and filtering criteria
GET STARTED
Use for: I need to look up an employee's profile in BambooHR, I want to submit a time-off request for a team member, List all employees who changed records in the last 7 days, Retrieve a custom report with specific employee fields
Not supported: Use for employee records, time-off, benefits data, payroll records, applicant tracking, training records and HR reporting. The spec has no operation that runs a payroll or files taxes: its payroll surface is limited to reading and writing pay stubs, tax withholding records, direct deposit accounts and deduction records.
The BambooHR API manages the full employee lifecycle through 164 endpoints spanning employee records, time-off requests, benefits administration, payroll data, goals tracking, applicant tracking, and training management. Supports company-scoped multi-tenant access with OAuth 2.0 or HTTP Basic authentication for programmatic HR automation.
Track applicant pipeline stages from application through hiring decision
Administer benefits enrolment including deduction types, coverage levels, and dependents
Process payroll data exports including pay stubs, deductions, and tax withholdings
Register webhooks for real-time notifications on employee record changes
Patterns agents use BambooHR API for, with concrete tasks.
★ AI Agent HR Data Retrieval
AI agents use the BambooHR API through Jentic to fetch employee records, time-off balances, and organizational data without direct BambooHR credentials. An agent searches for 'get employee details', loads the schema for the employee endpoint, and retrieves structured profile data including custom fields. This enables HR chatbots, onboarding automations, and self-service portals to pull real-time workforce data.
Retrieve the full employee profile for employee ID 123 including custom fields and return their department, manager, and hire date
Time-Off Automation
Automate the full time-off lifecycle from request submission through approval and balance tracking. The API exposes endpoints to submit requests with specific date ranges and absence types, check remaining balances against policies, and update request statuses. Integrations typically connect with Slack bots or internal portals so employees request PTO without logging into BambooHR directly.
Submit a 2-day vacation request for employee ID 456 starting next Wednesday and verify the remaining balance afterwards
Custom Reporting and Analytics
Generate on-demand or scheduled custom reports pulling any combination of employee fields across the workforce. The custom reports endpoint accepts field lists and filter criteria, returning structured data suitable for dashboards, compliance audits, or headcount planning. Reports can include compensation, tenure, demographics, and custom field data.
Generate a custom report listing all employees hired in the last 90 days with their department, title, and manager name
Applicant Tracking Integration
Connect hiring workflows with external systems by accessing applicant data, tracking candidates through pipeline stages, and syncing hiring decisions. The applicant tracking endpoints expose job postings, applications, candidate profiles, and status transitions. Recruiting teams integrate this with scheduling tools, assessment platforms, and onboarding systems.
List all applicants in the 'Interview' stage for the Engineering department and return their names and application dates
Benefits Administration Sync
Synchronize benefits enrolment data between BambooHR and insurance carriers, payroll systems, or benefits administration platforms. Endpoints cover company benefit plans, employee enrolment records, deduction types, and coverage details. Automations ensure new hires are enrolled and life-event changes propagate to downstream systems without manual data entry.
Retrieve all active benefit enrolments for employee ID 789 including plan names, coverage levels, and monthly deduction amounts
164 endpoints — the bamboohr api manages the full employee lifecycle through 164 endpoints spanning employee records, time-off requests, benefits administration, payroll data, goals tracking, applicant tracking, and training management.
METHOD
PATH
DESCRIPTION
/{companyDomain}/v1/employees/directory
List the employee directory
/{companyDomain}/v1/employees/{id}/tables/{table}
Get employee tabular data
/{companyDomain}/v1/reports/custom
Generate a custom report
/{companyDomain}/v1/employees/{employeeId}/time_off/request
Submit a time-off request
/{companyDomain}/v1/employees/{employeeId}/time_off/policies
Get time-off policies for an employee
/{companyDomain}/v1/employees/changed
List recently changed employee records
/{companyDomain}/v1/benefit/company_benefit
List company benefit plans
/{companyDomain}/v1/employees/{employeeId}/time_off/calculator
Calculate time-off balance
/{companyDomain}/v1/employees/directory
List the employee directory
/{companyDomain}/v1/employees/{id}/tables/{table}
Get employee tabular data
/{companyDomain}/v1/reports/custom
Generate a custom report
/{companyDomain}/v1/employees/{employeeId}/time_off/request
Submit a time-off request
/{companyDomain}/v1/employees/{employeeId}/time_off/policies
Get time-off policies for an employee
Three things that make agents converge on Jentic-routed access.
Credential isolation
Your BambooHR secret key or OAuth token is stored encrypted by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search by intent (e.g., 'get employee time off balance') and Jentic returns matching BambooHR operations with their input schemas and required path parameters, so the agent can call the right endpoint without parsing BambooHR's documentation.
Time to first call
Alternatives and complements available in the Jentic catalogue.
Specific to using BambooHR API through Jentic.
Which OpenAPI spec does Jentic use for the BambooHR API?
Jentic uses a curated, agent-optimized spec rather than BambooHR's own published document. BambooHR does publish an OpenAPI specification, offered as a download on its Postman Collection documentation page at `https://openapi.bamboohr.io/main/latest/docs/openapi/public-openapi.yaml`. The curated spec here is not that file: an operation-by-operation comparison found 45 operations in the curated spec that the published one does not contain, including the pay stub, tax withholding, direct deposit and time-tracking clock-entry endpoints. Those operations stay callable because the curated spec is kept.
What authentication does the BambooHR API use?
The API supports two authentication methods: OAuth 2.0 authorization code flow (recommended for production integrations) and HTTP Basic authentication using your API secret key as the username with any random string as the password. The OAuth flow authorizes at `https://{companyDomain}.bamboohr.com/authorize.php` and exchanges tokens at `https://{companyDomain}.bamboohr.com/token.php`. Every operation in the spec accepts either scheme.
Can I generate custom employee reports with the BambooHR API?
Yes. POST to /{companyDomain}/v1/reports/custom with a JSON body specifying the fields you want (e.g., firstName, lastName, department, hireDate) and optional filter criteria. The response returns structured tabular data. BambooHR marks this endpoint deprecated in its reference documentation, with the note 'Deprecated. Use Datasets > Get Data from Dataset instead.', so treat it as legacy for new work. You can also retrieve pre-built reports via GET /{companyDomain}/v1/reports/{id} using the report ID from the BambooHR UI.
What are the rate limits for the BambooHR API?
BambooHR publishes no numeric rate limit. Its API details documentation states 'Implementations should always be ready for a 503 Service Unavailable response' and adds that commonly this is due to rate limiting, with a Retry-After header that may be available. So handle 503 and back off rather than coding to a fixed budget. For bulk work, call GET /{companyDomain}/v1/employees/changed to fetch only modified records instead of re-reading the directory.
How do I submit a time-off request through Jentic?
Search for 'submit employee time off request', load the schema for PUT /{companyDomain}/v1/employees/{employeeId}/time_off/request, and execute with the employee ID, date range, and time-off type. Before submitting, call GET /{companyDomain}/v1/employees/{employeeId}/time_off/calculator to check the available balance. Both operations run through your own Jentic One instance, which injects the BambooHR credential at call time.
Does the BambooHR API support webhooks for real-time updates?
Yes. The Webhooks resource allows you to register HTTP callback URLs that receive notifications when employee records change. BambooHR's event-based webhooks document three event types: employee.created when an employee record was created, employee.updated when one or more monitored fields on an employee record were changed, and employee.deleted when an employee record was deleted. The updated event fires only for the fields you select as monitor fields, which GET /{companyDomain}/v1/webhooks/monitor_fields lists. This eliminates the need for polling the employees/changed endpoint for near-real-time integrations.
Is there a BambooHR MCP server?
You do not need an MCP server to give your agent BambooHR. Jentic connects it directly from the API Directory: import BambooHR, store your API secret key or OAuth client once, and your agent calls the 164 endpoints on demand. Nothing extra is loaded into the agent's context, because operations are discovered when they are needed rather than declared up front.
Can I limit what my agent is allowed to do with BambooHR?
Yes, and BambooHR's URL shape makes it specific. Employee operations carry the employee id in the path (/{companyDomain}/v1/employees/{employeeId}/time_off/policies, /{companyDomain}/v1/employees/{id}/tables/{table}), so a rule can pin the agent to one employee record as well as to the operations it needs. A read-only onboarding assistant can be scoped to GET /{companyDomain}/v1/employees/directory and the time-off calculator, with the PUT that submits a request and the payroll pay stub and withholding endpoints left out entirely.
/{companyDomain}/v1/employees/changed
List recently changed employee records
/{companyDomain}/v1/benefit/company_benefit
List company benefit plans
/{companyDomain}/v1/employees/{employeeId}/time_off/calculator
Calculate time-off balance