v1

latestOpenAPI 3.1.02026-07-26294215839.4 KB
Custom Reports
Public API

Get Report by ID

Executes a saved custom report and returns its data using the report's configured fields and filters. The data array contains employee record objects whose keys are determined by the fields selected when the report was created — each object is a flat key-value map where keys are field names (e.g. firstName, status, hireDate) and values are strings or null. The aggregations array is empty unless the report's underlying dataset configuration includes aggregation rules. Use "List Reports" to discover available report IDs.

Response shape: Each element of data is a flat key-value object — field values are top-level keys (e.g. row["firstName"]). This differs from get-data-from-dataset-v2, where field values are nested under a fields key (e.g. row["fields"]["firstName"]).

There is no schema-only response from this endpoint.

The pagination.total_records value is the number of rows produced by the saved report after applying the report's configured filters, not necessarily the total number of employees in the account. Validate output before using in automated pipelines.

Results default to page 1 with 500 records per page (maximum 1000). Out-of-range page numbers are clamped to the nearest valid page. Invalid or zero values for page and page_size fall back to their defaults.

OAuth Scopes: report

get/api/v1/custom-reports/{reportId}

Path parameters

reportIdinteger required

The numeric ID of the saved custom report to execute.

Query parameters

pageinteger

The page number to retrieve. Defaults to 1.

page_sizeinteger

The number of records per page. Defaults to 500. Maximum is 1000.

Response

Paginated report data with dynamic employee fields based on the report's configuration.

dataDatasetEmployee[]

Example response

{
  "data": [
    {
      "lastNameFirstName": "Panda, Pudgy",
      "firstName": "Pudgy",
      "employeeNumber": "123",
      "middleName": "null",
      "ssn": "123-45-6478"
    }
  ],
  "pagination": {
    "next_page": "https://{companyDomain}.bamboohr.com/api/v1/{endpointPath}?page=3&page_size=1",
    "prev_page": "https://{companyDomain}.bamboohr.com/api/v1/{endpointPath}?page=1&page_size=1"
  }
}