Query the BambooHR Datasets API to pull division/department and reports-to (supervisor) fields for building an org-chart reporting structure.
domain: documentation.bamboohr.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Call the List Datasets (v1.2) endpoint to confirm the machine-readable name of the employee dataset available to your API key.
Call GET https://{companyDomain}.bamboohr.com/api/v1_2/datasets/{datasetName}/fields to discover exact field names such as jobInformationReportsTo, supervisorEid, and jobInformationDepartment — these are the fully-qualified dataset names, not the short field names used on the Employee endpoints.
POST to https://{companyDomain}.bamboohr.com/api/v2/datasets/{datasetName}/data with a JSON body listing the fields to return (e.g. eeid, firstName, lastName, jobInformationDepartment, jobInformationReportsTo, supervisorEid).
Use the request's filter (OData-style eq/ne/lt/le/gt/ge/and/or/in) and orderBy fields to scope and sort results; sorted fields must also appear in the fields array.
Paginate with the page/pageSize body fields (pageSize max 1000) and read links/meta (page, pageSize, totalPages, totalItems) in the response to know when to stop.
Join supervisorEid back to eeid across returned rows to reconstruct the manager/report reporting tree, since jobInformationReportsTo returns the supervisor's name rather than a structured hierarchy.
Known gotchas
The older Request Custom Report endpoint (POST /v1/reports/custom) is now documented as deprecated in favor of the Datasets API — new integrations should not build against it.
Dataset field names differ from Employee/Directory endpoint field names (e.g. jobInformationReportsTo vs. supervisor) — always resolve names via Get Fields from Dataset rather than reusing employee-endpoint field names.
A 403 on the fields or data endpoint means insufficient dataset permissions, while a 422 means an invalid dataset name, filter expression, or pagination value — these are RFC 7807 problem+json responses, not plain error strings.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?