Deprecated. Use Datasets > Get Data from Dataset instead.
Generates an ad-hoc employee report based on a caller-specified list of fields and optional filters. Returns report data in the requested format (JSON, XML, CSV, XLS, or PDF). The report includes all employees regardless of status (both Active and Inactive), unlike the BambooHR UI which filters to Active employees by default.
The request body may be submitted as JSON or XML. To submit JSON, set Content-Type: application/json exactly — any variation such as application/json; charset=UTF-8 is not recognised as JSON and the body will be parsed as XML instead, which typically results in 400 Malformed XML. To submit XML, set Content-Type to any other value; the body must be a <report> document as described in the XML request body schema.
The format query parameter is case-insensitive (json, JSON, Json are all accepted). If format is omitted, the output format is inferred from the Accept header, but only these exact values are supported: application/json, text/xml, text/csv, application/pdf, application/vnd.ms-excel. Any other Accept value (including application/xml and */*) will return 404.
Field IDs in the request that are unknown or that the caller does not have permission to view are silently omitted from the report — the endpoint still returns 200. The filters object supports lastChanged (ISO 8601 date-time to filter employees by last-modified date, with optional includeNull control) and employeeIds (restrict results to specific internal employee IDs). The maximum number of fields per request is 400.
OAuth Scopes: report
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Sample Request
{
"title": "This is my report",
"filters": {
"lastChanged": {
"includeNull": "no",
"value": "2012-10-17T16:00:00Z"
}
},
"fields": [
"firstName",
"lastName"
]
}Supported Formats
CSV, PDF, XLS, XML, JSON
Last Changed Filter
You may specify a filter section with a tag (see below). If you add a filter, then you must provide a date in ISO 8601 format and the report will only include those employees whose records have changed since that time.
Note: Prior to June 2011, last change information was not tracked. Employees who have not changed since that time will always be returned in this API, unless you specify that the filter not include null changed dates. To hide null change dates set includeNull="no", as demonstrated in the example below.
400Bad request. Returned when the request body is malformed JSON or XML, or when more than 400 fields are requested. Unknown or inaccessible field IDs are silently omitted and do not cause a 400.
404Report format not found. Returned when an unsupported format value is supplied (e.g. ?format=bogus), or when format is omitted and the Accept header is not one of the supported exact values (application/json, text/xml, text/csv, application/pdf, application/vnd.ms-excel).
