BambooHR APIs not giving complete Employee Details

Viewed 1357
2 Answers

BambooHr only gives some basic info on using the employees directory API to get detailed information of the employee you have use the get employee API. The end point looks like: https://api.bamboohr.com/api/gateway.php//v1/employees//?fields=employeeNumber,jobTitle,status,employmentHistoryStatus,address1,address2,birthday,bestEmail,workEmail,workPhone,city,country,department,ethnicity,firstName,lastName,gender,middleName,mobilePhone,zipcode,hireDate,supervisor,payRate,bonusAmount,commissionAmount,payFrequency

You would have to add the details you expect out of the API as query parameter.

you can use cusom reports to include the fields you want: Here is a curl command example:

curl --location --request POST 'https://api.bamboohr.com/api/gateway.php/<COMPANY_SUBDOMAIN>/v1/reports/custom?format=json' \
--header 'Accept: application/json' \
--header 'Encoding: utf-8' \
--header 'Content-Type: application/xml' \
--header 'Authorization: Basic [BASE64_CREDENTIALS]' \
--data-raw '
<report>
  <title>Employee details</title>
  <fields>
    <field id="id" />

    <field id="lastChanged" />

    <field id="status" />

    <field id="firstName" />
    <field id="middleName" />
    <field id="lastName" />
    <field id="nickname" />
    <field id="displayName" />
    <field id="gender" />
    <field id="DateOfBirth" />
    <field id="Age" />

    <field id="address1" />
    <field id="address2" />
    <field id="city" />
    <field id="state" />
    <field id="country" />
    <field id="zipCode" />

    <field id="homeEmail" />
    <field id="homePhone" />
    <field id="mobilePhone" />

    <field id="workEmail" />
    <field id="workPhone" />
    <field id="workPhoneExtension" />
    <field id="workPhonePlusExtension" />

    <field id="jobTitle" />
    <field id="department" />
    <field id="division" />
    <field id="location" />
    <field id="country" /> 

    <field id="employmentHistoryStatus" />
    <field id="terminationDate" />
    <field id="hireDate" />
    <field id="originalHireDate" />
    

    <field id="payRate" />
    <field id="payRateEffectiveDate" />
    <field id="payType" />
    <field id="paidPer" />
    <field id="paySchedule" />
    <field id="payScheduleId" />

    
    <field id="payFrequency" />
    <field id="payScheduleId" />
    

    <field id="supervisor" />
    <field id="supervisorEmail" />
    <field id="supervisorId" />
    <field id="supervisorEid" />
  </fields> 
</report>'

or some C# code:

var client = new RestClient("https://api.bamboohr.com/api/gateway.php/[COMPANY_SUBDOMAIN]/v1/reports/custom?format=json");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Encoding", "utf-8");
request.AddHeader("Content-Type", "application/xml");
request.AddHeader("Authorization", "Basic [BASE64_CREDENTIALS]");
var body = @"
" + "\n" +
@"<report>
" + "\n" +
@"  <title>Employee details</title>
" + "\n" +
@"  <fields>
" + "\n" +
@"    <field id=""id"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""lastChanged"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""status"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""firstName"" />
" + "\n" +
@"    <field id=""middleName"" />
" + "\n" +
@"    <field id=""lastName"" />
" + "\n" +
@"    <field id=""nickname"" />
" + "\n" +
@"    <field id=""displayName"" />
" + "\n" +
@"    <field id=""gender"" />
" + "\n" +
@"    <field id=""DateOfBirth"" />
" + "\n" +
@"    <field id=""Age"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""address1"" />
" + "\n" +
@"    <field id=""address2"" />
" + "\n" +
@"    <field id=""city"" />
" + "\n" +
@"    <field id=""state"" />
" + "\n" +
@"    <field id=""country"" />
" + "\n" +
@"    <field id=""zipCode"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""homeEmail"" />
" + "\n" +
@"    <field id=""homePhone"" />
" + "\n" +
@"    <field id=""mobilePhone"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""workEmail"" />
" + "\n" +
@"    <field id=""workPhone"" />
" + "\n" +
@"    <field id=""workPhoneExtension"" />
" + "\n" +
@"    <field id=""workPhonePlusExtension"" />
" + "\n" +
@"
" + "\n" +
@"    <field id=""jobTitle"" />
" + "\n" +
@"    <field id=""department"" />
" + "\n" +
@"    <field id=""division"" />
" + "\n" +
@"    <field id=""location"" />
" + "\n" +
@"    <field id=""country"" /> 
" + "\n" +
@"
" + "\n" +
@"    <field id=""employmentHistoryStatus"" />
" + "\n" +
@"    <field id=""terminationDate"" />
" + "\n" +
@"    <field id=""hireDate"" />
" + "\n" +
@"    <field id=""originalHireDate"" />
" + "\n" +
@"    
" + "\n" +
@"
" + "\n" +
@"    <field id=""payRate"" />
" + "\n" +
@"    <field id=""payRateEffectiveDate"" />
" + "\n" +
@"    <field id=""payType"" />
" + "\n" +
@"    <field id=""paidPer"" />
" + "\n" +
@"    <field id=""paySchedule"" />
" + "\n" +
@"    <field id=""payScheduleId"" />
" + "\n" +
@"
" + "\n" +
@"    
" + "\n" +
@"    <field id=""payFrequency"" />
" + "\n" +
@"    <field id=""payScheduleId"" />
" + "\n" +
@"    
" + "\n" +
@"
" + "\n" +
@"    <field id=""supervisor"" />
" + "\n" +
@"    <field id=""supervisorEmail"" />
" + "\n" +
@"    <field id=""supervisorId"" />
" + "\n" +
@"    <field id=""supervisorEid"" />
" + "\n" +
@"  </fields> 
" + "\n" +
@"</report>";
request.AddParameter("application/xml", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

NOTE: code generated by postman export

Related