API Connector Documentation
Import BambooHR Data to Google Sheets
In this guide, we’ll walk through how to pull data from the BambooHR API directly into Google Sheets, using the API Connector add-on for Sheets.
We'll first get an API key from BambooHR, and then set up a request to pull in human resources data to your spreadsheet.
Contents
- Before You Begin
- Part 1: Get your BambooHR API Key
- Part 2: Pull Data from BambooHR to Sheets
- Part 3: Create a Custom API Request
- Part 4: Handle Pagination
- Part 5: API Documentation
Before You Begin
Click here to install the API Connector add-on from the Google Marketplace.
Part 1: Get Your BambooHR API Key
- While logged into your BambooHR account, click your Profile icon > API keys from the header bar.
- Click the Add New Key button
- Give your API key a name and click Generate Key.
- One last step: Because the BambooHR API requires Basic Authentication, we need to encode our authentication info to base 64. You can do this by entering your your credentials in the format
YOUR_API_KEY:x
into this form (i.e. your API key, then a colon, and then an 'x').
The encoding script runs in your browser, and none of your credentials are seen or stored by this site.
Part 2: Pull Data from BambooHR to Sheets
The easiest way to get started with the BambooHR API is through API Connector’s built-in integration.
- In Sheets, open API Connector and create a new request (Extensions > API Connector > Open > Create request)
- Select BambooHR from the drop-down list of applications
- Under Authorization, enter your credentials from above, with the word Basic in front.
- Choose an endpoint of interest.
- Fill in the
companyDomain
parameter. You can get your domain name from the URL when you're logged into BambooHR. - Select a destination sheet, name your request, and hit Run.
Part 3: Create a Custom API Request
Alternatively, you can run your own custom requests instead of using API Connector’s pre-built integration, using any of the URLs shown in the API documentation. Here's an example request setup.
Make sure to include the Accept
: application/json
header. Without this, BambooHR sometimes returns XML instead of JSON, which processes more slowly and doesn't allow for JSON-based adjustments like the force rows option mentioned below.
- Application:
Custom
- Method:
GET
- Request URL:
https://api.bamboohr.com/api/gateway.php/your_site/v1/applicant_tracking/jobs
- OAuth:
None
- Headers:
Authorization
:Basic your_encoded_key
Accept
:application/json
- Report style:
grid
/v1/employees/directory
return data in columns rather than rows. To adjust for this, select grid mode and toggle on the force rows
option.Part 4: Handle Pagination
By default, BambooHR will return 50 records at a time. To get more, use pagination handling:
- Pagination type:
page parameter
- Page parameter:
page
- Run until:
choose when to stop fetching data
Part 5: API Documentation
Official documentation: https://documentation.bamboohr.com/reference
I did use the suggested API call and It indeed worked , I would like to know whether there is a way I could get the dates each of the applicats did apply at.
Really Appreciate this .
Hi there, this question refers to the
/api/gateway.php/your_site/v1/applicant_tracking/jobs
endpoint, correct? That endpoint doesn't return the application date, but I believe this one does:https://api.bamboohr.com/api/gateway.php/your_site/v1/applicant_tracking/applications
. Please check if that works for you!Yes , It did return the application date for the applications but till the 31/03/23, is there a way I could have access to applicants for the past three months . I tried including a date range but did not work . I would like to have access to applicants for the past three months or year . The suggested end point does work (
https://api.bamboohr.com/api/gateway.php/your_site/v1/applicant_tracking/applications
. Please check if that works for you) . I am grateful for this . Thanks a million.Ah, great question. You have to use pagination handling to fetch more records. I just added a section on pagination above, please check!
It did, You are such a life saver. Thank you
EMM
Excellent, glad to hear it's working for you now 🙂
Good evening ! A bit of some advice,
I am trying to retrieve pay groups for our employees but I am getting issues with this custom created request .
Could you kindly advice me on how best I can proceed
https://api.bamboohr.com/api/gateway.php/timeframe/v1/payGroup
.Thanks a million
Hey Mugisha, where did that endpoint come from? I checked their API documentation and don't see anything about paygroups in there, so unfortunately I'm not sure how to construct this request URL (or if it's even available).
I do agree that it’s not part of the documentation , I actually thought I could create a custom request without strictly having to follow the documentation word by word .
Ah, I see. Sometimes there are undocumented endpoints, but generally it's not something we can guess at. Is it possible for you to contact BambooHR's tech support and ask if they provide an API endpoint for paygroups?
I did contact them sometime back , I didn’t really get informative feedback though . So I guess I will have to manually save group data files via a csv format .