BambooHR API Pagination, Fields & Errors
BambooHR API pagination with limit and offset, field selection, and stable error codes — one request shape via MindCloud.
Once your first BambooHR request works, use this page to shape real production requests. MindCloud keeps the app-specific API details behind one REST format, so you can control arguments, pagination, filtering, fields, and errors without learning a separate convention for every provider. If you have not connected BambooHR yet, start with Connect to BambooHR.
Arguments
Arguments are the inputs an action needs. Put them in the JSON body under the arguments field. Each BambooHR action page documents its exact argument keys and types. It also shows which arguments are required. Keys are case-sensitive. Requests with missing or invalid required arguments fail.
Request format
Choose a BambooHR action and send a POST request to its Universal API run URL. Authenticate with your MindCloud API Key. Put the connection, arguments, and response controls in the JSON body.
| Piece | Where it goes |
|---|---|
arguments | An object in the JSON body. Put all action fields inside it. |
connectionId | An optional public connection id in the JSON body. The API selects the default or only valid connection when omitted. |
limit, offset, where, sort, fields | Response controls in the JSON body. |
Pagination
Paginated list actions accept limit and offset in the JSON body. Some providers use page numbers, and some use cursors. MindCloud translates the request for BambooHR. Start at offset=0, add limit to the offset after each page, and stop when a page returns fewer rows than you asked for.
curl --request POST \
--url "https://connect.mindcloud.co/v2/universal/apps/bambooHrV2/actions/list-employees/run" \
--header "Authorization: Bearer $MINDCLOUD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"connectionId": "$CONNECTION_ID",
"arguments": {},
"limit": "25",
"offset": "0"
}'These BambooHR actions support pagination:
- Get Fields from Dataset V1 2
- Get Member Benefits
- List Absent Employees
- List Archived Custom Fields
- List Break Assessments
- List Break Policies
- List Break Policy Employees
- List Breaks for Break Policy
- List Calendar Events
- List Catalog Holidays
- List Clock Entries
- List Company Holidays
- List Custom Fields
- List Custom Tables
- List Employee Break Policies
- List Employee Time Off Policies
- List Employees
- List Enrolled Employees
- List Hour Entries
- List Job Locations
- List New Hire Packets
- List Open Shifts
- List Schedules
- List Scheduling Timezones
- List Shift Assessments
- List Shift Claims
- List Shifts
- List Time Off Policies
- List Time Off Policy Versions
- List Time Off Requests
- List Time Tracking Configurations
- List Time Tracking Import Rows
- List Time Tracking Imports
- List Time Tracking Kiosks
- List Time Tracking Project Tasks
- List Time Tracking Projects
- List Time Tracking Shift Differentials
- List Time Tracking Time Clocks
- List Timesheets
- List Timezones
Field selection
Use the fields body field to return only the response fields your code reads. Use dot notation for nested objects: fields=id,name,profile.email. Selection is applied to each row in data after the response is mapped, and id is kept whenever it exists so rows stay identifiable.
Responses and errors
Every BambooHR response is mapped into the same public envelope before it reaches your code: success, your rows in a data array (single-row actions return an array with one item), and optional meta. Failed requests return success: false with a stable code to branch on and a human-readable message:
{
"success": false,
"code": "CONNECTION_APP_MISMATCH",
"message": "Connection \"conn_123\" is not configured for this app."
}Check the HTTP status first: 401 or 403 for authentication and authorization, 400 for invalid request shape, and 5xx when MindCloud cannot complete the action upstream. Most failures come from a missing API Key, a missing or mismatched connection, or arguments that do not match the action page.